mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 00:26:26 +00:00
fix(salary): validate category shape and add --validate preflight (#156)
validate_data() accepted category values that are not {count?, index?}
objects. They slipped through to format_entry(), which then raised
AttributeError on a normal table lookup (or serialized a malformed shape
under --json). It also accepted duplicate company names silently.
- collect_validation_issues() now also flags a non-object category value
(and non-numeric count / non number-or-string index) as a hard error,
and duplicate company names as a warning.
- validate_data() keeps its eager-fail behavior (same messages), so
existing tests and load_data() are unchanged.
- --validate runs the checks standalone and prints an actionable report
(exit 1 on errors, 0 on warnings-only/clean), letting users pre-flight
their BYO salary_data.json.
Reproduced on master: validate_data({'companies':[{'company':'Acme',
'categories':{'eng':'not_a_dict'}}]}) returns without error, but
format_entry then raises AttributeError.
Co-authored-by: Tunic Assistant <assistant@tunic.local>
This commit is contained in:
co-authored by
Tunic Assistant
parent
47118dcbf2
commit
55ba1c1652
@@ -113,6 +113,7 @@ python3 salary_lookup.py "Novo Nordisk"
|
||||
python3 salary_lookup.py "Ørsted" --city "Fredericia"
|
||||
python3 salary_lookup.py "COWI" --json
|
||||
python3 salary_lookup.py --list-all
|
||||
python3 salary_lookup.py --validate # pre-flight check your salary_data.json
|
||||
```
|
||||
|
||||
## Important notes
|
||||
@@ -120,3 +121,4 @@ python3 salary_lookup.py --list-all
|
||||
- The data file (`salary_data.json`) is **excluded from git** (see `.gitignore`). Your salary data may be proprietary or confidential.
|
||||
- If the data file is missing, `salary_lookup.py` exits with a helpful error message and the `/apply` workflow skips the salary benchmark step.
|
||||
- The fuzzy matcher handles Danish company name variations: legal suffixes, Nordic characters, anglicized spellings, and partial matches.
|
||||
- `--validate` checks your data file for malformed category values and duplicate company names and prints a report, without performing a lookup.
|
||||
|
||||
Reference in New Issue
Block a user