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.


List of the values, in reverse chronological order.

  • 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': ''}},
            "2016-01-01": {'value': 600, 'metadata': {'reference': ''}}
update(period=None, start=None, stop=None, value=None)[source]

Change the value for a given period.

  • 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.

  • 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.


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


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).


An instance of ParameterNode or ParameterScale or Parameter.