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

salaire_de_base ne se créé pas bien pour l'erfs-fpr 2016 #195

Open
FrancoisTeyssier opened this issue Apr 16, 2021 · 0 comments
Open

salaire_de_base ne se créé pas bien pour l'erfs-fpr 2016 #195

FrancoisTeyssier opened this issue Apr 16, 2021 · 0 comments
Assignees

Comments

@FrancoisTeyssier
Copy link
Contributor

FrancoisTeyssier commented Apr 16, 2021

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

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