Pular para conteúdo

DataSources

Portas de acesso a dados externos.

py_return_success_or_error.datasources.datasource

Porta "burra" de acesso a dados externos.

DataSource

Bases: ABC

Porta de acesso a um recurso externo (HTTP, banco, arquivo...).

Contrato deliberadamente "burro": devolve o dado bruto ou lança a exceção técnica original (TimeoutError, OSError, erro do driver...). Não conhece o domínio nem o modelo de erro da feature — a tradução exceção→erro é responsabilidade do :class:~py_return_success_or_error.repositories.repository_base.RepositoryBase.

O cancelamento asyncio é ambiente: um asyncio.CancelledError pode emergir de qualquer await interno e deve propagar.

Source code in src/py_return_success_or_error/datasources/datasource.py
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class DataSource[TData, TParams: Parameters](ABC):
    """Porta de acesso a um recurso externo (HTTP, banco, arquivo...).

    Contrato deliberadamente "burro": devolve o dado **bruto** ou
    **lança** a exceção técnica original (``TimeoutError``, ``OSError``,
    erro do driver...). Não conhece o domínio nem o modelo de erro da
    feature — a tradução exceção→erro é responsabilidade do
    :class:`~py_return_success_or_error.repositories.repository_base.RepositoryBase`.

    O cancelamento asyncio é ambiente: um ``asyncio.CancelledError`` pode
    emergir de qualquer ``await`` interno e deve propagar.
    """

    @abstractmethod
    async def __call__(self, parameters: TParams) -> TData:
        """Executa a chamada externa.

        Args:
            parameters: Parâmetros da chamada.

        Returns:
            O dado bruto obtido.

        Raises:
            Exception: Qualquer falha técnica da infraestrutura.
        """
        ...  # pragma: no cover

__call__(parameters) abstractmethod async

Executa a chamada externa.

Parameters:

Name Type Description Default
parameters TParams

Parâmetros da chamada.

required

Returns:

Type Description
TData

O dado bruto obtido.

Raises:

Type Description
Exception

Qualquer falha técnica da infraestrutura.

Source code in src/py_return_success_or_error/datasources/datasource.py
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@abstractmethod
async def __call__(self, parameters: TParams) -> TData:
    """Executa a chamada externa.

    Args:
        parameters: Parâmetros da chamada.

    Returns:
        O dado bruto obtido.

    Raises:
        Exception: Qualquer falha técnica da infraestrutura.
    """
    ...  # pragma: no cover