Metadata-Version: 2.4
Name: pydatajud
Version: 0.1.0
Summary: Cliente Python para API pública do DataJud
Author-email: Filipe Araujo <filipeee0@gmail.com>
License-Expression: Unlicense
Project-URL: Homepage, https://github.com/Filipe-Araujo0/pydatajud
Project-URL: Repository, https://github.com/Filipe-Araujo0/pydatajud
Project-URL: Issues, https://github.com/Filipe-Araujo0/pydatajud/issues
Project-URL: Documentation, https://github.com/Filipe-Araujo0/pydatajud#readme
Keywords: datajud,cnj,judiciario,processos,brasil
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Legal Industry
Classifier: Natural Language :: Portuguese (Brazilian)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.31.0
Provides-Extra: dev
Requires-Dist: build>=1.2.0; extra == "dev"
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: requests-mock>=1.12.0; extra == "dev"
Requires-Dist: twine>=5.0.0; extra == "dev"
Requires-Dist: types-requests>=2.31.0; extra == "dev"
Requires-Dist: mypy>=1.10.0; extra == "dev"
Requires-Dist: ruff>=0.5.0; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=8.0.0; extra == "test"
Requires-Dist: requests-mock>=1.12.0; extra == "test"
Provides-Extra: lint
Requires-Dist: ruff>=0.5.0; extra == "lint"
Requires-Dist: mypy>=1.10.0; extra == "lint"
Requires-Dist: types-requests>=2.31.0; extra == "lint"
Dynamic: license-file

# pydatajud

Cliente Python para consultar a API pública do DataJud/CNJ por número CNJ e
extrair movimentações processuais em formato estruturado.

O projeto não é afiliado ao CNJ. Ele apenas empacota um fluxo comum de consulta
à API pública oficial.

## Instalação

```bash
pip install pydatajud
```

Para desenvolvimento local:

```bash
pip install -e ".[dev]"
```

## Uso rápido

```python
from pydatajud import DataJudClient

client = DataJudClient(api_key="sua-api-key")
result = client.search_by_process_number("0000832-35.2018.4.01.3202")

print(result.endpoint)
print(result.movimentos)
```

## CLI

```bash
export DATAJUD_API_KEY="sua-api-key"
pydatajud --processo "0000832-35.2018.4.01.3202"
```

Também é possível passar a chave diretamente:

```bash
pydatajud --api-key "sua-api-key" --processo "0000832-35.2018.4.01.3202"
```

Para imprimir apenas a lista de movimentações:

```bash
pydatajud --processo "0000832-35.2018.4.01.3202" --movimentos-only
```

## O que a biblioteca faz

- Valida e normaliza números processuais CNJ.
- Resolve automaticamente o endpoint DataJud a partir dos campos `J` e `TR`.
- Consulta o endpoint público correspondente.
- Retorna os `hits` brutos e a lista agregada de `movimentos`.
- Expõe erros próprios para autenticação, resposta inválida, processo não
  encontrado e tribunal sem endpoint mapeado.

## Limitações

- A API pública do DataJud exige chave `APIKey`.
- Processos sigilosos ou indisponíveis na base pública podem não retornar dados.
- A cobertura, disponibilidade e regras de uso são definidas pelo CNJ.
- O usuário é responsável por cumprir os termos de uso do CNJ e a legislação
  aplicável, incluindo LGPD.

## Desenvolvimento

```bash
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
ruff check .
ruff format --check .
mypy src tests
pytest
python -m build
twine check dist/*
```

## Links úteis

- API pública do DataJud: https://www.cnj.jus.br/sistemas/datajud/api-publica/
- Wiki DataJud: https://datajud-wiki.cnj.jus.br/api-publica/
- Termos de uso: https://formularios.cnj.jus.br/wp-content/uploads/2023/11/Termos-de-uso-api-publica-V1.2.pdf
