mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 00:26:26 +00:00
fix(salary-tools): decide number locale by last separator, pair compound headers
Review findings F7 and F8 (2026-08-19):
- parse_numeric_cell's both-separators branch always assumed European
locale, silently turning a US "1,234.56" into 1.23456 - a 1000x
corruption written to salary_data.json with no warning. The separator
that appears last is now treated as the decimal separator, which also
makes multi-group values ("1,234,567.89") parse instead of raising a
raw float error. Single-separator ambiguity guards are unchanged.
- strip_type_patterns stripped only whole tokens, so the compound header
"Lønindeks alle" kept its type word and could never pair with "Antal
alle" - failing exactly for the compound-word locale COMPOUND_PATTERNS
exists to support. It now also strips compound patterns as substrings,
mirroring header_matches.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7aba0b4a9d
commit
1c19f6c45f
@@ -56,6 +56,16 @@ per-file diff commands.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **`convert_salary_excel.py` no longer corrupts US/UK-formatted numbers 1000x** - the
|
||||
both-separators branch always assumed European locale, so a `"1,234.56"` cell was
|
||||
silently converted to `1.23456` and written into `salary_data.json`. The rule is now
|
||||
"the separator that appears last is the decimal separator", which also makes
|
||||
multi-group values (`"1,234,567.89"`, `"1.234.567,89"`) parse instead of raising. And
|
||||
`strip_type_patterns` now strips `COMPOUND_PATTERNS` words as substrings, mirroring
|
||||
`header_matches`, so a Danish compound header pair ("Antal alle" / "Lønindeks alle")
|
||||
pairs into one category instead of two unpaired standalones - the exact locale the
|
||||
compound support was added for. Pinned by six new cases in
|
||||
`tests/test_convert_salary_excel.py`.
|
||||
- **`jobdanmark-search` extracts the city when a comma follows the postcode** - the
|
||||
`location` regex required whitespace after the 4-digit postcode, but live
|
||||
`companyAddress` values frequently read `"2670, Greve"`; those results emitted
|
||||
|
||||
Reference in New Issue
Block a user