Exemplo n.º 1
0
def test_survey_simulation():
    year = 2011
    input_data_frame = get_input_data_frame(year)
    tax_benefit_system_class = openfisca_france.FranceTaxBenefitSystem()
    survey_scenario = SurveyScenario().init_from_data_frame(
        input_data_frame=input_data_frame,
        tax_benefit_system_class=tax_benefit_system_class,
        year=year,
    )
    simulation = survey_scenario.new_simulation()
    try:
        from pandas import DataFrame
        revenu_disponible = DataFrame(
            {"revenu_disponible": simulation.calculate('revenu_disponible')})
    except NaNCreationError as error:
        index = error.index
        entity = error.entity
        column_name = error.column_name
        input_data_frame_debug = filter_input_data_frame(
            simulation.input_data_frame,
            entity,
            index[:10],
        )
        survey_scenario_debug = SurveyScenario()
        simulation_debug = survey_scenario_debug.new_simulation(
            debug=True,
            input_data_frame=input_data_frame_debug,
            tax_benefit_system_class=tax_benefit_system_class,
            year=year,
        )
        simulation_debug.calculate(column_name)

    print(revenu_disponible.info())
Exemplo n.º 2
0
def set_variables_default_value(dataframe, year):
    import openfisca_france
    tax_benefit_system = openfisca_france.FranceTaxBenefitSystem()

    for column_name, column in tax_benefit_system.variables.iteritems():
        if column_name in dataframe.columns:
            dataframe[column_name].fillna(column.default_value, inplace=True)
            dataframe[column_name] = dataframe[column_name].astype(
                column.dtype)
Exemplo n.º 3
0
def test_weights_building():
    year = 2011
    input_data_frame = get_input_data_frame(year)
    tax_benefit_system_class = openfisca_france.FranceTaxBenefitSystem()
    survey_scenario = SurveyScenario().init_from_data_frame(
        input_data_frame = input_data_frame,
        tax_benefit_system_class = tax_benefit_system_class,
        year = year,
        )
    simulation = survey_scenario.new_simulation()
Exemplo n.º 4
0
def adaptation_eipp_to_OF(years = None, filename = "test", check = False):
    """
    Adapation des bases ERFS FPR de l'IPP pour OF
    """
    if years is None:
        log.error("A list of years to process is needed")

    for year in years:
        # load data
        eipp_survey_collection = SurveyCollection.load(collection = 'eipp')
        survey = eipp_survey_collection.surveys['eipp_{}'.format(year)]
        base = survey.get_values(table = "base")
        ipp2of_input_variables, ipp2of_output_variables = build_ipp2of_variables()
        # print 'avant',list(base.columns.values)
        # base.rename(columns = ipp2of_input_variables, inplace = True)
        # print 'après',list(base.columns.values)

        tax_benefit_system = openfisca_france.FranceTaxBenefitSystem()

    data_frame = build_input_OF(base, ipp2of_input_variables, tax_benefit_system)
    return data_frame
Exemplo n.º 5
0
def build_cerfa_fields_by_column_name(year, sections_cerfa):
    tax_benefit_system = openfisca_france.FranceTaxBenefitSystem()
    cerfa_fields_by_column_name = dict()
    for name, column in tax_benefit_system.variables.iteritems():
        for section_cerfa in sections_cerfa:
            if name.startswith('f{}'.format(section_cerfa)):
                end = column.end or None
                if end is None or end.year >= year:
                    if column.entity.key == 'individu':
                        cerfa_field = [
                            'f' + x.lower().encode('ascii', 'ignore')
                            for x in column.cerfa_field.values()
                        ]
                    elif column.entity.key == 'foyer_fiscal':
                        cerfa_field = [
                            'f' + column.cerfa_field.lower().encode(
                                'ascii', 'ignore')
                        ]
                    cerfa_fields_by_column_name[name.encode(
                        'ascii', 'ignore')] = cerfa_field
    return cerfa_fields_by_column_name
Exemplo n.º 6
0
import openfisca_france
import datetime

tbs = openfisca_france.FranceTaxBenefitSystem()

scenario = tbs.new_scenario().init_from_attributes(
    period="2016-01",
    input_variables={
        'date_naissance': datetime.date(1980, 1, 1),
        'loyer': 500,
        'statut_occupation_logement': 3,
    },
)


def test_variable_in_blacklist():
    simulation = scenario.new_simulation(opt_out_cache=True)
    simulation.calculate('aide_logement_montant_brut')
    assert (simulation.get_or_new_holder('aide_logement_R0')._array_by_period
            is None)


def test_variable_not_in_blacklist():
    simulation = scenario.new_simulation(opt_out_cache=True)
    simulation.calculate('aide_logement_montant_brut')
    assert (simulation.get_or_new_holder(
        'aide_logement_montant_brut')._array_by_period is not None)
Exemplo n.º 7
0
 def __init__(self, verbose=True):
     self._tax_benefit_system = openfisca_france.FranceTaxBenefitSystem()
     self._verbose = verbose
Exemplo n.º 8
0
import cpam_utils
import csv
import openfisca_france
from datetime import datetime
from openfisca_core.simulations import Simulation

import sys

from pprint import pprint

filename = '../doc/CMUCACS.csv'

if len(sys.argv) > 1:
    filename = sys.argv[len(sys.argv) - 1]

legislation_francaise = openfisca_france.FranceTaxBenefitSystem()
with open(filename, 'r') as file:
    rows = csv.DictReader(file)
    for data in rows:
        period = datetime.strptime('2018-08-01', '%Y-%m-%d')
        situation = cpam_utils.createSituation(data, period)
        pprint(situation)

        simulation_actuelle = Simulation(
            tax_benefit_system=legislation_francaise,
            simulation_json=situation)
        variable = 'cmu_c'

        periodText = period.strftime('%Y-%m')
        resultat = simulation_actuelle.calculate(variable, periodText)
Exemplo n.º 9
0
## ATTENTION : ce script interroge le simulateur en ligne de la DGFiP, qui n'est pas complet : certaines cases de la déclaration pro (2042 c) n'y sont pas, ainsi certaines variables peuvent exister même si le .json dit le contraire. Le fichier 2_init_foyer_3_encapsulation3.sas peut aider pour ces cas-là (il vient d'INES, voir avec Mahdi)

import codecs
import collections
import cStringIO
import json
import os
import sys
import urllib
import urllib2

from lxml import etree

import openfisca_france

tax_benefit_system = openfisca_france.FranceTaxBenefitSystem()


def main():
    global dates
    dates = {}

    def test(var):
        global dates, t
        t = 0
        p = 0
        j = 3
        year = 2005
        dates[var] = []

        def requete(p, i, year, var):
Exemplo n.º 10
0
 def __init__(self, testcases):
     self._tax_benefit_system = openfisca_france.FranceTaxBenefitSystem()
     self._testcases = testcases
     self._converter = CerfaOpenFiscaConverter()