youtube-cli/setup.py
Jarian Cottingham 3c5b10466a chore: clean repo for public release
- Remove runtime artifacts (app.log, .DS_Store, committed home dir data)
- Remove AI session notes (prompt.md, agent.md, LOGGING_*.md)
- Move TUI.md, structure.md, docker-setup.md to docs/
- Normalize author metadata to Jarian Cottingham
- Fix hardcoded personal paths in gunicorn config and manual test script
- Pin textual <2.0 (8.x grid layout breaks TUI rendering)
- Fix stale tests: private attr access, missing screen push
- Add CI workflow (ruff + pytest, Python 3.10-3.12)
2026-08-20 21:03:50 +00:00

85 lines
2.5 KiB
Python

from setuptools import find_packages, setup
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
setup(
name="youtube-cli",
version="0.1.0",
author="Jarian Cottingham",
author_email="jarianc@proton.me",
description="A command-line interface for browsing and downloading YouTube videos",
keywords="youtube, cli, download, video, yt-dlp, tui, terminal",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://git.example.com/jarianc/youtube-cli",
project_urls={
"Documentation": "https://git.example.com/jarianc/youtube-cli",
"Issue Tracker": "https://git.example.com/jarianc/youtube-cli/issues",
"Source": "https://git.example.com/jarianc/youtube-cli",
},
packages=find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Development Status :: 3 - Alpha",
"Environment :: Console",
"Environment :: Console :: Curses",
"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",
],
python_requires=">=3.10",
install_requires=[
"yt-dlp",
"rich>=13.0.0",
"requests>=2.28.0",
],
extras_require={
"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",
],
"api": [
"Flask==2.3.3",
],
"tui": [
"textual>=0.40.0",
],
},
entry_points={
"console_scripts": [
"youtube-cli=youtube_cli.main:main",
"youtube-tui=youtube_tui.__main__:main",
],
},
test_suite="tests",
tests_require=[
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.0.0",
],
include_package_data=True,
package_data={
"youtube_tui": [
"screens/*.py",
"services/*.py",
"widgets/*.py",
"models/*.py",
],
},
)