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