Pular para conteúdo

Realizando Buscas#

As classes Registro, Bloco e ListaRegistro suportam a busca de registros dentro de si mesmos. Ambas usam a função buscar() para isso, com a mesma sintaxe de comandos e o retorno de outra ListaRegistro com os registros encontrados.

A filtragem dos registros a serem encontrados funciona por meio de lista branca, em que que cada registro precisa ser válido em cada parâmetro para estar presente no resultado retornado.

Caso a função seja executado sem nenhum filtro, todos os registros são retornados (mas para essa situação existe a propriedade atalho registros). Adicionalmente a função primeiro() está presente nas mesmas classes que buscar(), e é um atalho equivalente a buscar(..., primeiro=True)[0].

Finalmente os mesmo parâmetros também podem aparecer parcialmente em outras funções que realizam uma ação baseada em um conjunto de filtro especificado. Especificamente a função remover() e teste().


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|')]