Description
Contexte :
J'utilise les versions suivantes :
-openfisca-core (35.0.4)
-openfisca-france (48.15.1)
-openfisca-france-data (bug_salaire_de_base_erfs_2016)
-openfisca-survey-manager (csv)
-taxipp (ppa_biactif)
Bug : Pour l'année 2016, le code taxipp\tests\ppa\memoire_francois_TdO renvoyait une erreur :
File "C:\Users\fteys\AppData\Roaming\Python\Python37\site-packages\pandas\core\indexes\base.py", line 2897, in get_loc raise KeyError(key) from err KeyError: 'salaire_de_base'
Dans la branche openfisca-france-data (bug_salaire_de_base_erfs_2016) j'ai modifié le fichier openfisca_france_data/erfs_fpr/input_data_builder/step_03_variables_individuelles.py pour traquer l'origine de l'erreur à la création de la variable salaire_de_base.
J'ai ajouté deux print(individus['salaire_de_base']) : u dans la fonction qui créé cette variable et un autre juste après l'appel à la fonction qui crée cette variable.
Le bug c'est que le premier print dans la fonction arrive à imprimer individus['salaire_de_base'], alors que le second print renvoie l'erreur :
File "c:\github\openfisca-france-data\openfisca_france_data\erfs_fpr\input_data_builder\step_03_variables_individuelles.py", line 129, in build_variables_individuelles
print("juste après la fonction create_variables_individuelles \n \n \n", individus['salaire_de_base'])
File "C:\Users\fteys\AppData\Roaming\Python\Python37\site-packages\pandas\core\frame.py", line 2906, in getitem
indexer = self.columns.get_loc(key)
File "C:\Users\fteys\AppData\Roaming\Python\Python37\site-packages\pandas\core\indexes\base.py", line 2897, in get_loc
raise KeyError(key) from err
KeyError: 'salaire_de_base'
Tout se passe comme si pour l'année 2016 la création de la variable salaire_de_base se faisait localement dans la fonction qui la crée mais pas globalement. Alors que pour l'année 2015 les deux prints réussissent à afficher individus['salaire_de_base']), aucune erreur ne survient et le code fonctionne.
Question : J'ai l'impression qu'un fix serait de rajouter un "return individus" dans la fonction qui crée salaire_de_base pour bien récupérer la version modifiée d'individus en sortie, mais je ne comprends pas pourquoi il y aurait besoin de faire cela seulement en 2016 et pas pour les autres années.
J'ai testé cette modification et elle semble fonctionner. Je la rajoute dans:
openfisca-france-data (fix_bug_salaire_de_base_erfs_2016)
Est-ce que vous comprenez d'où vient le bug et est-ce que vous pensez que le fix que j'ai proposé est une manière correcte de le corriger ?
@benjello @claireleroy
Activity