Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Utiliser des sources officielles stables #17

Open
Pierlou opened this issue Aug 28, 2024 · 2 comments
Open

Utiliser des sources officielles stables #17

Pierlou opened this issue Aug 28, 2024 · 2 comments

Comments

@Pierlou
Copy link

Pierlou commented Aug 28, 2024

Pour la mise à jour des données de référence (codes INSEE, postaux, noms des communes, etc.), plusieurs solutions sont possibles :

  • mises à jour manuelles régulières (scripts inclus dans le package ?)
  • mises à jour automatiques régulières (github action ?)
  • fetch en temps réel (peut-être un peu plus lent selon l'architecture choisie ?)

Dans tous les cas, il serait bon de trouver des sources officielles et stables. Pour les communes/départements/EPCI/régions cela pourrait être : https://geo.api.gouv.fr/decoupage-administratif

Maintenant que le système est rôdé (avec csv-detective 0.7.2) cela pourrait être une piste d'amélioration 🚀

@datagouv datagouv deleted a comment Aug 28, 2024
@pierrecamilleri
Copy link
Collaborator

pierrecamilleri commented Sep 9, 2024

Merci !

Effectivement, mais il y a une question sous-jacente : a priori, il me semble souhaitable de garder toutes les versions pour pouvoir en référencer une plutôt qu'une autre.

En effet, sinon, chaque nouvelle version des données introduit un breaking change (des fichiers qui étaient valides et qui peuvent ne plus l'être avec des nouvelles données).

Je propose donc d'avoir un moyen de versionner, par exemple de pouvoir indiquer Region.is_valid("Limousin", cog = "2005") (ou alternativement : version = "cog2005") pour préciser un code officiel géographique. Dans les schémas, ça pourrait se manifester comme ça :

{
 "frFormat": {
    "name": "region",
    "cog": "2005"
  }
}

Se pose la question de si on veut supporter une valeur par défaut, ou une fonctionnalité qui permet d'utiliser cog = "latest". Je suis plutôt d'avis contraire, car 1. ça nous engage et c'est difficile de revenir en arrière (alors qu'on peut toujours l'ajouter plus tard si le besoin est confirmé), 2. ça génère des schémas qui n'ont pas un comportement stable dans le temps et donc toute mise-à-jour de "frFormat" peut entraîner des régressions et 3. ça encourage des mauvaises pratiques de ne pas se poser la question de quel référentiel géo utiliser.

Pour la mise à jour des référentiels disponibles, je ne ferai pas de fetch en temps réel, qui pose des problématiques de performance et de mise en cache, de possibilité d'utilisation hors connexion, etc. qui me semblent pas indispensable pour le moment. J'opterais dans un premier temps pour une mise-à-jour manuelle avec scripts, et on pourra toujours automatiser sur cette base à l'avenir.

Sarrabah added a commit that referenced this issue Oct 31, 2024
# Context

* In reference to issue #17, according to the Code Officiel Géographique
(COG) a reference document published by l’Institut national de la
statistique et des études économiques (Insee) which brings the
codifications of a series of Insee codes, constituting some of the
geographical codes of France.

* Typically each year, these codes/data change over time. As a result,
certain values may be valid in the COG for 2023 but become invalid in
the COG for 2024 for example.

* The purpose of this PR is to validate a given value against a
specified given COG, representing the year of the Code Officiel
Géographique's publication (In this case we have juste the reference
data of 2023 and 2024) .

Example: `Pays(Millesime.A2023).is_valid("Mayotte")`


# Refactoring
* canton, commune, département, numéro département,  pays, région
* code commune insee, code pays, code région

# Other thoughts

* Despite a great overlap between code_commune sets for 2023, and 2024,
the two sets have been defined separately by now. In the future, and
with the extension to new vintages (Millésimes), there will be a need to
optimize the memory usage.
* There is a need to find a reliable data source for _lower-case_
country (pays) lists for each COG, as the official list seems to be all
uppercase.
* Postal codes are not covered by Insee's COG but by La Poste (see [open
data
page](https://www.data.gouv.fr/fr/datasets/base-officielle-des-codes-postaux/#/information)).
No change has been done on this yet.

---------

Co-authored-by: Pierre Camilleri <[email protected]>
@Sarrabah
Copy link
Collaborator

La pull request #21, déjà mergée, se concentre exclusivement sur les Codes Officiels Géographiques des années 2023 et 2024. Ces codes sont mis à jour manuellement, ce qui inclut l’actualisation des fichiers contenant les valeurs valides et l’ajout des noms correspondants dans notre classe enum Millesime pour définir l’année de publication.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants