mirror of
https://github.com/smittix/intercept.git
synced 2026-04-29 17:19:59 -07:00
Introduced Flask-Limiter to restrict login attempts to 5 per minute per IP, enhancing security against brute-force attacks. Updated error handling to display a user-friendly message when the rate limit is exceeded. Minor improvements to the login page, including clearer error messages and display of the user's IP address.
128 lines
3.0 KiB
TOML
128 lines
3.0 KiB
TOML
[project]
|
|
name = "intercept"
|
|
version = "2.9.5"
|
|
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>=2.0.0",
|
|
"skyfield>=1.45",
|
|
"pyserial>=3.5",
|
|
"Werkzeug>=3.1.5",
|
|
"flask-limiter>=2.5.4",
|
|
]
|
|
|
|
[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",
|
|
]
|
|
|
|
[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",
|
|
]
|