Where: the draft lint_geojson referenced in #9.
Problem. #9's draft lint_geojson validates geojson structure but has no property-value check — it does not catch the literal string 'None' sitting in property values. That is the pattern that forces every consumer to defensively .replace("None", None) after gpd.read_file (e.g. NHFLO/models 09pwnmodel2 #125, and its two copies in 10vlotter). So the assumption that #9 already covers the 'None'-string problem overstates #9's scope.
Fix. Add a property-value lint that flags any property equal to the string 'None' (and ideally other stringified nulls like 'nan'/'NULL') across the shipped geojsons (lakes_pwn, drains_pwn, hfb_pwn), so the data is JSON-null-clean at the source and the downstream .replace workarounds can be removed. Either extend #9 or track here.
Surfaced by the 09pwnmodel2 review (NHFLO/models#126, #125).
Where: the draft
lint_geojsonreferenced in #9.Problem. #9's draft
lint_geojsonvalidates geojson structure but has no property-value check — it does not catch the literal string'None'sitting in property values. That is the pattern that forces every consumer to defensively.replace("None", None)aftergpd.read_file(e.g. NHFLO/models09pwnmodel2#125, and its two copies in10vlotter). So the assumption that #9 already covers the'None'-string problem overstates #9's scope.Fix. Add a property-value lint that flags any property equal to the string
'None'(and ideally other stringified nulls like'nan'/'NULL') across the shipped geojsons (lakes_pwn,drains_pwn,hfb_pwn), so the data is JSON-null-clean at the source and the downstream.replaceworkarounds can be removed. Either extend #9 or track here.Surfaced by the
09pwnmodel2review (NHFLO/models#126, #125).