Files
AICyclingCoach/pyproject.toml

109 lines
2.5 KiB
TOML

[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
"garminconnect", # Using python-garminconnect
"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