[build-system] requires = ["setuptools>=68.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "media-rip" version = "0.1.0" description = "media.rip() — self-hosted media downloader" requires-python = ">=3.12" dependencies = [ "fastapi==0.135.1", "uvicorn[standard]==0.42.0", "yt-dlp==2026.3.17", "aiosqlite==0.22.1", "apscheduler==3.11.2", "pydantic==2.12.5", "pydantic-settings[yaml]==2.13.1", "sse-starlette==3.3.3", "bcrypt==5.0.0", "python-multipart==0.0.22", "PyYAML==6.0.2", ] [project.optional-dependencies] dev = [ "httpx==0.28.1", "pytest==9.0.2", "anyio[trio]", "pytest-asyncio", "ruff", ] [tool.pytest.ini_options] asyncio_mode = "auto" markers = [ "slow: marks tests as slow (network-dependent)", "integration: marks tests requiring external services (network, yt-dlp)", ] [tool.ruff] target-version = "py312"