- 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.
34 lines
625 B
TOML
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",
|
|
]
|