- Add get_date_format() to config.py: reads [csv] date_format, returns
None when absent (falls back to the default %d/%m/%y)
- _cmd_csv applies the format to both single-day and weekly date strings
- Add 3 tests for get_date_format in TestGetters
- Update timesheets.example.toml and README with [csv] date_format key
- Extract _add_output_arg() helper; add it explicitly to summary, csv,
and stories subparsers (removes it implicitly from status)
- _cmd_stories now honours args.output, redirecting print_stories output
to the given file (same pattern as _cmd_summary)
- Update README with stories -o example
- Add `write_csv_weekly()` to output.py: writes entries from multiple
days as a single CSV with one header row, correct date per row
- Add `-w`/`--weekly` flag to csv subparser
- _cmd_csv branches on args.weekly: fetches week sections, formats
per-day date strings, calls write_csv_weekly; --raw is honoured
- Add TestWriteCsvWeekly with 6 tests
- Update README with weekly csv usage examples
- Add `to_csv_entries()` to output.py: converts raw rows to write_csv
entries one-for-one, without merging by (project, description)
- Add `--raw` flag to the csv subparser; _cmd_csv branches on it
- Add TestToCsvEntries with 6 tests
- Update README with --raw usage example
- Add .coverage and htmlcov/ to .gitignore