youtube-cli/pyproject.toml
Jarian Cottingham 03c9173a8b
Some checks are pending
CI / lint (push) Waiting to run
CI / test (push) Waiting to run
CI / docker-build (push) Waiting to run
CI / security (push) Waiting to run
CI / build-result (push) Blocked by required conditions
refactor: extract TUI and web UI into separate projects; fix placeholder URLs
2026-08-21 17:11:22 +00:00

117 lines
2.7 KiB
TOML

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "youtube-cli"
version = "0.1.0"
description = "A command-line interface for browsing and downloading YouTube videos"
readme = "README.md"
requires-python = ">=3.10"
authors = [
{name = "Jarian Cottingham", email = "jarianc@proton.me"},
]
license = {text = "MIT"}
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Development Status :: 3 - Alpha",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: End Users/Desktop",
"Natural Language :: English",
"Operating System :: MacOS",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Multimedia :: Video",
"Topic :: Utilities",
]
dependencies = [
"yt-dlp",
"rich>=13.0.0",
"requests>=2.28.0",
]
# dynamic = ["version"] # Removed: version is statically defined
[project.scripts]
youtube-cli = "youtube_cli.main:main"
[project.urls]
Homepage = "https://git.jarianc.com/jarianc/youtube-cli"
Issues = "https://git.jarianc.com/jarianc/youtube-cli/issues"
Documentation = "https://git.jarianc.com/jarianc/youtube-cli"
Source = "https://git.jarianc.com/jarianc/youtube-cli"
[project.optional-dependencies]
dev = [
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.0.0",
"black>=23.0.0",
"ruff>=0.1.0",
"mypy>=1.0.0",
"types-requests>=2.28.0",
]
api = [
"Flask==2.3.3",
]
[tool.uv]
prerelease = "allow"
[tool.setuptools]
packages = ["youtube_cli"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
testpaths = ["tests"]
python_files = ["test_*.py"]
python_functions = ["test_*"]
[tool.ruff]
line-length = 80
target-version = "py310"
[tool.ruff.lint]
select = ["E", "F", "W", "I"]
ignore = ["E501", "E402"]
[tool.ruff.lint.per-file-ignores]
"**/tests/**" = ["F401", "F841"]
[tool.mypy]
python_version = "3.11"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false
disallow_incomplete_defs = false
check_untyped_defs = true
disallow_untyped_calls = false
disallow_untyped_decorators = false
strict_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
no_implicit_optional = true
follow_imports = "silent"
ignore_missing_imports = true
exclude = [
"tests/",
]
[[tool.mypy.overrides]]
module = "rich.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "youtube_cli.*"
ignore_missing_imports = true