""" Setup script for BackgroundFX Pro CLI. Creates command-line entry point and handles installation. """ from setuptools import setup, find_packages import os from pathlib import Path # Read README if it exists readme_path = Path(__file__).parent.parent / "README.md" long_description = "" if readme_path.exists(): with open(readme_path, encoding="utf-8") as f: long_description = f.read() def get_requirements(): """Get requirements from requirements.txt.""" req_file = Path(__file__).parent.parent / "requirements.txt" if req_file.exists(): with open(req_file) as f: return [line.strip() for line in f if line.strip() and not line.startswith("#")] # Fallback requirements return [ "click>=8.0.0", "rich>=10.0.0", "opencv-python>=4.5.0", "numpy>=1.19.0", "torch>=1.9.0", "gradio>=3.0.0", ] setup( name="backgroundfx-pro", version="1.0.0", author="BackgroundFX Team", description="Professional video background removal and replacement", long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/yourusername/backgroundfx-pro", packages=find_packages(), python_requires=">=3.8", install_requires=get_requirements(), extras_require={ "dev": [ "pytest>=6.0", "black>=21.0", "flake8>=3.9", ], "cuda": [ "torch>=1.9.0+cu111", ], }, entry_points={ "console_scripts": [ "bgfx=cli.main:main", "backgroundfx=cli.main:main", ], }, classifiers=[ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Topic :: Multimedia :: Video", "Topic :: Scientific/Engineering :: Artificial Intelligence", ], )