Source code for policyengine_core.taxscales.abstract_rate_tax_scale
from __future__ import annotations
import typing
import warnings
from policyengine_core.taxscales.rate_tax_scale_like import RateTaxScaleLike
if typing.TYPE_CHECKING:
import numpy
NumericalArray = typing.Union[numpy.int_, numpy.float_]
[docs]class AbstractRateTaxScale(RateTaxScaleLike):
"""
Base class for various types of rate-based tax scales: marginal rate,
linear average rate...
"""
def __init__(
self,
name: typing.Optional[str] = None,
option: typing.Any = None,
unit: typing.Any = None,
) -> None:
message = [
"The 'AbstractRateTaxScale' class has been deprecated since",
"version 34.7.0, and will be removed in the future.",
]
warnings.warn(" ".join(message), DeprecationWarning)
super().__init__(name, option, unit)
def calc(
self,
tax_base: NumericalArray,
right: bool,
) -> typing.NoReturn:
raise NotImplementedError(
"Method 'calc' is not implemented for "
f"{self.__class__.__name__}",
)