[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "guarddog-nexus" version = "0.1.0" description = "GuardDog integration with Sonatype Nexus — scan packages via webhooks" readme = "README.md" requires-python = ">=3.10" license = {text = "MIT"} dependencies = [ "fastapi>=0.115.0", "uvicorn[standard]>=0.30.0", "jinja2>=3.1.0", "httpx>=0.27.0", "sqlalchemy[asyncio]>=2.0.30", "aiosqlite>=0.20.0", "python-multipart>=0.0.9", ] [project.optional-dependencies] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23.0", "pytest-httpx>=0.30.0", "ruff>=0.4.0", "mypy>=1.10.0", "httpx>=0.27.0", ] [project.scripts] guarddog-nexus = "guarddog_nexus.main:main" [tool.ruff] target-version = "py310" line-length = 100 select = ["E", "F", "I", "W"] [tool.ruff.lint] select = ["E", "F", "I", "W"] ignore = ["E712"] [tool.ruff.lint.isort] known-first-party = ["guarddog_nexus"] [tool.mypy] python_version = "3.10" strict = true ignore_missing_imports = true [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"]