Um wrapper em Python (ctypes) para as bibliotecas C/C++ do Projeto ACBr (ACBrLib). Este projeto fornece a camada base para interagir nativamente com a ACBrLibNFe sem depender de wrappers desatualizados ou integrações lentas via arquivos de texto em disco.
src/acbr_wrapper.py: Camada de abstração e mapeamento de tipos usandoctypes.src/nfce_service.py: Exemplo prático de serviço de alto nível para emissão de NFC-e.lib/: Coloque aqui os arquivos.soou.dllbaixados do Projeto ACBr.tests/: Suíte de testes (com mock da biblioteca C) garantindo a lógica do wrapper.
-
Baixe a ACBrLibNFe Acesse a sessão de downloads do Projeto ACBr e baixe a versão compatível com seu sistema (64-bits
Cdeclé recomendada para Python). Coloque o binário (libacbrnfe64.soouACBrLibNFe64.dll) na pastalib/. -
Requisitos de Sistema (Linux) O ACBr necessita de algumas bibliotecas base do sistema operacional:
sudo apt install libxml2 libssl-dev
-
Ambiente Python
python -m venv venv source venv/bin/activate pip install -r requirements.txt -
Exemplo de Uso
from src.nfce_service import NFCeService service = NFCeService( lib_path="lib/libacbrnfe64.so", certificado_path="caminho/seu_certificado.pfx", certificado_senha="sua_senha" ) # O arquivo INI deve conter a estrutura da nota conforme padrao do ACBrMonitor/ACBrLib resposta = service.emitir_nfce("nota_fiscal.ini", lote=1) print(resposta)
O projeto utiliza pytest e pytest-mock para validar o comportamento sem necessidade do binário C ou do Certificado Digital.
PYTHONPATH=. pytest tests/Este projeto é open-source. As bibliotecas subjacentes utilizadas (ACBrLib) pertencem ao Projeto ACBr que é regido por licenças de código aberto próprias (LGPL/GPL).