Skip to content

feat: validate code communes for real

Yohan Boniface requested to merge real-ct-validators into main

Proposition de validateur de codes commune un peu plus efficace que l'actuel.

Aujourd'hui, le validateur est assez permissif (il laisse passer une chaîne du type "ceci n'est pas une pipe").

Mais peut-être que cette proposition est overkill.

Une autre idée que j'avais en tête, c'est de borner les id valides pour un département, par exemple:

VALID_INSEE_COM = {
    "01": {
        max: 457,
        removed: {'01003', '01018', '01020', '01048', '01055', '01059', '01070', '01086', '01091', '01097', '01119', '01120', '01122', '01126', '01131', '01132', '01137', '01144', '01154', '01161', '01164', '01168', '01172', '01176', '01178', '01182', '01186', '01201', '01205', '01217', '01218', '01220', '01221', '01222', '01223', '01226', '01251', '01253', '01256', '01270', '01271', '01278', '01287', '01292', '01300', '01312', '01315', '01316', '01324', '01326', '01327', '01340', '01341', '01377', '01394', '01395', '01409', '01413', '01414', '01417', '01438', '01440', '01442', '01455'} 
    },
    
}
dep, id = value[:2], int(value[2:])
assert id < VALID_INSEE_COM[dep] AND value not in VALID_INSEE_COM[dep]["removed"]

Ça voudrait dire maintenir la liste des codes valides par millésime de COG, ce qui me semble automatisable.

Ça ne marcherait pas pour les codes SIREN, mais on pourrait se contenter de valider leur format via stdnum.

De toute façon, un validateur ne peut pas tout valider (par exemple, on ne peut pas valider que c'est le bon code INSEE), il faut juste vérifier que c'est une valeur valide pour le type attendu.

Bref, food for thoughts.

Merge request reports