Parameters

class openfisca_core.parameters.AtInstantLike[source]

Base class for various types of parameters implementing the at instant protocol.

class openfisca_core.parameters.Parameter(name, data, file_path=None)[source]

A parameter of the legislation.

Parameters can change over time.

values_list

List of the values, in reverse chronological order.

Parameters
  • name (str) – Name of the parameter, e.g. “taxes.some_tax.some_param”.

  • data (dict) – Data loaded from a YAML file.

  • file_path (Optional[str]) – File the parameter was loaded from.

Instantiate a parameter without metadata:

>>>  Parameter('rate', data = {
        "2015-01-01": 550,
        "2016-01-01": 600
        })

Instantiate a parameter with metadata:

>>>  Parameter('rate', data = {
        'description': 'Income tax rate applied on salaries',
        'values': {
            "2015-01-01": {'value': 550, 'metadata': {'reference': 'http://taxes.gov/income_tax/2015'}},
            "2016-01-01": {'value': 600, 'metadata': {'reference': 'http://taxes.gov/income_tax/2016'}}
            }
        })
update(period=None, start=None, stop=None, value=None)[source]

Change the value for a given period.

Parameters
  • period – Period where the value is modified. If set, start and stop should be None.

  • start – Start of the period. Instance of openfisca_core.periods.Instant. If set, period should be None.

  • stop – Stop of the period. Instance of openfisca_core.periods.Instant. If set, period should be None.

  • value – New value. If None, the parameter is removed from the legislation parameters for the given period.

class openfisca_core.parameters.ParameterAtInstant(name, instant_str, data=None, file_path=None, metadata=None)[source]

A value of a parameter at a given instant.

class openfisca_core.parameters.ParameterNode(name='', directory_path=None, data=None, file_path=None)[source]

A node in the legislation parameter tree.

add_child(name, child)[source]

Add a new child to the node.

Parameters
  • name – Name of the child that must be used to access that child. Should not contain anything that could interfere with the operator . (dot).

  • child – The new child, an instance of ParameterScale or Parameter or ParameterNode.

get_descendants()[source]

Return a generator containing all the parameters and nodes recursively contained in this ParameterNode

merge(other)[source]

Merges another ParameterNode into the current node.

In case of child name conflict, the other node child will replace the current node child.

class openfisca_core.parameters.ParameterNodeAtInstant(name, node, instant_str)[source]

Parameter node of the legislation, at a given instant.

class openfisca_core.parameters.ParameterScale(name, data, file_path)[source]

A parameter scale (for instance a marginal scale).

class openfisca_core.parameters.ParameterScaleBracket(name='', directory_path=None, data=None, file_path=None)[source]

A parameter scale bracket.

class openfisca_core.parameters.VectorialParameterNodeAtInstant(name, vector, instant_str)[source]

Parameter node of the legislation at a given instant which has been vectorized. Vectorized parameters allow requests such as parameters.housing_benefit[zipcode], where zipcode is a vector

static check_node_vectorisable(node)[source]

Check that a node can be casted to a vectorial node, in order to be able to use fancy indexing.

openfisca_core.parameters.helpers.load_parameter_file(file_path, name='')[source]

Load parameters from a YAML file (or a directory containing YAML files).

Returns

An instance of ParameterNode or ParameterScale or Parameter.