mirror of
https://github.com/smittix/intercept.git
synced 2026-04-24 14:50:00 -07:00
Introduces an 'optionals' dependency group in pyproject.toml. There was a discrepancy because they had been added to requirements.txt at some point during the last few commits but not to .toml. Update on test_requirements.py to include and validate these optional dependencies. Enhances test logic to ensure all main, dev, and optional dependencies are checked for environment consistency.
139 lines
3.2 KiB
TOML
139 lines
3.2 KiB
TOML
[project]
|
|
name = "intercept"
|
|
version = "2.12.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",
|
|
"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",
|
|
"meshtastic>=2.0.0",
|
|
"psycopg2-binary>=2.9.9"
|
|
]
|
|
|
|
[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",
|
|
]
|