Pular para conteúdo

Registro#

Registro #

Registro(
    modulo: ModuloT,
    campos: str | dict[Chave, Valor] | None = None,
    *,
    pai: Registro | None = None,
    filhos: list[Registro] | ListaRegistro | Iterable[Registro] | None = None
)

Bases: Componente, ABC

Contém informações sobre um registro e seus campos.

Na criação de um registro os campos podem ser informados nos seguintes modos:

  • Texto: Da mesma forma como a linha de uma escrituração.
    Todos os campos são obrigatório.
  • Dicionário: Um dicionários contendo as chaves dos campos e seus valores.
    Campos ausentes são interpretados como vazios.

Se for informado o registro pai, o novo registro será automaticamente adicionado na lista de filhos do registro pai. Se forem informados registros filhos, eles serão automaticamente adicionados na lista de filhos do novo registro.

Attributes:

  • nome (str) –

    Nome do registro.

  • campos (TuplaCampo) –

    Campos do registro.

  • filhos (ListaRegistro) –

    Filhos diretos do registro.

  • pai (Registro | None) –

    Pai do Registro.

  • modulo (ModuloT) –

    Módulo ao qual o bloco pertence.

  • descricao (str) –

    Descrição do registro.

  • nivel (int) –

    Nível do registro na escrituração.

  • obrigatorio (bool) –

    Se o registro é obrigatório aparecer na escrituração.

  • unico (bool) –

    Se o registro deve aparecer apenas uma vez na escrituração.

Parameters:

  • modulo (ModuloT) –

    Módulo ao qual o bloco pertence.

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

    Lista dos valores iniciais dos campos do registro.

  • pai (Registro | None, default: None ) –

    Registro pai do registro a ser criado.

  • filhos (list[Registro] | ListaRegistro | Iterable[Registro] | None, default: None ) –

    Registros filhos para o registro a ser criado.

Raises:

  • ValueError –

    Se o valor do parâmetro modulo for inválido.

  • TypeError –

    Se o parâmetro campos for do tipo inválido.

  • TypeError –

    Se o parâmetro pai for do tipo inválido.

  • TypeError –

    Se o parâmetro filhos for do tipo inválido.

  • ValueError –

    Se os campos são do tipo texto e o primeiro campo for diferente do esperado pela subclasse.

  • SyntaxError –

    Se a quantidade de campos for diferente da esperada no modo de texto.

  • ValueError –

    Se não houver pelo menos um campo com nome REG ou número 1 no modo de dicionário.

  • TypeError –

    Se os campos não forem do tipo texto ou dicionário.

Examples:

>>> novo_registro = Registro(Escrituracao.EFD_ICMS_IPI, '|NOME|10|')
Registro('|NOME|10|')
>>> novo_registro.pai
None
>>> novo_registro = Registro(Escrituracao.EFD_ICMS_IPI, {'REG': 'NOME', 2: 20}, pai=registro_pai)
Registro('|NOME|20|')
>>> novo_registro.pai.filhos
ListaRegistro[Registro('|NOME|20|')]

linha property #

linha: str

A representação do registro como uma linha de uma escrituração.

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.

ordem classmethod #

ordem(nome: str, modulo: ModuloT) -> int

Calcula o número de ordem de um registro.

Usado para realizar comparações de ordem entre registros.

Parameters:

  • nome (str) –

    Nome do registro.

  • modulo (ModuloT) –

    Módulo ao qual o registro pertence.

Returns:

  • int –

    Valor numérico da ordem do registro.

Examples:

>>> Registro.ordem('0100', Escrituracao.EFD_ICMS_IPI)
100
>>> Registro.ordem('C500', Escrituracao.EFD_ICMS_IPI)
2500

ler classmethod #

ler(
    registros: str | Iterable[str], modulo: ModuloT | None = None
) -> ListaRegistro

Converte várias linhas para uma lista de registros.

Parameters:

  • registros (str | Iterable[str]) –

    Uma lista de registros em forma de texto. Pode ser um texto separados por quebras de linhas ou um iterável de textos individuais.

  • modulo (ModuloT | None, default: None ) –

    Módulo ao qual o registro pertence.

Returns:

__getattr__ #

__getattr__(nome: str) -> Campo[CampoTipoT, Valor]

Retorna o campo com o nome especificado pelo atributo.

Equivalente a registros.campos["NOME_CAMPO"].

Parameters:

  • nome (str) –

    Nome de campo a ser retornado.

Raises:

Returns:

Examples:

>>> registro.NOME_CAMPO
Campo['C']('NOME_CAMPO': 'VALOR')

como #

como(registro: type[ComoRegistroT]) -> ComoRegistroT

Corrige a tipo do registro para o tipo especificado.

Returns:

  • ComoRegistroT –

    O próprio registro, mas com o tipo corrigido.

texto #

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.

valores #

valores(valores: dict[Chave, Valor] | None = None) -> dict[str, Valor]

Permite visualizar ou alterar os valores dos campos do registro.

Diferentes variações dessa função podem retornar especificamente os valores alfanumérico, numéricos ou numéricos, não nulos:

  • Registro.valores() -> dict[str, Valor]
  • Registro.valores_c() -> dict[str, ValorC]
  • Registro.valores_n() -> dict[str, ValorN]
  • Registro.valores_n0() -> dict[str, ValorN0]

Parameters:

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

    Dicionário de valores a serem alterados do registro.

Raises:

  • TypeError –

    Se os valores não são de um tipo válido.

Returns:

  • dict[str, Valor] –

    Valores dos campos do registro, após a alteração se essa tiver ocorrida.

Examples:

>>> registro.valores()
{'NOME': 'UM', 'VALOR': 1}
>>> registro.valores({NOME: 'DOIS', 2: 2})
{'NOME': 'DOIS', 'VALOR': 2}

valores_c #

valores_c(valores: dict[Chave, Valor] | None = None) -> dict[str, ValorC]

Consultar Registro.valores().

valores_n #

valores_n(valores: dict[Chave, Valor] | None = None) -> dict[str, ValorN]

Consultar Registro.valores().

valores_n0 #

valores_n0(valores: dict[Chave, Valor] | None = None) -> dict[str, ValorN0]

Consultar Registro.valores().

teste #

teste(
    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
) -> bool

Testa se o registro é válido, de acordo com os parâmetros informados.

Parameters:

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

    Nome do registro válido.

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

    Dicionários com chaves e um ou mais valores dos campos no registro válido.

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

    Dicionários com chaves e um ou mais valores alfanuméricos dos campos no registro válido.

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

    Dicionários com chaves e um ou mais valores numéricos dos campos no registro válido.

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

    Função que recebe um Registro e retorna True para o registro válido.

Returns:

  • bool –

    Se o registro passa o teste.

adicionar #

adicionar(
    registros: Registro | ListaRegistro[Registro] | Iterable[Registro],
) -> Self

Adiciona registros filhos em um registro.

Parameters:

Raises:

  • TypeError –

    Se um dos itens não for um registro.

  • ValueError –

    Se um dos registros filhos não for um filho válido do registro pai.

Returns:

  • Self –

    O próprio registro.

remover #

remover(
    registros: Registro | ListaRegistro[Registro] | Iterable[Registro],
    *,
    nome: Never = ...,
    filtro: Never = ...,
    campos: Never = ...,
    campos_c: Never = ...,
    campos_n: Never = ...
) -> Self
remover(
    registros: None = None,
    *,
    nome: str | None = ...,
    filtro: Callable[[Registro], bool] | None = ...,
    campos: dict[Chave, Valor | Iterable[Valor]] | None = ...,
    campos_c: dict[Chave, ValorC | Iterable[ValorC]] | None = ...,
    campos_n: dict[Chave, ValorN | Iterable[ValorN]] | None = ...
) -> Self
remover(
    registros: (
        Registro | ListaRegistro[Registro] | Iterable[Registro] | None
    ) = None,
    *,
    nome: str | None = None,
    filtro: Callable[[Registro], bool] | 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
) -> Self

Remove registros filhos de um registro, de acordo com os parâmetros informados.

Existe dois métodos de remover registros, do qual apenas um pode ser usado por vez:

  1. Passando o parâmetro registros como um registro, ou uma lista de registros;
  2. Informado qualquer combinação dos parâmetros restantes que serão os filtros para encontrar os registros a serem removidos.

Parameters:

  • registros (Registro | ListaRegistro[Registro] | Iterable[Registro] | None, default: None ) –

    Lista de registros a serem removidos. Se esse parâmetro for informado não é permitido informar nenhum outro parâmetro.

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

    Nome dos registros a serem removidos.

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

    Função que recebe um Registro e retorna True para os registros a serem removidos.

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

    Dicionários com chaves e um ou mais valores dos campos nos registros a serem removidos.

  • 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 a serem removidos.

  • 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 a serem removidos.

Raises:

  • TypeError –

    Se o parâmetros registros for usado, mas outro parâmetro estiver presente.

Returns:

  • Self –

    O próprio registro.

limpar #

limpar() -> Self

Limpa os filhos do registro.

Returns:

  • Self –

    Próprio registro.

RegistroEcd #

RegistroEcd(
    campos: str | dict[Chave, Valor] | None = None,
    *,
    pai: Registro | None = None,
    filhos: list[Registro] | ListaRegistro | Iterable[Registro] | None = None
)

Bases: Registro

Contém informações sobre um registro do módulo ECD e seus campos.

MODULO class-attribute instance-attribute #

MODULO = ECD

Nome do módulo ECD.

RegistroEcf #

RegistroEcf(
    campos: str | dict[Chave, Valor] | None = None,
    *,
    pai: Registro | None = None,
    filhos: list[Registro] | ListaRegistro | Iterable[Registro] | None = None
)

Bases: Registro

Contém informações sobre um registro do módulo ECF e seus campos.

MODULO class-attribute instance-attribute #

MODULO = ECF

Nome do módulo ECF.

RegistroEfdContribuicoes #

RegistroEfdContribuicoes(
    campos: str | dict[Chave, Valor] | None = None,
    *,
    pai: Registro | None = None,
    filhos: list[Registro] | ListaRegistro | Iterable[Registro] | None = None
)

Bases: Registro

Contém informações sobre um registro do módulo EFD_CONTRIBUICOES e seus campos.

MODULO class-attribute instance-attribute #

Nome do módulo EFD_CONTRIBUICOES.

RegistroEfdIcmsIpi #

RegistroEfdIcmsIpi(
    campos: str | dict[Chave, Valor] | None = None,
    *,
    pai: Registro | None = None,
    filhos: list[Registro] | ListaRegistro | Iterable[Registro] | None = None
)

Bases: Registro

Contém informações sobre um registro do módulo EFD_ICMS_IPI e seus campos.

MODULO class-attribute instance-attribute #

MODULO = EFD_ICMS_IPI

Nome do módulo EFD_ICMS_IPI.