feat(pdf): default output date format to YYYY-MM-DD
User asked to flip the default from YYYYMMDD to YYYY-MM-DD. ISO is the better default for an accountant CSV workflow: - Lexicographic sort = chronological sort (no parsing needed). - Every spreadsheet tool the user might import into recognises it as a real date with no ambiguity (US vs EU readers can't disagree on the order). - Hyphens make the year/month/day boundaries scan-able by eye. Concrete changes: - New module constant ``DEFAULT_DATE_FORMAT = "%Y-%m-%d"``, used as the default for ``format_date()`` and the ``output_date_format`` keyword on ``scan_pdf_for_transactions``. - Page's ``_DATE_FORMAT_CHOICES`` reordered so the ISO entry is first (index 0 = default Streamlit selection); YYYYMMDD drops to second. - Custom-strftime input default also flips to ``%Y-%m-%d``. Tests updated to reflect the new default (``test_dates_formatted_iso_by_default``, ``test_short_dates_get_year_from_period``, ``test_compact_format_round_trip``, plus a new ``test_default_is_iso`` for the format_date helper). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -128,8 +128,8 @@ if not _pdf_ok:
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
_DATE_FORMAT_CHOICES = {
|
||||
"YYYYMMDD (20260113)": "%Y%m%d",
|
||||
"YYYY-MM-DD (2026-01-13)": "%Y-%m-%d",
|
||||
"YYYYMMDD (20260113)": "%Y%m%d",
|
||||
"MM/DD/YYYY (01/13/2026)": "%m/%d/%Y",
|
||||
"DD/MM/YYYY (13/01/2026)": "%d/%m/%Y",
|
||||
"MMM DD, YYYY (Jan 13, 2026)": "%b %d, %Y",
|
||||
@@ -173,10 +173,10 @@ with st.expander("Scan options", expanded=False):
|
||||
if output_date_format == "__custom__":
|
||||
output_date_format = c4.text_input(
|
||||
"Custom strftime format",
|
||||
value="%Y%m%d",
|
||||
value="%Y-%m-%d",
|
||||
help=(
|
||||
"Python ``strftime`` codes — e.g., ``%Y%m%d`` for "
|
||||
"20260113, ``%Y-%m-%d`` for 2026-01-13."
|
||||
"Python ``strftime`` codes — e.g., ``%Y-%m-%d`` for "
|
||||
"2026-01-13, ``%Y%m%d`` for 20260113."
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user