# nfetoolkit
Ferramenta de linha de comando para organizar, corrigir, ler e exportar arquivos XML de Nota Fiscal Eletrônica (NF-e).
---
## 📦 Instalação de dependências
Certifique-se de ter o Python 3.9+ instalado.
Instale as dependências com:
```bash
pip install -r requirements.txt
```
---
## ▶️ Como usar
Execute a ferramenta com o comando:
```bash
python manage.py <comando> [opções]
```
---
## 🔁 Comandos disponíveis
### 🗂️ `organize`
Organiza os arquivos XML em subpastas por tipo: `nfe`, `canc`, `cce`, `inut`.
```bash
python manage.py organize <source_dir> <dest_dir> [--no-verbose]
```
**Exemplo:**
```bash
python manage.py organize C:\xmls_originais C:\xmls_organizados
```
---
### 📤 `export`
Exporta os dados estruturados dos XMLs encontrados para um arquivo `.txt`.
```bash
python manage.py export <xml_dir> [--output <arquivo_saida>] [--no-verbose]
```
**Exemplo:**
```bash
python manage.py export C:\xmls_organizados --output export.txt
```
Se não especificar `--output`, será gerado `./nfe_data.txt` no diretório atual.
---
### 🛠️ `fix`
Aplica correções definidas em um arquivo `config.json` a todos os XMLs de um diretório.
```bash
python manage.py fix <input_dir> <config.json> [--output_dir <destino>] [--no-verbose]
```
**Exemplo:**
```bash
python manage.py fix C:\xmls_organizados config.json --output_dir C:\xmls_corrigidos
```
Se `--output_dir` não for informado, os arquivos corrigidos serão salvos no mesmo diretório de origem.
---
### 📄 `read`
Gera o DANFE (arquivo PDF) de uma NF-e.
```bash
python manage.py read <xml_file> [--output <arquivo_pdf>]
```
**Exemplo:**
```bash
python manage.py read nfe.xml --output nota.pdf
```
---
## 🔧 Exemplo de `config.json` para o comando `fix`
```json
{
"rules": [
{
"namespace": {
"ns": "http://www.portalfiscal.inf.br/nfe"
},
"path": ".//ns:det",
"tag": ".//ns:imposto/ns:ICMS/ns:ICMS00/ns:orig",
"condition": {
".//ns:prod/ns:NCM": "85142011",
".//ns:imposto/ns:ICMS/ns:ICMS00/ns:orig": "0"
},
"new_value": "2"
}
]
}
```
---
## 📌 Observações
- O padrão é exibir barra de progresso (`verbose=True`). Use `--no-verbose` se quiser ocultar.
- A estrutura esperada dos XMLs segue o padrão da SEFAZ.
- Os dados exportados seguem o layout dos blocos SPED (`RegistroN100`, `N170`, `Z100`, etc.).
---
## 📁 Estrutura recomendada do projeto
```
nfetoolkit/
├── core/
│ ├── handler.py
│ ├── fix.py
│ ├── organizer.py
│ ├── repository.py
├── manage.py
├── config.json
├── requirements.txt
```
---
## 🔗 Licença
Este projeto é distribuído sob a licença MIT.
Raw data
{
"_id": null,
"home_page": "https://github.com/ismaelnjr/nfetoolkit-project.git",
"name": "nfetoolkit",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": null,
"author": "Ismael Nascimento",
"author_email": "ismaelnjr@icloud.com.br",
"download_url": "https://files.pythonhosted.org/packages/ea/57/9c92401abc178867eff3ab9b70dcd812247674a371df06b9a7b2d4b154fe/nfetoolkit-0.3.3.tar.gz",
"platform": null,
"description": "# nfetoolkit\r\n\r\nFerramenta de linha de comando para organizar, corrigir, ler e exportar arquivos XML de Nota Fiscal Eletr\u00f4nica (NF-e).\r\n\r\n---\r\n\r\n## \ud83d\udce6 Instala\u00e7\u00e3o de depend\u00eancias\r\n\r\nCertifique-se de ter o Python 3.9+ instalado.\r\n\r\nInstale as depend\u00eancias com:\r\n\r\n```bash\r\npip install -r requirements.txt\r\n```\r\n\r\n---\r\n\r\n## \u25b6\ufe0f Como usar\r\n\r\nExecute a ferramenta com o comando:\r\n\r\n```bash\r\npython manage.py <comando> [op\u00e7\u00f5es]\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udd01 Comandos dispon\u00edveis\r\n\r\n### \ud83d\uddc2\ufe0f `organize`\r\n\r\nOrganiza os arquivos XML em subpastas por tipo: `nfe`, `canc`, `cce`, `inut`.\r\n\r\n```bash\r\npython manage.py organize <source_dir> <dest_dir> [--no-verbose]\r\n```\r\n\r\n**Exemplo:**\r\n\r\n```bash\r\npython manage.py organize C:\\xmls_originais C:\\xmls_organizados\r\n```\r\n\r\n---\r\n\r\n### \ud83d\udce4 `export`\r\n\r\nExporta os dados estruturados dos XMLs encontrados para um arquivo `.txt`.\r\n\r\n```bash\r\npython manage.py export <xml_dir> [--output <arquivo_saida>] [--no-verbose]\r\n```\r\n\r\n**Exemplo:**\r\n\r\n```bash\r\npython manage.py export C:\\xmls_organizados --output export.txt\r\n```\r\n\r\nSe n\u00e3o especificar `--output`, ser\u00e1 gerado `./nfe_data.txt` no diret\u00f3rio atual.\r\n\r\n---\r\n\r\n### \ud83d\udee0\ufe0f `fix`\r\n\r\nAplica corre\u00e7\u00f5es definidas em um arquivo `config.json` a todos os XMLs de um diret\u00f3rio.\r\n\r\n```bash\r\npython manage.py fix <input_dir> <config.json> [--output_dir <destino>] [--no-verbose]\r\n```\r\n\r\n**Exemplo:**\r\n\r\n```bash\r\npython manage.py fix C:\\xmls_organizados config.json --output_dir C:\\xmls_corrigidos\r\n```\r\n\r\nSe `--output_dir` n\u00e3o for informado, os arquivos corrigidos ser\u00e3o salvos no mesmo diret\u00f3rio de origem.\r\n\r\n---\r\n\r\n### \ud83d\udcc4 `read`\r\n\r\nGera o DANFE (arquivo PDF) de uma NF-e.\r\n\r\n```bash\r\npython manage.py read <xml_file> [--output <arquivo_pdf>]\r\n```\r\n\r\n**Exemplo:**\r\n\r\n```bash\r\npython manage.py read nfe.xml --output nota.pdf\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udd27 Exemplo de `config.json` para o comando `fix`\r\n\r\n```json\r\n{\r\n \"rules\": [\r\n {\r\n \"namespace\": {\r\n \"ns\": \"http://www.portalfiscal.inf.br/nfe\"\r\n },\r\n \"path\": \".//ns:det\",\r\n \"tag\": \".//ns:imposto/ns:ICMS/ns:ICMS00/ns:orig\",\r\n \"condition\": {\r\n \".//ns:prod/ns:NCM\": \"85142011\",\r\n \".//ns:imposto/ns:ICMS/ns:ICMS00/ns:orig\": \"0\"\r\n },\r\n \"new_value\": \"2\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udccc Observa\u00e7\u00f5es\r\n\r\n- O padr\u00e3o \u00e9 exibir barra de progresso (`verbose=True`). Use `--no-verbose` se quiser ocultar.\r\n- A estrutura esperada dos XMLs segue o padr\u00e3o da SEFAZ.\r\n- Os dados exportados seguem o layout dos blocos SPED (`RegistroN100`, `N170`, `Z100`, etc.).\r\n\r\n---\r\n\r\n## \ud83d\udcc1 Estrutura recomendada do projeto\r\n\r\n```\r\nnfetoolkit/\r\n\u251c\u2500\u2500 core/\r\n\u2502 \u251c\u2500\u2500 handler.py\r\n\u2502 \u251c\u2500\u2500 fix.py\r\n\u2502 \u251c\u2500\u2500 organizer.py\r\n\u2502 \u251c\u2500\u2500 repository.py\r\n\u251c\u2500\u2500 manage.py\r\n\u251c\u2500\u2500 config.json\r\n\u251c\u2500\u2500 requirements.txt\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udd17 Licen\u00e7a\r\n\r\nEste projeto \u00e9 distribu\u00eddo sob a licen\u00e7a MIT.\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Toolkit para manipula\u00e7\u00e3o de notas fiscais eletr\u00f4nicas",
"version": "0.3.3",
"project_urls": {
"Homepage": "https://github.com/ismaelnjr/nfetoolkit-project.git"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0e1d1ce9038814c7f3bd8488f7268c749fe77e4a9ab367616036acfdf2652e61",
"md5": "771cfa9c5255caa6b05b12dcc355a311",
"sha256": "ddf48115a046e21a9864ffd501827b1c0e5a1453a5fad9b4442f2e393d96f2a6"
},
"downloads": -1,
"filename": "nfetoolkit-0.3.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "771cfa9c5255caa6b05b12dcc355a311",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 13253,
"upload_time": "2025-07-14T19:57:30",
"upload_time_iso_8601": "2025-07-14T19:57:30.223703Z",
"url": "https://files.pythonhosted.org/packages/0e/1d/1ce9038814c7f3bd8488f7268c749fe77e4a9ab367616036acfdf2652e61/nfetoolkit-0.3.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ea579c92401abc178867eff3ab9b70dcd812247674a371df06b9a7b2d4b154fe",
"md5": "ef85bb818e2f3b30a0c26cad7c1f842e",
"sha256": "5f4b24fb75b04abfe1059f066509fb399d243e20d50bc4d75926d6a58368870e"
},
"downloads": -1,
"filename": "nfetoolkit-0.3.3.tar.gz",
"has_sig": false,
"md5_digest": "ef85bb818e2f3b30a0c26cad7c1f842e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 14251,
"upload_time": "2025-07-14T19:57:31",
"upload_time_iso_8601": "2025-07-14T19:57:31.103092Z",
"url": "https://files.pythonhosted.org/packages/ea/57/9c92401abc178867eff3ab9b70dcd812247674a371df06b9a7b2d4b154fe/nfetoolkit-0.3.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-14 19:57:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ismaelnjr",
"github_project": "nfetoolkit-project",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "nfelib",
"specs": []
},
{
"name": "spedpy",
"specs": []
},
{
"name": "tqdm",
"specs": []
},
{
"name": "xsdata",
"specs": []
},
{
"name": "lxml",
"specs": []
}
],
"lcname": "nfetoolkit"
}