youtube-cli/setup.py
Jarian Cottingham 4538857ce3 feat: prepare package for PyPI publishing
- Fix author metadata (name, email, URLs)
- Add LICENSE file (MIT)
- Add MANIFEST.in for proper sdist packaging
- Add PyPI publish workflow (.gitea/workflows/publish.yml)
- Add keywords for discoverability
- Align python_requires to >=3.10 across setup.py and pyproject.toml
2026-07-05 06:47:32 +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="jarianc",
author_email="user@example.com",
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",
],
},
)