netsleuth/pyproject.toml

70 lines
1.6 KiB
TOML

[project]
name = "netsleuth"
version = "0.1.0"
description = "Cross-platform CLI for deep network diagnostics: ISP/VPN/ASN identity, latency, path and bandwidth"
readme = "README.md"
license = "PolyForm-Noncommercial-1.0.0"
requires-python = ">=3.11"
authors = [{ name = "netsleuth contributors" }]
keywords = ["network", "diagnostics", "traceroute", "bgp", "vpn", "speedtest"]
dependencies = [
"typer>=0.12",
"rich>=13.7",
"httpx[http2]>=0.28",
"pydantic>=2.7",
"pydantic-settings>=2.3",
"pyyaml>=6.0",
"dnspython>=2.6",
"psutil>=5.9",
"icmplib>=3.0",
]
[project.optional-dependencies]
tcptrace = ["scapy>=2.5"]
ndt7 = ["websockets>=12"]
[project.scripts]
netsleuth = "netsleuth.cli:main"
[dependency-groups]
dev = [
"pytest>=8",
"pytest-asyncio>=0.23",
"pytest-httpx>=0.30",
"pytest-benchmark>=4.0",
"ruff>=0.3",
]
[tool.ruff]
target-version = "py311"
line-length = 120
select = ["E", "F", "W", "I", "N", "UP", "B", "C4", "SIM"]
ignore = ["E501"]
exclude = [".git", "__pycache__", ".venv", "build", "dist", "tests/"]
[tool.ruff.per-file-ignores]
"tests/*" = ["S101", "PLR2004"]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/netsleuth"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
filterwarnings = ["error::DeprecationWarning:netsleuth.*"]
[tool.flake8]
max-line-length = 120
extend-ignore = ["E203", "W503"]
exclude = [".git", "__pycache__", ".venv", "build", "dist"]
[tool.mypy]
python_version = "3.11"
warn_return_any = true
disallow_untyped_defs = false
ignore_missing_imports = true
exclude = ["tests/"]