Pular para conteúdo

Componente#

Componente #

Componente(modulo: ModuloT, nome: str, filhos: ListaRegistro)

Bases: ABC

Contém informações sobre um componente de uma escrituração.

Attributes:

  • nome (str) –

    Nome do componente.

  • filhos (ListaRegistro) –

    Lista de filhos do componente.

  • modulo (ModuloT) –

    Módulo ao qual o componente pertence.

  • tamanho (int) –

    Quantidade registro que o componente representa.

  • registros (ListaRegistro) –

    Lista contendo todos os registros filhos recursivamente.

Parameters:

  • nome (str) –

    Nome do componente.

  • filhos (ListaRegistro) –

    Lista inicial de filhos do componente.

  • modulo (ModuloT) –

    Módulo ao qual o componente pertence.

tamanho property #

tamanho: int

Tamanho do componente, sendo a quantidade de linhas que o componente e seus filhos ocupariam em uma escrituração.

Especificamente para os blocos 0 e 9 os registros 0000 e 9999 são considerados como registros filhos.

registros property #

registros: ListaRegistro[Registro]

Lista contendo todos os registros filhos diretos e recursivos.

__iter__ #

__iter__() -> Iterator[Registro]

Usado para iterar os registros filhos do componente.

Returns:

  • Iterator[Registro] –

    Um iterador de todos os registros filhos do componente.

texto abstractmethod #

texto() -> str

Converte o componente para texto, da messa forma como ele estaria presente em um arquivo de escrituração, inclusive contendo quebras de linhas.

Returns:

  • str –

    Representação textual do componente.

buscar #

buscar(
    nome: str | None = None,
    campos: dict[Chave, Valor | Iterable[Valor]] | None = None,
    *,
    campos_c: dict[Chave, ValorC | Iterable[ValorC]] | None = None,
    campos_n: dict[Chave, ValorN | Iterable[ValorN]] | None = None,
    filtro: Callable[[Registro], bool] | None = None,
    recursivo: bool = True,
    primeiro: bool = False
) -> ListaRegistro[Registro]

Realiza uma busca de registros válidos por todos os registros filhos do componente, de acordo com os parâmetros informados.

Parameters:

  • nome (str | None, default: None ) –

    Nome dos registros buscados.

  • campos (dict[Chave, Valor | Iterable[Valor]] | None, default: None ) –

    Dicionários com chaves e um ou mais valores dos campos nos registros buscados.

  • campos_c (dict[Chave, ValorC | Iterable[ValorC]] | None, default: None ) –

    Dicionários com chaves e um ou mais valores alfanuméricos dos campos nos registros buscados.

  • campos_n (dict[Chave, ValorN | Iterable[ValorN]] | None, default: None ) –

    Dicionários com chaves e um ou mais valores numéricos dos campos nos registros buscados.

  • filtro (Callable[[Registro], bool] | None, default: None ) –

    Função que recebe um Registro e retorna True para os registros buscados.

  • recursivo (bool, default: True ) –

    Se a busca é feita de forma recursiva.

  • primeiro (bool, default: False ) –

    Se a busca deve ser encerrada após o primeiro registro ser encontrado.

Returns:

  • ListaRegistro[Registro] –

    Lista de registros contendo todos os registros válidos encontrados na busca.

Examples:

>>> registro.buscar("NOME", {"CAMPO": [1, 2]}, filtro=lambda r: True)
ListaRegistro[Registro('|NOME|1|'), Registro('|NOME|2|')]

primeiro #

primeiro(
    nome: str | None = None,
    campos: dict[Chave, Valor | Iterable[Valor]] | None = None,
    *,
    campos_c: dict[Chave, ValorC | Iterable[ValorC]] | None = None,
    campos_n: dict[Chave, ValorN | Iterable[ValorN]] | None = None,
    filtro: Callable[[Registro], bool] | None = None,
    recursivo: bool = True
) -> Registro

Realiza uma busca pelo primeiro registro válido por todos os registros filhos do componente, de acordo com os parâmetros informados.

Parameters:

  • nome (str | None, default: None ) –

    Nome dos registros buscados.

  • campos (dict[Chave, Valor | Iterable[Valor]] | None, default: None ) –

    Dicionários com chaves e um ou mais valores dos campos nos registros buscados.

  • campos_c (dict[Chave, ValorC | Iterable[ValorC]] | None, default: None ) –

    Dicionários com chaves e um ou mais valores alfanuméricos dos campos nos registros buscados.

  • campos_n (dict[Chave, ValorN | Iterable[ValorN]] | None, default: None ) –

    Dicionários com chaves e um ou mais valores numéricos dos campos nos registros buscados.

  • filtro (Callable[[Registro], bool] | None, default: None ) –

    Função que recebe um Registro e retorna True para os registros buscados.

  • recursivo (bool, default: True ) –

    Se a busca é feita de forma recursiva.

Returns:

  • Registro –

    Primeiro registro válido encontrado na busca.

Raises:

  • ValueError –

    Se nenhum registro válido for encontrado.

Examples:

>>> registro.primeiro("NOME", {"CAMPO": [1, 2]}, filtro=lambda r: True)
Registro('|NOME|1|')
>>> registro.primeiro("ERRO")
ValueError: O registro buscado não foi encontrado