nfetoolkit


Namenfetoolkit JSON
Version 0.3.3 PyPI version JSON
download
home_pagehttps://github.com/ismaelnjr/nfetoolkit-project.git
SummaryToolkit para manipulação de notas fiscais eletrônicas
upload_time2025-07-14 19:57:31
maintainerNone
docs_urlNone
authorIsmael Nascimento
requires_python>=3.9
licenseMIT
keywords
VCS
bugtrack_url
requirements nfelib spedpy tqdm xsdata lxml
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.45583s