130 lines
3.1 KiB
TOML
130 lines
3.1 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 = "Your Name", email = "your.email@example.com"},
|
|
]
|
|
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"
|
|
youtube-tui = "youtube_tui.__main__:main"
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/yourusername/youtube-cli"
|
|
Issues = "https://github.com/yourusername/youtube-cli/issues"
|
|
|
|
[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",
|
|
]
|
|
tui = [
|
|
"textual>=0.40.0",
|
|
]
|
|
|
|
[tool.uv]
|
|
prerelease = "allow"
|
|
|
|
[tool.setuptools]
|
|
packages = ["youtube_cli", "youtube_tui", "youtube_tui.screens", "youtube_tui.widgets", "youtube_tui.models", "youtube_tui.services"]
|
|
|
|
[tool.setuptools.package-data]
|
|
youtube_tui = ["py.typed"]
|
|
|
|
[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]
|
|
"web/server/models/archive.py" = ["F821"]
|
|
"**/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 = "textual.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "rich.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "youtube_cli.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "youtube_tui.*"
|
|
check_untyped_defs = true
|
|
disallow_untyped_defs = true
|