odoo-timesheets/pyproject.toml
Jef Roosens ecdd28e8a3
feat(joplin): add --joplin flag to fetch weekly timesheet note from Joplin
- Add joplin.py with fetch_week_note() that walks Work > Timesheets > YYYY
  and returns the body of the matching YYYY-WNN note via joppy ClientApi
- Add filter_rows_by_date() to parser.py to extract only rows belonging
  to a specific day based on '# ... YYYY-MM-DD' headings in the document
- Update cli.py: input and --joplin are now a mutually exclusive required
  group; add --token flag with JOPLIN_TOKEN env var fallback; --date is
  parsed into a real date object used for both output and day filtering
- Add joppy as a runtime dependency (lazy-imported in cli.py)
- Add tests for filter_rows_by_date and full mocked coverage of joplin.py
- Update AGENTS.md with Joplin usage, notebook structure, and test rules

The actual Joplin structure has notes directly inside the year notebook
(Work > Timesheets > YYYY), not in per-week sub-notebooks as initially
assumed. fetch_week_note() reflects this flat structure.
2026-06-02 09:31:02 +02:00

34 lines
625 B
TOML

[project]
name = "timesheets"
version = "0.1.0"
description = "Parse markdown timesheet tables and export to CSV"
readme = "README.md"
authors = [
{ name = "Jef Roosens", email = "roosenj@factry.io" }
]
requires-python = ">=3.13"
dependencies = [
"joppy>=1.0.2",
]
[project.scripts]
timesheets = "timesheets.cli:main"
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.coverage.run]
source = ["timesheets"]
[tool.coverage.report]
show_missing = true
[build-system]
requires = ["uv_build>=0.10.8,<0.11.0"]
build-backend = "uv_build"
[dependency-groups]
dev = [
"pytest>=9.0.3",
"pytest-cov>=7.1.0",
]