Implement GarminUploader adapter around garminconnect library: - Import activities using import_activity() not upload_activity() - Treat duplicate activity responses as terminal success - Raise GarminUploadBlocked for MFA to allow UI code collection - Distinguish auth, transient, and other errors appropriately - Helper functions for duplicate detection and activity ID extraction Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
33 lines
673 B
TOML
33 lines
673 B
TOML
[build-system]
|
|
requires = ["setuptools>=70", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "mywhoosh-garmin-sync"
|
|
version = "0.1.0"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"fastapi>=0.115,<1",
|
|
"uvicorn[standard]>=0.30,<1",
|
|
"sqlalchemy>=2.0,<3",
|
|
"pydantic-settings>=2.0,<3",
|
|
"cryptography>=43,<50",
|
|
"jinja2>=3.1,<4",
|
|
"python-multipart>=0.0.9,<1",
|
|
"itsdangerous>=2.1,<3",
|
|
"httpx>=0.27,<1",
|
|
"garminconnect>=0.2,<1",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
test = [
|
|
"pytest>=8,<9",
|
|
"pytest-asyncio>=0.24,<1",
|
|
]
|
|
|
|
[tool.setuptools.packages]
|
|
find = { where = ["."], include = ["app*"] }
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|