Pular para conteúdo

Parameters

Parâmetros de entrada das camadas — só dados.

py_return_success_or_error.parameters.parameters

Contrato base dos parâmetros de entrada das camadas.

Parameters dataclass

Bases: ABC

Base abstrata dos parâmetros de entrada — só dados.

Diferente da versão 0.x, os parâmetros não carregam erro de fallback: o tratamento de erro pertence a cada camada (map_error no repositório, on_unexpected no caso de uso). Declare os campos da feature num dataclass congelado::

@dataclass(frozen=True)
class BuscaClienteParameters(Parameters):
    cliente_id: int
Source code in src/py_return_success_or_error/parameters/parameters.py
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@dataclass(frozen=True)
class Parameters(ABC):
    """Base abstrata dos parâmetros de entrada — **só dados**.

    Diferente da versão 0.x, os parâmetros não carregam erro de fallback:
    o tratamento de erro pertence a cada camada (``map_error`` no
    repositório, ``on_unexpected`` no caso de uso). Declare os campos da
    feature num dataclass congelado::

        @dataclass(frozen=True)
        class BuscaClienteParameters(Parameters):
            cliente_id: int
    """

    def __post_init__(self) -> None:
        if type(self) is Parameters:
            raise TypeError(
                'Parameters é abstrata; declare os parâmetros da feature.'
            )

py_return_success_or_error.parameters.no_params

Parâmetro vazio para operações sem entrada.

NO_PARAMS = NoParams() module-attribute

Instância única de :class:NoParams.

NoParams dataclass

Bases: Parameters

Singleton que representa "operação sem parâmetros de entrada".

Use a constante de módulo :data:NO_PARAMS (NoParams() também devolve sempre a mesma instância).

Source code in src/py_return_success_or_error/parameters/no_params.py
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@final
@dataclass(frozen=True)
class NoParams(Parameters):
    """Singleton que representa "operação sem parâmetros de entrada".

    Use a constante de módulo :data:`NO_PARAMS` (``NoParams()`` também
    devolve sempre a mesma instância).
    """

    _instance: ClassVar['NoParams | None'] = None

    def __new__(cls) -> 'NoParams':
        if cls._instance is None:
            cls._instance = super().__new__(cls)
        return cls._instance

    def __reduce__(self) -> str:
        return 'NO_PARAMS'