[build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "ai-cycling-coach" version = "1.0.0" description = "AI-Powered Cycling Training Coach with Terminal Interface" readme = "README.md" license = {file = "LICENSE"} authors = [ {name = "AI Cycling Coach", email = "info@aicyclingcoach.com"} ] classifiers = [ "Development Status :: 4 - Beta", "Environment :: Console :: Curses", "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", "Programming Language :: Python :: 3.11", "Topic :: Scientific/Engineering", "Topic :: Other/Nonlisted Topic", ] keywords = ["cycling", "training", "ai", "fitness", "garmin", "gpx"] requires-python = ">=3.8" dependencies = [ # Core dependencies "python-dotenv==1.0.1", "sqlalchemy==2.0.31", "alembic==1.13.1", "pydantic-settings==2.2.1", "Mako==1.3.10", # Database "aiosqlite==0.20.0", # TUI framework "textual==0.82.0", # Data processing "gpxpy>=1.5.0", # External integrations "garth==0.4.46", "httpx==0.25.2", # Backend framework "fastapi==0.110.0", "python-multipart==0.0.9", # Development tools (optional) "pytest>=8.1.1; extra=='dev'", "pytest-asyncio>=0.23.5; extra=='dev'", "black>=24.3.0; extra=='dev'", "isort>=5.13.2; extra=='dev'", ] [project.optional-dependencies] dev = [ "pytest>=8.1.1", "pytest-asyncio>=0.23.5", "black>=24.3.0", "isort>=5.13.2", ] [project.urls] "Homepage" = "https://github.com/ai-cycling-coach/ai-cycling-coach" "Bug Reports" = "https://github.com/ai-cycling-coach/ai-cycling-coach/issues" "Source" = "https://github.com/ai-cycling-coach/ai-cycling-coach" [project.scripts] cycling-coach = "main:main" ai-cycling-coach = "main:main" [tool.setuptools.packages.find] where = ["."] include = ["backend*", "tui*"] exclude = ["tests*", "docs*"] [tool.setuptools.package-data] "*" = ["*.md", "*.txt", "*.ini", "*.toml"] [tool.black] line-length = 100 target-version = ['py38', 'py39', 'py310', 'py311'] include = '\.pyi?$' extend-exclude = ''' /( # directories \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | build | dist )/ ''' [tool.isort] profile = "black" multi_line_output = 3 line_length = 100