Skip to main content

Ferramentas para extração e processamento de dados judiciais, com foco no STF

Project description

DSD

PyPI version Python Versions License: MIT

DSD é uma biblioteca Python para extração e processamento de dados judiciais, com foco no portal do Supremo Tribunal Federal (STF) do Brasil.

🚀 Funcionalidades

  • Web Scraping do portal STF
  • Extração de processos judiciais
  • Processamento de andamentos processuais
  • Extração de partes envolvidas
  • Limpeza e normalização de dados
  • Exportação para CSV
  • Type hints completos (Python 3.7+)
  • Documentação inline (docstrings)

📦 Instalação

Via pip (recomendado)

pip install dsd-br

Via repositório Git

git clone https://github.com/AlexandreAraujoCosta/DSD.git
cd dsd
pip install -e .

Instalação para desenvolvimento

pip install -e ".[dev]"

🎯 Uso Rápido

Exemplo Básico

import dsd

# Fazer requisição ao STF
html = dsd.get("https://portal.stf.jus.br/processos/...")

# Extrair informações
partes = dsd.extrair_partes(html)
andamentos = dsd.extrair_andamentos(html)

# Processar dados
dados_limpos = dsd.limpar(dados)

# Salvar em CSV
dsd.write_csv_header("processos.csv", "processo;parte;data")
dsd.write_csv_row("processos.csv", [processo, parte, data])

Trabalhando com Datas

from dsd import date, ajustar_mes

# Converter formato de data
data_br = "31/12/2023"
data_iso = date(data_br)  # "2023-12-31"

# Converter mês abreviado
mes_numero = ajustar_mes("DEZ")  # "12"

Trabalhando com Estados

from dsd import limpa_estado, estado_nome_completo, siglas

# Converter estado para sigla
sigla = limpa_estado("SAO PAULO")  # "/SP"

# Converter sigla para nome completo
nome = estado_nome_completo("/SP")  # "SAO PAULO"

# Obter lista de siglas
lista_siglas = siglas()  # ['AC', 'AL', 'AP', ...]

Extração de Texto

from dsd import extract, clean

# Extrair texto entre delimitadores
texto_html = "<div>Conteúdo importante</div>"
conteudo = extract(texto_html, "<div>", "</div>")  # "Conteúdo importante"

# Limpar texto
texto_sujo = "  Texto   com\nespaços  "
texto_limpo = clean(texto_sujo)  # "Texto com espaços"

Trabalhando com Arquivos

from dsd import carregar_arquivo, gravar, csv_to_list

# Carregar arquivo
conteudo = carregar_arquivo("processo.html")

# Gravar dados
gravar("resultado.txt", "Dados processados")

# Converter CSV para lista
dados = csv_to_list("dados.csv")

📚 Documentação Completa

Funções de Requisição HTTP

  • get(url: str) -> str: Faz requisição GET e retorna HTML
  • get_json(url: str) -> dict: Faz requisição GET e retorna JSON
  • get_response(url: str) -> Response: Retorna objeto Response completo

Funções de Extração

  • extract(source: str, start_at: str, end_at: str) -> str: Extrai texto entre delimitadores
  • extrair_partes(string: str) -> str: Extrai partes processuais do HTML
  • extrair_andamentos(string: str) -> list: Extrai andamentos processuais

Funções de Limpeza

  • clean(source: str) -> str: Remove espaços e caracteres especiais
  • limpar(fonte: str) -> str: Limpeza completa de texto
  • limpar_para_csv(fonte: str) -> str: Prepara texto para CSV

Funções de Arquivo e CSV

  • carregar_arquivo(nomedoarquivo: str) -> str: Carrega arquivo
  • gravar(nomedoarquivo: str, dados: str) -> None: Grava dados
  • csv_to_list(file: str) -> list: Converte CSV para lista
  • write_csv_header(nomedoarquivo: str, string_campos: str) -> None: Escreve cabeçalho CSV
  • write_csv_row(nomedoarquivo: str, dados: str) -> None: Escreve linha CSV

🛠️ Requisitos

  • Python >= 3.7
  • requests >= 2.31.0
  • selenium >= 4.0.0

🤝 Contribuindo

Contribuições são bem-vindas! Para contribuir:

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/MinhaFeature)
  3. Commit suas mudanças (git commit -m 'Adiciona MinhaFeature')
  4. Push para a branch (git push origin feature/MinhaFeature)
  5. Abra um Pull Request

Desenvolvimento

# Clone o repositório
git clone https://github.com/AlexandreAraujoCosta/DSD.git
cd dsd

# Instale em modo desenvolvimento
pip install -e ".[dev]"

# Execute os testes
pytest

# Formate o código
black dsd/

# Verifique tipos
mypy dsd/

📝 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

👥 Autores

Alexandre Araújo Costa

Henrique Araújo Costa

  • Coautor

🙏 Agradecimentos

  • Comunidade Python Brasil
  • Supremo Tribunal Federal por disponibilizar os dados publicamente

📊 Status do Projeto

🚧 Em desenvolvimento ativo - Versão 0.1.0

🔗 Links Úteis

📈 Changelog

[0.1.0] - 2024-01-XX

Adicionado

  • Estrutura inicial do pacote
  • Funções de web scraping do STF
  • Funções de processamento de dados
  • Suporte a CSV
  • Type hints completos
  • Documentação inline

⭐ Se este projeto foi útil para você, considere dar uma estrela no GitHub!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsd_br-0.1.5.tar.gz (28.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsd_br-0.1.5-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

Details for the file dsd_br-0.1.5.tar.gz.

File metadata

  • Download URL: dsd_br-0.1.5.tar.gz
  • Upload date:
  • Size: 28.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for dsd_br-0.1.5.tar.gz
Algorithm Hash digest
SHA256 74f678274c3bffc63290aac833948ed266cac6855135256bc8c2acbaff09a82d
MD5 dee22425d2c38286115fa6b927bc7536
BLAKE2b-256 ed3c44ee62bccf98b4a8f886293954ae671941c4306b598f0c6ee9928014ace4

See more details on using hashes here.

File details

Details for the file dsd_br-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: dsd_br-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 24.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for dsd_br-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 efd1579cb824f84f0d49bc4a6adfe010768b97e538297a42d69d8ff0a7d63f3d
MD5 ce8184f442c39d9d671d2e0f93903be0
BLAKE2b-256 3debb940f1cce37533df6e31f0956c86aa29cb557dee7c1373557033557f1f65

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page