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
modulofor inválido. -
TypeError–Se o parâmetro
camposfor do tipo inválido. -
TypeError–Se o parâmetro
paifor do tipo inválido. -
TypeError–Se o parâmetro
filhosfor 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|')]
-
Classes
Componente
Componenteregistros -
Classes
Componente
Componente__iter__ -
Classes
Componente
Componentebuscar -
Classes
Componente
Componenteprimeiro -
Estruturas de Dados
ListaRegistro
ListaRegistrobuscar -
Estruturas de Dados
ListaRegistro
ListaRegistroprimeiro -
Realizando Buscas
buscar
-
Classes
Registro
RegistroEcd -
Classes
Registro
RegistroEcf -
Classes
Registro
RegistroEfdContribuicoes -
Classes
Registro
RegistroEfdIcmsIpi
-
Classes
Bloco
Bloco -
Classes
Componente
Componentebuscar -
Classes
Componente
Componenteprimeiro -
Estruturas de Dados
ListaRegistro
ListaRegistrobuscar -
Estruturas de Dados
ListaRegistro
ListaRegistroprimeiro -
Classes
Registro
Registro -
Classes
Registro
Registroadicionar -
Classes
Registro
Registroremover -
Classes
Registro
Registroteste -
Classes
Registro
RegistroEcd -
Classes
Registro
RegistroEcf -
Classes
Registro
RegistroEfdContribuicoes -
Classes
Registro
RegistroEfdIcmsIpi -
Realizando Buscas
buscar
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
#
Calcula o número de ordem de um registro.
Usado para realizar comparações de ordem entre registros.
Parameters:
Returns:
-
int–Valor numérico da ordem do registro.
Examples:
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:
-
ListaRegistro–Lista dos registros convertidos.
__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:
-
AttributeError–Se o campo com esse nome não existir.
Returns:
-
Campo(Campo[CampoTipoT, Valor]) –O campo a ser retornado.
Examples:
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
#
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:
Examples:
valores_c
#
Consultar Registro.valores().
valores_n
#
Consultar Registro.valores().
valores_n0
#
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
Registroe retornaTruepara o registro válido.
Returns:
-
bool–Se o registro passa o teste.
adicionar
#
Adiciona registros filhos em um registro.
Parameters:
-
registros(Registro | ListaRegistro[Registro] | Iterable[Registro]) –Lista de registros filhos a serem adicionados ao registro pai.
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:
- Passando o parâmetro
registroscomo um registro, ou uma lista de registros; - 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
Registroe retornaTruepara 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
registrosfor usado, mas outro parâmetro estiver presente.
Returns:
-
Self–O próprio registro.
RegistroEcd
#
RegistroEcf
#
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
#
MODULO = EFD_CONTRIBUICOES
Nome do módulo EFD_CONTRIBUICOES.