Metadata-Version: 2.4
Name: escriturador-sped
Version: 1.4.2
Summary: Biblioteca Python para auxiliar a criação e edição de arquivos de escrituração do SPED brasileiro
Author-email: Davi Augusto Moreira da Silva <daviamsilva@hotmail.com>
Maintainer-email: Davi Augusto Moreira da Silva <daviamsilva@hotmail.com>
License-Expression: MIT
Project-URL: Homepage, https://escriturador-sped.daviamsilva.dev
Project-URL: Repository, https://github.com/DaviAMSilva/escriturador-sped
Project-URL: Issues, https://github.com/DaviAMSilva/escriturador-sped/issues
Project-URL: Changelog, https://github.com/DaviAMSilva/escriturador-sped/releases
Keywords: python,sped,escrituração,efd-icms-ipi,efd-contribuições,sped-fiscal,sped-contribuições,receita-federal,contabilidade,brasil
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Text Processing :: General
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: invoke; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: autopep8; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-profiling; extra == "dev"
Requires-Dist: snakeviz; extra == "dev"
Provides-Extra: docs
Requires-Dist: click==8.2.1; extra == "docs"
Requires-Dist: mkdocs; extra == "docs"
Requires-Dist: mkdocs-git-revision-date-localized-plugin; extra == "docs"
Requires-Dist: mkdocs-material; extra == "docs"
Requires-Dist: mkdocs-material[imaging]; extra == "docs"
Requires-Dist: mkdocstrings[python]; extra == "docs"
Requires-Dist: griffe-inherited-docstrings; extra == "docs"
Requires-Dist: pngquant-cli; extra == "docs"
Requires-Dist: black; extra == "docs"
Dynamic: license-file

<!-- markdownlint-disable first-line-h1 no-inline-html -->

[![PyPI](https://img.shields.io/pypi/v/escriturador-sped?logo=pypi&logoColor=white)](https://pypi.org/project/escriturador-sped/)
[![Python](https://img.shields.io/pypi/pyversions/escriturador-sped?logo=python&logoColor=white)](https://pypi.org/project/escriturador-sped/)
[![Licença](https://img.shields.io/github/license/DaviAMSilva/escriturador-sped)](https://github.com/DaviAMSilva/escriturador-sped/blob/main/LICENSE)

[![pytest](https://img.shields.io/github/actions/workflow/status/DaviAMSilva/escriturador-sped/pytest.yml?branch=main&logo=pytest&logoColor=white&label=pytest)](https://github.com/DaviAMSilva/escriturador-sped/actions/workflows/pytest.yml)
[![pylint](https://img.shields.io/github/actions/workflow/status/DaviAMSilva/escriturador-sped/pylint.yml?branch=main&logo=python&logoColor=white&label=pylint)](https://github.com/DaviAMSilva/escriturador-sped/actions/workflows/pylint.yml)
[![markdownlint](https://img.shields.io/github/actions/workflow/status/DaviAMSilva/escriturador-sped/markdownlint.yml?branch=main&logo=markdown&logoColor=white&label=markdownlint)](https://github.com/DaviAMSilva/escriturador-sped/actions/workflows/markdownlint.yml)

# Escriturador SPED

<img align="left" hspace="20" src="docs/imagens/logo-transparente.webp" alt="Logo do Escriturador SPED" width="300" />

A biblioteca **Escriturador SPED** tem como objetivo fornecer uma API de acesso, criação e manipulação de arquivos de escrituração pertencentes ao projeto [SPED](https://www.gov.br/sped/pt-br) do governo brasileiro. A biblioteca escrita em [Python](https://www.python.org/) é destinada a programadores, ou usuários avançados, que trabalham com módulos do projeto SPED que envolvam a criação ou edição de escriturações.

Especificamente esse projeto permite que o desenvolvedor abra, busque, altere e salve a estrutura de uma escrituração. Essa biblioteca não realiza a validação individual ou total dos valores dos campos, apenas a formatação desses campos é garantida. A única maneira oficial de validar uma escrituração é usando os [programas disponibilizados](https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/download/sped) pelo governo.

<div align="center">
<strong >Para mais informações consulte a <a href="https://escriturador-sped.daviamsilva.dev" target="_blank" rel="noopener noreferrer">documentação</a>.</strong>
</div>

<br clear="left" />

## Início Rápido

Instale a biblioteca com:

```bash
pip install escriturador-sped
```

Exemplo básico de uso:

```python
from escriturador_sped import EscrituracaoEfdIcmsIpi, RegistroEfdIcmsIpi

# Abrindo o arquivo de escrituração
escrituracao = EscrituracaoEfdIcmsIpi.abrir("original.txt")

# Adicionando um novo produto na escrituração (registro 0200 do bloco 0)
escrituracao["0"].abertura.adicionar(
    RegistroEfdIcmsIpi("|0200|100|PRODUTO|||UN|00|00000000||||||")
)

# Encontrando a nota de entrada com número 123
nota_123 = escrituracao.primeiro("C100", { "IND_OPER": "0", "NUM_DOC": 123 })

# Alterando a data de entrada da nota
nota_123.DT_E_S.valor = "07091822"

# Mostrando todos os registros associados a essa nota
print(nota_123.texto())

# Totalizando os registros do bloco 9
# Necessário apenas quando há adição ou remoção de registros
escrituracao.totalizar(ordenar_9900=True)

# Salvando a escrituração alterada para outro arquivo
escrituracao.salvar("alterada.txt")
```

## Módulos Suportados

<table>
    <thead>
        <tr>
            <th>Nome</th>
            <th>Identificador Interno</th>
            <th>Versão do Leiaute</th>
            <th>Versão do Manual</th>
            <th>Caminho de Importação</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><a href="https://www.gov.br/sped/pt-br/assuntos/escrituracoes-digitais/ecd">ECD</a></td>
            <td>ecd</td>
            <td>009</td>
            <td><a href="https://www.gov.br/sped/pt-br/assuntos/escrituracoes-digitais/ecd/manuais-e-documentos-tecnicos/manual_de_orientacao_da_ecd_leiaute_9_janeiro_2026.pdf/@@display-file/file">2026.01</a><br />(Cofis nº 01/2026)</td>
            <td><code>ecd.l009.v2026_01</code></td>
        </tr>
        <tr>
            <td><a href="https://www.gov.br/sped/pt-br/assuntos/escrituracoes-digitais/ecf">ECF</a></td>
            <td>ecf</td>
            <td>012</td>
            <td><a href="https://www.gov.br/sped/pt-br/assuntos/escrituracoes-digitais/ecf/manuais-e-documentos-tecnicos/manual_ecf_leiaute_12_20_05_2026_ac_2025_sit_esp_2026.pdf/@@display-file/file">2026.02</a><br />(Cofis nº 02/2026)</td>
            <td><code>ecf.l012.v2026_02</code></td>
        </tr>
        <tr>
            <td><a href="https://www.gov.br/sped/pt-br/assuntos/escrituracoes-digitais/efd-contribuicoes">EFD&nbsp;Contribuições</a></td>
            <td>efd_contribuicoes</td>
            <td>006</td>
            <td><a href="https://www.gov.br/sped/pt-br/assuntos/escrituracoes-digitais/efd-contribuicoes/manuais/guia_pratico_efd_contribuicoes_versao_1_35-18_06_2021.pdf/@@display-file/file">1.35</a></td>
            <td><code>efd_contribuicoes.l006.v1_35</code></td>
        </tr>
        <tr>
            <td rowspan="3"><a href="https://www.gov.br/sped/pt-br/assuntos/escrituracoes-digitais/efd-icms-ipi">EFD ICMS IPI</a></td>
            <td rowspan="3">efd_icms_ipi</td>
            <td rowspan="2">020</td>
            <td><a href="https://www.gov.br/sped/pt-br/assuntos/escrituracoes-digitais/efd-icms-ipi/manuais-e-documentos-tecnicos/guia-pratico-efd-versao-3-2-3.pdf/@@display-file/file">3.2.3</a></td>
            <td><code>efd_icms_ipi.l020.v3_2_3</code></td>
        </tr>
        <tr>
            <td rowspan="2"><a href="https://www.gov.br/sped/pt-br/assuntos/escrituracoes-digitais/efd-icms-ipi/manuais-e-documentos-tecnicos/guia-pratico-efd-versao-3-2-4.pdf/@@display-file/file">3.2.4</a></td>
            <td><code>efd_icms_ipi.l020.v3_2_4</code></td>
        </tr>
        <tr>
            <td>021</td>
            <td><code>efd_icms_ipi.l021.v3_2_4</code></td>
        </tr>
    </tbody>
</table>

> [!WARNING]
> Todos os módulos acima são funcionais, entretanto apenas os módulos `efd_contribuicoes` e `efd_icms_ipi` foram testados extensivamente.  

## Suporte e Manutenção

Com a implementação da [reforma tributária](https://www.gov.br/receitafederal/pt-br/assuntos/reforma-tributaria) a expectativa é que a EFD Contribuições se torne extinta a partir de [2027](https://www.contabeis.com.br/noticias/75062/extincao-da-efd-contribuicoes-em-2027-entenda-as-regras/), enquanto o EFD ICMS IPI tem previsão de ser substituído em [2029](https://www.contabeis.com.br/artigos/70885/reforma-tributaria-fim-do-sped-e-inicio-de-nova-era-na-contabilidade/).

Por causa disso, em conjunto com o fato de que essa biblioteca está atualmente em uso no [Kepi Supermercado](https://br.linkedin.com/company/kepisupermercado) aonde trabalho, eu me comprometo a manter essa biblioteca estável e atualizada com os manuais mais recentes do SPED até a extinção do EFD ICMS IPI em 31/12/2028.

Problemas encontrados em algum dos módulos ou na biblioteca em geral podem ser reportados na página de [issues](https://github.com/DaviAMSilva/escriturador-sped/issues).
