|
1 | 1 | # -*- coding: utf-8 -*-
|
2 | 2 | from openfisca_france.model.base import Variable, Menage, MONTH
|
3 | 3 | from openfisca_core import reforms
|
4 |
| -from numpy.core.defchararray import startswith |
5 | 4 |
|
6 | 5 | import pandas as pd
|
7 |
| -from importlib import resources |
| 6 | + |
8 | 7 |
|
9 | 8 | def epci_test_factory(groups, code):
|
10 |
| - group = groups.get_group(code) |
11 |
| - code_communes = group['insee'].values |
12 |
| - raison_sociale = group['raison_sociale'].values[0] |
| 9 | + group = groups.get_group(code) |
| 10 | + code_communes = group['insee'].values |
| 11 | + raison_sociale = group['raison_sociale'].values[0] |
13 | 12 |
|
14 |
| - class NewEPCITestClass(Variable): |
15 |
| - value_type = bool |
16 |
| - entity = Menage |
17 |
| - definition_period = MONTH |
18 |
| - label = u"Ménage dans une commune de l'EPCI %s" % raison_sociale |
| 13 | + class NewEPCITestClass(Variable): |
| 14 | + value_type = bool |
| 15 | + entity = Menage |
| 16 | + definition_period = MONTH |
| 17 | + label = u"Ménage dans une commune de l'EPCI %s" % raison_sociale |
19 | 18 |
|
20 |
| - def formula(menage, period): |
21 |
| - depcom = menage('depcom', period) |
22 |
| - return sum([depcom == code for code in code_communes]) |
| 19 | + def formula(menage, period): |
| 20 | + depcom = menage('depcom', period) |
| 21 | + return sum([depcom == code for code in code_communes]) |
23 | 22 |
|
24 |
| - NewEPCITestClass.__name__ = "menage_dans_epci_siren_%i" % code |
25 |
| - return NewEPCITestClass |
| 23 | + NewEPCITestClass.__name__ = "menage_dans_epci_siren_%i" % code |
| 24 | + return NewEPCITestClass |
26 | 25 |
|
27 | 26 |
|
28 | 27 | class epci_reform(reforms.Reform):
|
29 | 28 | def apply(self):
|
30 |
| - with resources.path('openfisca_france_local', 'epcicom2020.xlsx') as filepath: |
31 |
| - raw = pd.read_excel(filepath) |
| 29 | + raw = pd.read_excel('openfisca_france_local/epcicom2020.xlsx') |
32 | 30 | raw.insee = raw.insee.astype('|S5')
|
33 | 31 | df = raw[['siren', 'insee', 'raison_sociale']].groupby('siren')
|
34 | 32 |
|
35 | 33 | for siren in df.groups:
|
36 |
| - self.add_variable(epci_test_factory(df, siren)) |
| 34 | + self.add_variable(epci_test_factory(df, siren)) |
0 commit comments