|
| 1 | +# Pydf |
| 2 | + |
| 3 | +[Documentação PT-BR](docs/README.pt-BR.md) | [English docs](docs/README.en.md) |
| 4 | + |
| 5 | +A `pydf` é uma biblioteca Python leve para leitura de PDFs de faturas, extração de metadados com regex, exportação para Excel e persistência opcional em MySQL. |
| 6 | + |
| 7 | +Esta versão reorganiza o projeto original como biblioteca e CLI, sem fugir da ideia central do script: **PDF -> extração -> Excel -> MySQL opcional**. |
| 8 | + |
| 9 | +## Visão rápida |
| 10 | + |
| 11 | +- Biblioteca Python reutilizável |
| 12 | +- CLI simples para uso no terminal |
| 13 | +- Regex configurável para número e data da fatura |
| 14 | +- Exportação para `.xlsx` |
| 15 | +- Persistência opcional em MySQL |
| 16 | +- Documentação em PT-BR e inglês |
| 17 | +- Workflows de CI e release para GitHub Actions |
| 18 | + |
| 19 | +## Requisitos |
| 20 | + |
| 21 | +- Python **3.10 ou superior** |
| 22 | +- `pip` |
| 23 | +- Recomendado: ambiente virtual (`venv`) |
| 24 | + |
| 25 | +## Instalação local |
| 26 | + |
| 27 | +Na raiz do projeto: |
| 28 | + |
| 29 | +```bash |
| 30 | +pip install -e . |
| 31 | +``` |
| 32 | + |
| 33 | +Instalação com dependências de desenvolvimento: |
| 34 | + |
| 35 | +```bash |
| 36 | +pip install -e .[dev] |
| 37 | +``` |
| 38 | + |
| 39 | +## Instalação da CLI via GitHub |
| 40 | + |
| 41 | +Como o GitHub não oferece um registry Python suportado para `pip` no GitHub Packages, a forma recomendada para instalar a CLI a partir do GitHub é usar o próprio repositório Git. |
| 42 | + |
| 43 | +### Instalar da branch padrão |
| 44 | + |
| 45 | +```bash |
| 46 | +pip install "git+https://github.com/DanielArndt0/pydf.git" |
| 47 | +``` |
| 48 | + |
| 49 | +### Instalar de uma tag ou release específica |
| 50 | + |
| 51 | +```bash |
| 52 | +pip install "git+https://github.com/DanielArndt0/pydf.git@v1.0.0" |
| 53 | +``` |
| 54 | + |
| 55 | +Depois disso, a CLI fica disponível como: |
| 56 | + |
| 57 | +```bash |
| 58 | +pydf --help |
| 59 | +``` |
| 60 | + |
| 61 | +## Primeiros passos com venv no Windows |
| 62 | + |
| 63 | +Se você tiver mais de uma versão do Python instalada, confira as versões disponíveis: |
| 64 | + |
| 65 | +```powershell |
| 66 | +py -0p |
| 67 | +``` |
| 68 | + |
| 69 | +Crie e ative um ambiente virtual com Python 3.10: |
| 70 | + |
| 71 | +```powershell |
| 72 | +py -3.10 -m venv .venv |
| 73 | +.venv\Scripts\Activate.ps1 |
| 74 | +python -m pip install --upgrade pip |
| 75 | +python -m pip install -e .[dev] |
| 76 | +``` |
| 77 | + |
| 78 | +## Como executar a CLI |
| 79 | + |
| 80 | +```bash |
| 81 | +pydf --help |
| 82 | +pydf examples/pdf_invoices --output output/invoices.xlsx |
| 83 | +``` |
| 84 | + |
| 85 | +## Como usar como biblioteca |
| 86 | + |
| 87 | +```python |
| 88 | +from pydf import InvoiceProcessor, ProcessorConfig |
| 89 | + |
| 90 | +config = ProcessorConfig( |
| 91 | + input_dir="examples/pdf_invoices", |
| 92 | + output_excel="output/invoices.xlsx", |
| 93 | +) |
| 94 | + |
| 95 | +result = InvoiceProcessor(config).process() |
| 96 | + |
| 97 | +print(result.output_excel) |
| 98 | +for record in result.records: |
| 99 | + print(record.file_name, record.invoice_number, record.invoice_date, record.status) |
| 100 | +``` |
| 101 | + |
| 102 | +## Rodando testes |
| 103 | + |
| 104 | +```bash |
| 105 | +pytest -v |
| 106 | +``` |
| 107 | + |
| 108 | +Se o ambiente ainda não estiver preparado: |
| 109 | + |
| 110 | +```bash |
| 111 | +pip install -e .[dev] |
| 112 | +pytest -v |
| 113 | +``` |
| 114 | + |
| 115 | +## Build local |
| 116 | + |
| 117 | +```bash |
| 118 | +python -m build |
| 119 | +``` |
| 120 | + |
| 121 | +## CI e releases no GitHub |
| 122 | + |
| 123 | +Este repositório inclui dois workflows: |
| 124 | + |
| 125 | +- `ci.yml`: roda testes e build em todo push e pull request |
| 126 | +- `release.yml`: gera os artefatos e anexa `dist/*` a uma release publicada manualmente |
| 127 | + |
| 128 | +Documentação detalhada: |
| 129 | + |
| 130 | +- [Guia principal da documentação](docs/README.pt-BR.md) |
| 131 | +- [Guia da CLI](docs/CLI.pt-BR.md) |
| 132 | +- [Guia da API](docs/API.pt-BR.md) |
| 133 | +- [Arquitetura](docs/ARCHITECTURE.pt-BR.md) |
| 134 | +- [CI/CD e Releases](docs/CI-CD.pt-BR.md) |
| 135 | +- [Ambiente Python, venv e troubleshooting](docs/ENVIRONMENT.pt-BR.md) |
| 136 | +- [Exemplos](examples/README.md) |
| 137 | + |
0 commit comments