OpenFisca-France 169.14.10__py3-none-any.whl → 169.15.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of OpenFisca-France might be problematic. Click here for more details.

@@ -0,0 +1,81 @@
1
+ from openfisca_france.model.base import *
2
+ import os
3
+ import csv
4
+ import numpy as np
5
+
6
+
7
+ def load_zonage_file(period, parameters):
8
+ chemin_fichier_zonage_abc = os.path.join(parameters(period).prestations_sociales.bail_reel_solidaire.parametres_generaux.fichier_zonage[0])
9
+
10
+ if not os.path.exists(chemin_fichier_zonage_abc):
11
+ return None
12
+
13
+ with open(chemin_fichier_zonage_abc, 'r', encoding='utf-8') as csvfile:
14
+ csv_reader = csv.DictReader(csvfile, delimiter=';')
15
+ return {row['CODGEO']: row['Zone en vigueur depuis le 5 juillet 2024'] for row in csv_reader}
16
+
17
+
18
+ def plafond_par_zone_et_composition(nb_personnes, plafonds_par_zones, zone):
19
+ plafond_zone = plafonds_par_zones[f'zone_{zone}']
20
+
21
+ tranches_composition = range(1, 7)
22
+ conditions_nb_personnes = [
23
+ nb_personnes == i if i < 6 else nb_personnes >= i
24
+ for i in tranches_composition
25
+ ]
26
+
27
+ plafonds_revenus = [
28
+ plafond_zone[f'nb_personnes_{i}']
29
+ for i in tranches_composition
30
+ ]
31
+
32
+ return select(conditions_nb_personnes, plafonds_revenus)
33
+
34
+
35
+ def plafond_supplementaire_par_zone(nb_personnes, plafonds_par_zones, zone, nb_personnes_max):
36
+ return where(
37
+ nb_personnes > nb_personnes_max,
38
+ (nb_personnes - nb_personnes_max) * plafonds_par_zones[f'zone_{zone}']['nb_personnes_supplementaires'],
39
+ 0
40
+ )
41
+
42
+
43
+ class bail_reel_solidaire(Variable):
44
+ entity = Menage
45
+ value_type = bool
46
+ reference = [
47
+ 'https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000032918488',
48
+ 'https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000437021'
49
+ ]
50
+ label = 'Bail réel solidaire'
51
+ definition_period = MONTH
52
+
53
+ def formula(menage, period, parameters):
54
+ parametres = parameters(period).prestations_sociales.bail_reel_solidaire.parametres_generaux
55
+ zones_abc_eligibles = parametres.zones_abc_eligibles
56
+ nb_personnes_max = parametres.nombre_personnes_maximum
57
+
58
+ zones_par_depcom = load_zonage_file(period, parameters)
59
+ if not zones_par_depcom:
60
+ return False
61
+
62
+ nb_personnes = menage.nb_persons()
63
+ depcom = menage('depcom', period.first_month)
64
+ zones_menage = np.array([zones_par_depcom.get(d.decode('utf-8'), None) for d in depcom])
65
+
66
+ plafonds_par_zones = parameters(period).prestations_sociales.bail_reel_solidaire.plafonds_par_zones
67
+
68
+ plafond_revenu_base = select(
69
+ [zones_menage == zone for zone in zones_abc_eligibles],
70
+ [plafond_par_zone_et_composition(nb_personnes, plafonds_par_zones, zone) for zone in zones_abc_eligibles]
71
+ )
72
+
73
+ plafond_revenu_supplementaire = select(
74
+ [zones_menage == zone for zone in zones_abc_eligibles],
75
+ [plafond_supplementaire_par_zone(nb_personnes, plafonds_par_zones, zone, nb_personnes_max) for zone in zones_abc_eligibles]
76
+ )
77
+
78
+ rfr = menage.sum(menage.members.foyer_fiscal(
79
+ 'rfr', period.n_2), role=FoyerFiscal.DECLARANT_PRINCIPAL)
80
+
81
+ return where(zones_menage is not None, rfr <= (plafond_revenu_base + plafond_revenu_supplementaire), False)
@@ -0,0 +1,6 @@
1
+ description: Bail réel solidaire
2
+ metadata:
3
+ short_label: BRS
4
+ label_en: Social real estate lease
5
+ order:
6
+ - plafonds_par_zones
@@ -0,0 +1,25 @@
1
+ description: Paramètres généraux du bail réel solidaire
2
+ metadata:
3
+ reference:
4
+ href: ['https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000032918488', 'https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000437021']
5
+
6
+ fichier_zonage:
7
+ description: Chemin absolu vers le fichier de zonage ABC
8
+ values:
9
+ 2024-07-01:
10
+ - 'openfisca_france/assets/zonage-communes/zonage-abc-juillet-2024.csv'
11
+
12
+ zones_abc_eligibles:
13
+ description: Liste des zones éligibles au dispositif
14
+ values:
15
+ 2024-07-01:
16
+ - 'A'
17
+ - 'Abis'
18
+ - 'B1'
19
+ - 'B2'
20
+ - 'C'
21
+
22
+ nombre_personnes_maximum:
23
+ description: Nombre maximum de personnes avant application du supplément par personne
24
+ values:
25
+ 2024-07-01: 6
@@ -0,0 +1,10 @@
1
+ description: Plafonds de ressources du bail réel solidaire (BRS)
2
+ metadata:
3
+ short_label: Plafonds BRS
4
+ order:
5
+ - zone_A
6
+ - zone_Abis
7
+ - zone_B1
8
+ - zone_B2
9
+ - zone_C
10
+
@@ -0,0 +1,40 @@
1
+ description: Plafonds de ressources de la zone A du bail réel solidaire (BRS)
2
+ metadata:
3
+ reference:
4
+ href: https://www.service-public.fr/particuliers/actualites/A17559
5
+ short_label: Plafonds BRS ressources zone A
6
+
7
+ nb_personnes_1:
8
+ description: Plafond zone A pour 1 personne
9
+ values:
10
+ 2024-07-01: 37581
11
+
12
+ nb_personnes_2:
13
+ description: Plafond zone A pour 2 personnes
14
+ values:
15
+ 2024-07-01: 56169
16
+
17
+ nb_personnes_3:
18
+ description: Plafond zone A pour 3 personnes
19
+ values:
20
+ 2024-07-01: 73630
21
+
22
+ nb_personnes_4:
23
+ description: Plafond zone A pour 4 personnes
24
+ values:
25
+ 2024-07-01: 87909
26
+
27
+ nb_personnes_5:
28
+ description: Plafond zone A pour 5 personnes
29
+ values:
30
+ 2024-07-01: 104592
31
+
32
+ nb_personnes_6:
33
+ description: Plafond zone A pour 6 personnes
34
+ values:
35
+ 2024-07-01: 117694
36
+
37
+ nb_personnes_supplementaires:
38
+ description: Plafond zone A par personne supplémentaire
39
+ values:
40
+ 2024-07-01: 13116
@@ -0,0 +1,40 @@
1
+ description: Plafonds de ressources de la zone Abis du bail réel solidaire (BRS)
2
+ metadata:
3
+ reference:
4
+ href: https://www.service-public.fr/particuliers/actualites/A17559
5
+ short_label: Plafonds BRS ressources zone Abis
6
+
7
+ nb_personnes_1:
8
+ description: Plafond zone Abis pour 1 personne
9
+ values:
10
+ 2024-07-01: 37581
11
+
12
+ nb_personnes_2:
13
+ description: Plafond zone Abis pour 2 personnes
14
+ values:
15
+ 2024-07-01: 56169
16
+
17
+ nb_personnes_3:
18
+ description: Plafond zone Abis pour 3 personnes
19
+ values:
20
+ 2024-07-01: 73630
21
+
22
+ nb_personnes_4:
23
+ description: Plafond zone Abis pour 4 personnes
24
+ values:
25
+ 2024-07-01: 87909
26
+
27
+ nb_personnes_5:
28
+ description: Plafond zone Abis pour 5 personnes
29
+ values:
30
+ 2024-07-01: 104592
31
+
32
+ nb_personnes_6:
33
+ description: Plafond zone Abis pour 6 personnes
34
+ values:
35
+ 2024-07-01: 117694
36
+
37
+ nb_personnes_supplementaires:
38
+ description: Plafond zone Abis par personne supplémentaire
39
+ values:
40
+ 2024-07-01: 13116
@@ -0,0 +1,40 @@
1
+ description: Plafonds de ressources de la zone B1 du bail réel solidaire (BRS)
2
+ metadata:
3
+ reference:
4
+ href: https://www.service-public.fr/particuliers/actualites/A17559
5
+ short_label: Plafonds BRS ressources zone B1
6
+
7
+ nb_personnes_1:
8
+ description: Plafond zone B1 pour 1 personne
9
+ values:
10
+ 2024-07-01: 37581
11
+
12
+ nb_personnes_2:
13
+ description: Plafond zone B1 pour 2 personnes
14
+ values:
15
+ 2024-07-01: 56169
16
+
17
+ nb_personnes_3:
18
+ description: Plafond zone B1 pour 3 personnes
19
+ values:
20
+ 2024-07-01: 67517
21
+
22
+ nb_personnes_4:
23
+ description: Plafond zone B1 pour 4 personnes
24
+ values:
25
+ 2024-07-01: 80875
26
+
27
+ nb_personnes_5:
28
+ description: Plafond zone B1 pour 5 personnes
29
+ values:
30
+ 2024-07-01: 95739
31
+
32
+ nb_personnes_6:
33
+ description: Plafond zone B1 pour 6 personnes
34
+ values:
35
+ 2024-07-01: 107738
36
+
37
+ nb_personnes_supplementaires:
38
+ description: Plafond zone B1 par personne supplémentaire
39
+ values:
40
+ 2024-07-01: 12005
@@ -0,0 +1,40 @@
1
+ description: Plafonds de ressources de la zone B2 du bail réel solidaire (BRS)
2
+ metadata:
3
+ reference:
4
+ href: https://www.service-public.fr/particuliers/actualites/A17559
5
+ short_label: Plafonds BRS ressources zone B2
6
+
7
+ nb_personnes_1:
8
+ description: Plafond zone B2 pour 1 personne
9
+ values:
10
+ 2024-07-01: 32673
11
+
12
+ nb_personnes_2:
13
+ description: Plafond zone B2 pour 2 personnes
14
+ values:
15
+ 2024-07-01: 43633
16
+
17
+ nb_personnes_3:
18
+ description: Plafond zone B2 pour 3 personnes
19
+ values:
20
+ 2024-07-01: 52471
21
+
22
+ nb_personnes_4:
23
+ description: Plafond zone B2 pour 4 personnes
24
+ values:
25
+ 2024-07-01: 63347
26
+
27
+ nb_personnes_5:
28
+ description: Plafond zone B2 pour 5 personnes
29
+ values:
30
+ 2024-07-01: 74518
31
+
32
+ nb_personnes_6:
33
+ description: Plafond zone B2 pour 6 personnes
34
+ values:
35
+ 2024-07-01: 83983
36
+
37
+ nb_personnes_supplementaires:
38
+ description: Plafond zone B2 par personne supplémentaire
39
+ values:
40
+ 2024-07-01: 9368
@@ -0,0 +1,40 @@
1
+ description: Plafonds de ressources de la zone C du bail réel solidaire (BRS)
2
+ metadata:
3
+ reference:
4
+ href: https://www.service-public.fr/particuliers/actualites/A17559
5
+ short_label: Plafonds BRS ressources zone C
6
+
7
+ nb_personnes_1:
8
+ description: Plafond zone C pour 1 personne
9
+ values:
10
+ 2024-07-01: 32673
11
+
12
+ nb_personnes_2:
13
+ description: Plafond zone C pour 2 personnes
14
+ values:
15
+ 2024-07-01: 43633
16
+
17
+ nb_personnes_3:
18
+ description: Plafond zone C pour 3 personnes
19
+ values:
20
+ 2024-07-01: 52471
21
+
22
+ nb_personnes_4:
23
+ description: Plafond zone C pour 4 personnes
24
+ values:
25
+ 2024-07-01: 63347
26
+
27
+ nb_personnes_5:
28
+ description: Plafond zone C pour 5 personnes
29
+ values:
30
+ 2024-07-01: 74518
31
+
32
+ nb_personnes_6:
33
+ description: Plafond zone C pour 6 personnes
34
+ values:
35
+ 2024-07-01: 83983
36
+
37
+ nb_personnes_supplementaires:
38
+ description: Plafond zone C par personne supplémentaire
39
+ values:
40
+ 2024-07-01: 9368