Source code for openfisca_core.types._domain

from __future__ import annotations

import numpy
import typing_extensions
from typing import Any, Optional
from typing_extensions import Protocol

import abc


[docs]class Entity(Protocol): """Entity protocol.""" key: Any plural: Any
[docs] @abc.abstractmethod def check_role_validity(self, role: Any) -> None: """Abstract method."""
[docs] @abc.abstractmethod def check_variable_defined_for_entity(self, variable_name: Any) -> None: """Abstract method."""
[docs] @abc.abstractmethod def get_variable( self, variable_name: Any, check_existence: Any = ..., ) -> Optional[Any]: """Abstract method."""
[docs]class Formula(Protocol): """Formula protocol."""
[docs] @abc.abstractmethod def __call__( self, population: Population, instant: Instant, params: Params, ) -> numpy.ndarray: """Abstract method."""
[docs]class Holder(Protocol): """Holder protocol."""
[docs] @abc.abstractmethod def clone(self, population: Any) -> Holder: """Abstract method."""
[docs] @abc.abstractmethod def get_memory_usage(self) -> Any: """Abstract method."""
[docs]class Instant(Protocol): """Instant protocol."""
[docs]@typing_extensions.runtime_checkable class ParameterNodeAtInstant(Protocol): """ParameterNodeAtInstant protocol."""
[docs]class Params(Protocol): """Params protocol."""
[docs] @abc.abstractmethod def __call__(self, instant: Instant) -> ParameterNodeAtInstant: """Abstract method."""
[docs]@typing_extensions.runtime_checkable class Period(Protocol): """Period protocol.""" @property @abc.abstractmethod def start(self) -> Any: """Abstract method.""" @property @abc.abstractmethod def unit(self) -> Any: """Abstract method."""
[docs]class Population(Protocol): """Population protocol.""" entity: Any
[docs] @abc.abstractmethod def get_holder(self, variable_name: Any) -> Any: """Abstract method."""
[docs]class Role(Protocol): """Role protocol.""" entity: Any subroles: Any
[docs]class Simulation(Protocol): """Simulation protocol."""
[docs] @abc.abstractmethod def calculate(self, variable_name: Any, period: Any) -> Any: """Abstract method."""
[docs] @abc.abstractmethod def calculate_add(self, variable_name: Any, period: Any) -> Any: """Abstract method."""
[docs] @abc.abstractmethod def calculate_divide(self, variable_name: Any, period: Any) -> Any: """Abstract method."""
[docs] @abc.abstractmethod def get_population(self, plural: Optional[Any]) -> Any: """Abstract method."""
[docs]class TaxBenefitSystem(Protocol): """TaxBenefitSystem protocol.""" person_entity: Any
[docs] @abc.abstractmethod def get_variable( self, variable_name: Any, check_existence: Any = ..., ) -> Optional[Any]: """Abstract method."""
[docs]class Variable(Protocol): """Variable protocol.""" entity: Any