Skip to content

feat(postcodes/WF): add Wallis and Futuna postcode for Uvea (#1039)#1417

Merged
dr5hn merged 1 commit into
masterfrom
feat/postcodes-wallis-futuna
Apr 25, 2026
Merged

feat(postcodes/WF): add Wallis and Futuna postcode for Uvea (#1039)#1417
dr5hn merged 1 commit into
masterfrom
feat/postcodes-wallis-futuna

Conversation

@dr5hn
Copy link
Copy Markdown
Owner

@dr5hn dr5hn commented Apr 25, 2026

Adds 98600 → Uvea (Wallis island, capital Mata-Utu).

Wallis and Futuna uses the French postal system with 986## codes. The exact district mapping for Sigave/Alo on Futuna island isn't unambiguously documented in common sources, so shipping just the confident Uvea code now; Futuna codes can land in a follow-up PR.

Refs: #1039

Adds 98600 -> Uvea (Wallis island, capital Mata-Utu). Wallis and Futuna
uses the French postal system with 986## codes, but the exact district
mapping for Sigave/Alo on Futuna island is not unambiguously documented
in common sources. Shipping the confident Uvea code now; Futuna codes
can land in a follow-up PR with a better source.

Refs: #1039

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 25, 2026 15:34
@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Apr 25, 2026
@dr5hn dr5hn merged commit 13714a6 into master Apr 25, 2026
3 checks passed
@dosubot dosubot Bot added the enhancement New feature or request label Apr 25, 2026
@dr5hn dr5hn deleted the feat/postcodes-wallis-futuna branch April 25, 2026 15:34
@github-actions
Copy link
Copy Markdown
Contributor

CSC Validation Report

PR Format

  • ✅ Description provided
  • ❌ Data source linked
  • ✅ Issue linked (recommended for data changes)
  • ✅ Justification / context provided

Labels applied: data:postcodes

Schema Validation (1 records)

✅ All records passed validation

Cross-Reference Validation

✅ 2 reference(s) verified


All checks passed | Status: Ready for review

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an initial postcode entry for Wallis and Futuna (WF) to the contributions/postcodes/ dataset, starting with the confirmed 98600 code mapped to Uvea / Mata-Utu.

Changes:

  • Added new contributions/postcodes/WF.json country file.
  • Inserted postcode 98600 with country_id=243 (WF) and state_id=5707 (Uvea), plus locality/type/source metadata.

"country_code": "WF",
"state_id": 5707,
"state_code": "UV",
"locality_name": "Mata-Utu",
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

locality_name is set to "Mata-Utu", but the existing city record in contributions/cities/WF.json uses the name "Mata Utu" (and countries.json also lists capital as "Mata Utu"). Consider aligning this string with the canonical city/capital spelling to avoid inconsistent place-name variants across the dataset.

Suggested change
"locality_name": "Mata-Utu",
"locality_name": "Mata Utu",

Copilot uses AI. Check for mistakes.
dr5hn added a commit that referenced this pull request Apr 27, 2026
…#1039) (#1435)

Adds the importer + first run for metropolitan France. Uses La Poste's
official base-officielle-des-codes-postaux dataset from data.gouv.fr
(Licence Ouverte v2.0 / etalab-2.0).

1. bin/scripts/sync/import_laposte_postcodes.py — pipeline reading the
   ISO-8859-1 / semicolon-delimited CSV. Filters to metropolitan France
   (skips 971-988 overseas + 980 Monaco). Picks one canonical commune
   per postcode (first alphabetical). Resolves state via postcode-prefix
   to département iso2 (75=Paris, 13=Bouches-du-Rhône, etc.) with
   Corsica's special split (200xx-201xx -> 2A, 202xx+ -> 2B) and a
   75 -> 75C override (states.json suffixes Paris's iso2).

2. contributions/postcodes/FR.json — 6,051 codes covering all 96
   metropolitan départements + Corsica with 100% state_id resolution.

Out of scope (deferred)
- Overseas territories (GP/MQ/GF/RE/YT/PM/WF/PF/NC/BL/MF) already have
  curated postcode files from earlier PRs (#1402, #1417-#1426). La
  Poste's CSV does include their rows (475 skipped); folding the full
  La Poste data into those territory files is a follow-up scope decision.
- Cedex codes — La Poste publishes a separate "Cedex" file with ~10k
  business-routing codes that don't correspond to geographic places.
  Those belong in a separate pipeline if added.

Validation (zero errors across 6,051 records)
- All codes match countries.postal_code_regex (^(\\d{5})\$)
- All FKs resolve, all state_codes agree with state.iso2
- No auto-managed fields present

Locality names use Libellé d'acheminement (the form La Poste actually
prints on mail) rather than raw INSEE commune names — cleaner casing
and accents (e.g. "Sainte-Foy-lès-Lyon" rather than "STE FOY LES LYON").
Note: the source CSV is ALL CAPS for Libellé too; if mixed-case is
preferred, a follow-up Title Case pass is straightforward.

License & attribution
- Source: La Poste / data.gouv.fr (Licence Ouverte v2.0, etalab-2.0)
- Each row: source: "laposte"

Refs: #1039

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data:postcodes enhancement New feature or request ready-for-review size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants