Open JV-conseil opened 3 years ago
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
"""Simple test en langage Python pour connaître le nombre de villes
dont l'intitulé compte un nombre de caractères supérieur à 19.
Base officielle des codes postaux fournie par data.gouv.fr (28 mars 2017 10:15) :
https://www.data.gouv.fr/fr/datasets/base-officielle-des-codes-postaux/#resource-554590ab-ae62-40ac-8353-ee75162c05ee
"""
import logging
import sys
__author__ = "JV conseil – Internet Consulting"
__copyright__ = "Copyright (c) 2021, JV conseil – Internet Consulting, All rights reserved."
__credits__ = ["JV-conseil"]
__license__ = "BSD 3-Clause License"
__version__ = "1.0.0"
__maintainer__ = "JV-conseil"
__email__ = "contact@jv-conseil.net"
__status__ = "Development"
try:
import pandas as pd
except ImportError:
sys.exit("""You need pandas!
install it from http://pypi.python.org/pypi/pandas
or run pip install pandas""")
# Logs
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
data_csv_url = 'https://www.data.gouv.fr/fr/datasets/r/554590ab-ae62-40ac-8353-ee75162c05ee'
try:
df = pd.read_csv(data_csv_url, sep=';', na_filter=False).to_dict(orient='records')
ville_11 = {d['Code_postal']: (d['Nom_commune'], d) for d in df if len(d['Nom_commune']) > 19}
ville_11 = list(sorted(ville_11.values(), key=lambda x: x[0]))
print("### Si votre lieu de résidence et/ou de naissance est parmi les {} villes listées ci-dessous l'[Attestation de déplacement dérogatoire numérique](https://media.interieur.gouv.fr/attestation-deplacement-derogatoire-covid-19/) ne fonctionnera pas :".format(len(ville_11)))
for i, v in enumerate(ville_11, 1):
print('{}. {} ({})'.format(i, v[0], v[1]['Code_postal']))
except Exception as e:
logger.exception(e)
La liste n'est pas complète. Le script python ne liste pas les communes partageant le même code postal qu'une autre ayant un nom court. Par exemple "La Neuville Chant d'Oisel" (76520) qui partage le même code postal que la commune de Boos (76520).
Ce qui est étonnant sur le bug c'est que cela fonctionnait auparavant (toutes les attestations depuis la première), il y avait simplement un avertissement indiquant que le nom de la commune est trop long et qu'il est possible que le générateur ne fonctionne pas (mais fonctionnait quant même). Ce bug a donc été introduit dans la dernière attestation.
La valeur de retour de la fonction
getIdealFontSize()
doit être de type numérique, à défaut 0 mais pasnull
!https://github.com/LAB-MI/attestation-deplacement-derogatoire-covid-19/blob/19cca14d04f0cc5a9040c6dcc45b696db8d8a524/src/js/pdf-util.js#L195-L204
Sinon la création du PDF est buggée et l'attestation n'est pas générée 🚫
Correctif proposé 👉 https://github.com/LAB-MI/attestation-deplacement-derogatoire-covid-19/pull/19