[project] name = "rastro" version = "0.1.0" description = "Observatorio publico de trackers BitTorrent" readme = "README.md" license = { text = "MIT" } authors = [{ name = "Pablo Murad" }] requires-python = ">=3.13" dependencies = [ "fastapi>=0.115.0", "uvicorn[standard]>=0.32.0", "jinja2>=3.1.4", "sqlalchemy[asyncio]>=2.0.36", "aiosqlite>=0.20.0", "alembic>=1.14.0", "httpx>=0.28.0", "dnspython>=2.7.0", "apscheduler>=3.10.4", "orjson>=3.10.0", "pydantic-settings>=2.6.0", ] [project.optional-dependencies] dev = [ "pytest>=8.3.0", "pytest-asyncio>=0.24.0", "respx>=0.21.0", "ruff>=0.8.0", "geoip2>=4.8.0", ] [project.scripts] rastro = "app.cli:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["app"] [tool.ruff] target-version = "py313" line-length = 100 src = ["app", "tests"] [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM"] ignore = ["B008"] [tool.ruff.lint.per-file-ignores] "alembic/*" = ["E501"] "tests/*" = ["E501"] [tool.pytest.ini_options] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" testpaths = ["tests"] filterwarnings = ["ignore::DeprecationWarning"] [tool.ruff.format] quote-style = "double"