91dc7729f9
Lets organizers automatically populate a shared Google Sheet (the same kind they previously built by hand) with an Overview tab and one tab per group, instead of printing dicts. Group tabs are named after all their members (not a single host) and show each group's route, course times, and guests with allergies. The Overview tab also gets configurable Meal Times, Support Contacts, and Info sections, passed through as plain data from tatami_masterplan.py. Export is fully opt-in via GOOGLE_SHEETS_CREDENTIALS_FILE and GOOGLE_SHEETS_SPREADSHEET_ID; without them, behavior is unchanged.
37 lines
841 B
TOML
37 lines
841 B
TOML
[project]
|
|
name = "tatami"
|
|
version = "0.1.0"
|
|
description = "Tool for Arranging Tasty Appointments, Meetings & Invitations"
|
|
readme = "README.md"
|
|
requires-python = ">=3.13"
|
|
dependencies = [
|
|
"gspread>=6.2.1",
|
|
"numpy>=2.2.4",
|
|
"pandas>=2.2.3",
|
|
"pandas-stubs>=2.2.3.250308",
|
|
"python-dotenv>=1.2.2",
|
|
"requests>=2.32.3",
|
|
"tqdm>=4.67.1",
|
|
"types-requests>=2.32.0.20250328",
|
|
"types-tqdm>=4.67.0.20250404",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"mypy>=1.15.0",
|
|
"pytest>=9.1.1",
|
|
"ruff>=0.11.5",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
# Deselect live API tests by default; run them with `pytest -m e2e`.
|
|
addopts = "-q -m 'not e2e'"
|
|
markers = [
|
|
"e2e: live tests that call the real Google Routes API (opt-in, costs quota)",
|
|
]
|