Files
gps-denied-onboard/pyproject.toml
T
Yuzviak 275f18d0e3 feat(01-08): add env field to AppSettings, RuntimeConfig alias, and YAML config overlays
- Add env: Literal["jetson", "x86_dev", "ci", "sitl"] = "x86_dev" to AppSettings
- Expose RuntimeConfig = AppSettings alias for pipeline consumers
- Implement settings_customise_sources for YamlConfigSettingsSource overlay
- Create config/{x86_dev,jetson,ci,sitl}.yaml with env-specific defaults
- Add pyyaml>=6.0 to pyproject.toml dependencies
2026-05-11 09:02:14 +03:00

61 lines
1.5 KiB
TOML

[project]
name = "gps-denied-onboard"
version = "0.1.0"
description = "GPS-denied UAV geolocalization service"
requires-python = ">=3.11"
dependencies = [
"fastapi",
"uvicorn[standard]",
"pydantic>=2",
"pydantic-settings>=2",
"sqlalchemy>=2",
"alembic>=1.14",
"sse-starlette>=2.0",
"aiosqlite>=0.20",
"python-multipart>=0.0.9",
"httpx>=0.27",
"diskcache>=5.6",
"numpy>=1.26,<2.0", # NumPy 2.0 silently breaks GTSAM Python bindings (issue #2264)
"opencv-python-headless>=4.9,<4.11", # 4.11+ requires numpy>=2.0 (incompatible with GTSAM)
"gtsam>=4.3a0",
"pymavlink>=2.4",
"pyyaml>=6.0",
]
[project.optional-dependencies]
dev = [
"ruff>=0.9",
"pytest>=8.0",
"pytest-asyncio>=0.24",
"httpx>=0.28",
]
[build-system]
requires = ["setuptools>=75"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["src"]
[tool.ruff]
target-version = "py311"
line-length = 120
[tool.ruff.lint.per-file-ignores]
# Abstract interfaces have long method signatures — allow up to 170
"src/gps_denied/core/factor_graph.py" = ["E501"]
"src/gps_denied/components/satellite_matcher/metric_refinement.py" = ["E501"]
"src/gps_denied/core/chunk_manager.py" = ["E501"]
[tool.ruff.lint]
select = ["E", "F", "I", "W"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
markers = [
"e2e: end-to-end test against a real dataset",
"e2e_slow: e2e test that takes > 2 minutes, nightly-only",
"needs_dataset: test requires an external dataset to be downloaded",
]