[project] name = "intercept" version = "2.14.0" description = "Signal Intelligence Platform - Pager/433MHz/ADS-B/Satellite/WiFi/Bluetooth" readme = "README.md" requires-python = ">=3.9" license = {text = "MIT"} authors = [ {name = "Intercept Contributors"} ] keywords = ["sdr", "rtl-sdr", "signals", "pager", "adsb", "wifi", "bluetooth"] classifiers = [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Flask", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Operating System :: MacOS", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Communications", "Topic :: System :: Networking :: Monitoring", ] dependencies = [ "flask>=3.0.0", "skyfield>=1.45", "pyserial>=3.5", "Werkzeug>=3.1.5", "flask-limiter>=2.5.4", "bleak>=0.21.0", "flask-sock", "websocket-client>=1.6.0", "requests>=2.28.0", ] [project.urls] Homepage = "https://github.com/smittix/intercept" Repository = "https://github.com/smittix/intercept" Issues = "https://github.com/smittix/intercept/issues" [project.optional-dependencies] dev = [ "pytest>=7.0.0", "pytest-cov>=4.0.0", "pytest-mock>=3.15.1", "ruff>=0.1.0", "black>=23.0.0", "mypy>=1.0.0", "types-flask>=1.1.0", ] optionals = [ "scipy>=1.10.0", "qrcode[pil]>=7.4", "numpy>=1.24.0", "Pillow>=9.0.0", "meshtastic>=2.0.0", "psycopg2-binary>=2.9.9", "scapy>=2.4.5", ] [project.scripts] intercept = "intercept:main" [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] include = ["routes*", "utils*", "data*"] [tool.ruff] target-version = "py39" line-length = 120 [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # Pyflakes "I", # isort "B", # flake8-bugbear "C4", # flake8-comprehensions "UP", # pyupgrade "SIM", # flake8-simplify ] ignore = [ "E501", # line too long (handled by formatter) "B008", # do not perform function calls in argument defaults "B905", # zip without explicit strict "SIM108", # use ternary operator instead of if-else ] [tool.ruff.lint.isort] known-first-party = ["app", "config", "routes", "utils", "data"] [tool.black] line-length = 120 target-version = ["py39", "py310", "py311", "py312"] include = '\.pyi?$' exclude = ''' /( \.git | \.mypy_cache | \.pytest_cache | \.venv | venv | __pycache__ )/ ''' [tool.mypy] python_version = "3.9" warn_return_any = true warn_unused_configs = true ignore_missing_imports = true exclude = [ "tests/", "venv/", ] [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] python_functions = ["test_*"] addopts = "-v --tb=short" [tool.coverage.run] source = ["app", "routes", "utils", "data"] omit = ["tests/*", "*/__pycache__/*"] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "if __name__ == .__main__.:", "raise NotImplementedError", ]