dsd-br 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dsd_br-0.1.0/LICENSE +21 -0
- dsd_br-0.1.0/MANIFEST.in +21 -0
- dsd_br-0.1.0/PKG-INFO +264 -0
- dsd_br-0.1.0/README.md +226 -0
- dsd_br-0.1.0/dsd/__init__.py +92 -0
- dsd_br-0.1.0/dsd/dsd.py +2633 -0
- dsd_br-0.1.0/dsd_br.egg-info/PKG-INFO +264 -0
- dsd_br-0.1.0/dsd_br.egg-info/SOURCES.txt +13 -0
- dsd_br-0.1.0/dsd_br.egg-info/dependency_links.txt +1 -0
- dsd_br-0.1.0/dsd_br.egg-info/requires.txt +8 -0
- dsd_br-0.1.0/dsd_br.egg-info/top_level.txt +1 -0
- dsd_br-0.1.0/pyproject.toml +57 -0
- dsd_br-0.1.0/requirements.txt +3 -0
- dsd_br-0.1.0/setup.cfg +4 -0
- dsd_br-0.1.0/setup.py +78 -0
dsd_br-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Alexandre Araújo Costa, Henrique Araújo Costa
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above consent notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
dsd_br-0.1.0/MANIFEST.in
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Include important files in source distribution
|
|
2
|
+
include README.md
|
|
3
|
+
include LICENSE
|
|
4
|
+
include requirements.txt
|
|
5
|
+
include pyproject.toml
|
|
6
|
+
|
|
7
|
+
# Exclude unnecessary files
|
|
8
|
+
global-exclude __pycache__
|
|
9
|
+
global-exclude *.py[co]
|
|
10
|
+
global-exclude .DS_Store
|
|
11
|
+
global-exclude *.so
|
|
12
|
+
global-exclude *.dylib
|
|
13
|
+
|
|
14
|
+
# Exclude development files
|
|
15
|
+
exclude .gitignore
|
|
16
|
+
exclude *.yml
|
|
17
|
+
exclude *.yaml
|
|
18
|
+
exclude .github/*
|
|
19
|
+
|
|
20
|
+
# Exclude test files from distribution
|
|
21
|
+
prune tests
|
dsd_br-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dsd-br
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Ferramentas para extração e processamento de dados do STF
|
|
5
|
+
Home-page: https://github.com/AlexandreAraujoCosta/DSD
|
|
6
|
+
Author: Henrique Araújo Costa
|
|
7
|
+
Author-email: Alexandre Araújo Costa <alexandre.araujo.costa@gmail.com>
|
|
8
|
+
Maintainer: Alexandre Araújo Costa, Henrique Araújo Costa
|
|
9
|
+
License: MIT
|
|
10
|
+
Project-URL: Homepage, https://github.com/AlexandreAraujoCosta/DSD
|
|
11
|
+
Project-URL: Bug Reports, https://github.com/AlexandreAraujoCosta/DSD/issues
|
|
12
|
+
Project-URL: Source, https://github.com/AlexandreAraujoCosta/DSD
|
|
13
|
+
Keywords: stf,scraping,web scraping,supremo tribunal federal,brasil
|
|
14
|
+
Classifier: Development Status :: 3 - Alpha
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Requires-Python: >=3.7
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: requests>=2.31.0
|
|
28
|
+
Requires-Dist: selenium>=4.0.0
|
|
29
|
+
Provides-Extra: dev
|
|
30
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
31
|
+
Requires-Dist: black>=22.0; extra == "dev"
|
|
32
|
+
Requires-Dist: flake8>=5.0; extra == "dev"
|
|
33
|
+
Requires-Dist: mypy>=0.990; extra == "dev"
|
|
34
|
+
Dynamic: home-page
|
|
35
|
+
Dynamic: license-file
|
|
36
|
+
Dynamic: maintainer
|
|
37
|
+
Dynamic: requires-python
|
|
38
|
+
|
|
39
|
+
# DSD
|
|
40
|
+
|
|
41
|
+
[](https://badge.fury.io/py/dsd)
|
|
42
|
+
[](https://pypi.org/project/dsd/)
|
|
43
|
+
[](https://opensource.org/licenses/MIT)
|
|
44
|
+
|
|
45
|
+
**DSD** é uma biblioteca Python para extração e processamento de dados do portal do **Supremo Tribunal Federal (STF)** do Brasil.
|
|
46
|
+
|
|
47
|
+
## 🚀 Funcionalidades
|
|
48
|
+
|
|
49
|
+
- ✅ **Web Scraping** do portal STF
|
|
50
|
+
- ✅ **Extração de processos** judiciais
|
|
51
|
+
- ✅ **Processamento de andamentos** processuais
|
|
52
|
+
- ✅ **Extração de partes** envolvidas
|
|
53
|
+
- ✅ **Limpeza e normalização** de dados
|
|
54
|
+
- ✅ **Exportação para CSV**
|
|
55
|
+
- ✅ **Type hints** completos (Python 3.7+)
|
|
56
|
+
- ✅ **Documentação** inline (docstrings)
|
|
57
|
+
|
|
58
|
+
## 📦 Instalação
|
|
59
|
+
|
|
60
|
+
### Via pip (recomendado)
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
pip install dsd-br
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Via repositório Git
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
git clone https://github.com/AlexandreAraujoCosta/DSD.git
|
|
70
|
+
cd dsd
|
|
71
|
+
pip install -e .
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Instalação para desenvolvimento
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pip install -e ".[dev]"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## 🎯 Uso Rápido
|
|
81
|
+
|
|
82
|
+
### Exemplo Básico
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
import dsd
|
|
86
|
+
|
|
87
|
+
# Fazer requisição ao STF
|
|
88
|
+
html = dsd.get("https://portal.stf.jus.br/processos/...")
|
|
89
|
+
|
|
90
|
+
# Extrair informações
|
|
91
|
+
partes = dsd.extrair_partes(html)
|
|
92
|
+
andamentos = dsd.extrair_andamentos(html)
|
|
93
|
+
|
|
94
|
+
# Processar dados
|
|
95
|
+
dados_limpos = dsd.limpar(dados)
|
|
96
|
+
|
|
97
|
+
# Salvar em CSV
|
|
98
|
+
dsd.write_csv_header("processos.csv", "processo;parte;data")
|
|
99
|
+
dsd.write_csv_row("processos.csv", [processo, parte, data])
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Trabalhando com Datas
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
from dsd import date, ajustar_mes
|
|
106
|
+
|
|
107
|
+
# Converter formato de data
|
|
108
|
+
data_br = "31/12/2023"
|
|
109
|
+
data_iso = date(data_br) # "2023-12-31"
|
|
110
|
+
|
|
111
|
+
# Converter mês abreviado
|
|
112
|
+
mes_numero = ajustar_mes("DEZ") # "12"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Trabalhando com Estados
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
from dsd import limpa_estado, estado_nome_completo, siglas
|
|
119
|
+
|
|
120
|
+
# Converter estado para sigla
|
|
121
|
+
sigla = limpa_estado("SAO PAULO") # "/SP"
|
|
122
|
+
|
|
123
|
+
# Converter sigla para nome completo
|
|
124
|
+
nome = estado_nome_completo("/SP") # "SAO PAULO"
|
|
125
|
+
|
|
126
|
+
# Obter lista de siglas
|
|
127
|
+
lista_siglas = siglas() # ['AC', 'AL', 'AP', ...]
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Extração de Texto
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
from dsd import extract, clean
|
|
134
|
+
|
|
135
|
+
# Extrair texto entre delimitadores
|
|
136
|
+
texto_html = "<div>Conteúdo importante</div>"
|
|
137
|
+
conteudo = extract(texto_html, "<div>", "</div>") # "Conteúdo importante"
|
|
138
|
+
|
|
139
|
+
# Limpar texto
|
|
140
|
+
texto_sujo = " Texto com\nespaços "
|
|
141
|
+
texto_limpo = clean(texto_sujo) # "Texto com espaços"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Trabalhando com Arquivos
|
|
145
|
+
|
|
146
|
+
```python
|
|
147
|
+
from dsd import carregar_arquivo, gravar, csv_to_list
|
|
148
|
+
|
|
149
|
+
# Carregar arquivo
|
|
150
|
+
conteudo = carregar_arquivo("processo.html")
|
|
151
|
+
|
|
152
|
+
# Gravar dados
|
|
153
|
+
gravar("resultado.txt", "Dados processados")
|
|
154
|
+
|
|
155
|
+
# Converter CSV para lista
|
|
156
|
+
dados = csv_to_list("dados.csv")
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## 📚 Documentação Completa
|
|
160
|
+
|
|
161
|
+
### Funções de Requisição HTTP
|
|
162
|
+
|
|
163
|
+
- `get(url: str) -> str`: Faz requisição GET e retorna HTML
|
|
164
|
+
- `get_json(url: str) -> dict`: Faz requisição GET e retorna JSON
|
|
165
|
+
- `get_response(url: str) -> Response`: Retorna objeto Response completo
|
|
166
|
+
|
|
167
|
+
### Funções de Extração
|
|
168
|
+
|
|
169
|
+
- `extract(source: str, start_at: str, end_at: str) -> str`: Extrai texto entre delimitadores
|
|
170
|
+
- `extrair_partes(string: str) -> str`: Extrai partes processuais do HTML
|
|
171
|
+
- `extrair_andamentos(string: str) -> list`: Extrai andamentos processuais
|
|
172
|
+
|
|
173
|
+
### Funções de Limpeza
|
|
174
|
+
|
|
175
|
+
- `clean(source: str) -> str`: Remove espaços e caracteres especiais
|
|
176
|
+
- `limpar(fonte: str) -> str`: Limpeza completa de texto
|
|
177
|
+
- `limpar_para_csv(fonte: str) -> str`: Prepara texto para CSV
|
|
178
|
+
|
|
179
|
+
### Funções de Arquivo e CSV
|
|
180
|
+
|
|
181
|
+
- `carregar_arquivo(nomedoarquivo: str) -> str`: Carrega arquivo
|
|
182
|
+
- `gravar(nomedoarquivo: str, dados: str) -> None`: Grava dados
|
|
183
|
+
- `csv_to_list(file: str) -> list`: Converte CSV para lista
|
|
184
|
+
- `write_csv_header(nomedoarquivo: str, string_campos: str) -> None`: Escreve cabeçalho CSV
|
|
185
|
+
- `write_csv_row(nomedoarquivo: str, dados: str) -> None`: Escreve linha CSV
|
|
186
|
+
|
|
187
|
+
## 🛠️ Requisitos
|
|
188
|
+
|
|
189
|
+
- Python >= 3.7
|
|
190
|
+
- requests >= 2.31.0
|
|
191
|
+
- selenium >= 4.0.0
|
|
192
|
+
|
|
193
|
+
## 🤝 Contribuindo
|
|
194
|
+
|
|
195
|
+
Contribuições são bem-vindas! Para contribuir:
|
|
196
|
+
|
|
197
|
+
1. Fork o projeto
|
|
198
|
+
2. Crie uma branch para sua feature (`git checkout -b feature/MinhaFeature`)
|
|
199
|
+
3. Commit suas mudanças (`git commit -m 'Adiciona MinhaFeature'`)
|
|
200
|
+
4. Push para a branch (`git push origin feature/MinhaFeature`)
|
|
201
|
+
5. Abra um Pull Request
|
|
202
|
+
|
|
203
|
+
### Desenvolvimento
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Clone o repositório
|
|
207
|
+
git clone https://github.com/AlexandreAraujoCosta/DSD.git
|
|
208
|
+
cd dsd
|
|
209
|
+
|
|
210
|
+
# Instale em modo desenvolvimento
|
|
211
|
+
pip install -e ".[dev]"
|
|
212
|
+
|
|
213
|
+
# Execute os testes
|
|
214
|
+
pytest
|
|
215
|
+
|
|
216
|
+
# Formate o código
|
|
217
|
+
black dsd/
|
|
218
|
+
|
|
219
|
+
# Verifique tipos
|
|
220
|
+
mypy dsd/
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## 📝 Licença
|
|
224
|
+
|
|
225
|
+
Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.
|
|
226
|
+
|
|
227
|
+
## 👥 Autores
|
|
228
|
+
|
|
229
|
+
**Alexandre Araújo Costa**
|
|
230
|
+
- Email: alexandre.araujo.costa@gmail.com
|
|
231
|
+
|
|
232
|
+
**Henrique Araújo Costa**
|
|
233
|
+
- Coautor
|
|
234
|
+
|
|
235
|
+
## 🙏 Agradecimentos
|
|
236
|
+
|
|
237
|
+
- Comunidade Python Brasil
|
|
238
|
+
- Supremo Tribunal Federal por disponibilizar os dados publicamente
|
|
239
|
+
|
|
240
|
+
## 📊 Status do Projeto
|
|
241
|
+
|
|
242
|
+
🚧 **Em desenvolvimento ativo** - Versão 0.1.0
|
|
243
|
+
|
|
244
|
+
## 🔗 Links Úteis
|
|
245
|
+
|
|
246
|
+
- [Documentação do STF](https://portal.stf.jus.br)
|
|
247
|
+
- [PyPI Package](https://pypi.org/project/dsd-br/)
|
|
248
|
+
- [Issues](https://github.com/AlexandreAraujoCosta/DSD/issues)
|
|
249
|
+
|
|
250
|
+
## 📈 Changelog
|
|
251
|
+
|
|
252
|
+
### [0.1.0] - 2024-01-XX
|
|
253
|
+
|
|
254
|
+
#### Adicionado
|
|
255
|
+
- Estrutura inicial do pacote
|
|
256
|
+
- Funções de web scraping do STF
|
|
257
|
+
- Funções de processamento de dados
|
|
258
|
+
- Suporte a CSV
|
|
259
|
+
- Type hints completos
|
|
260
|
+
- Documentação inline
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
**⭐ Se este projeto foi útil para você, considere dar uma estrela no GitHub!**
|
dsd_br-0.1.0/README.md
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# DSD
|
|
2
|
+
|
|
3
|
+
[](https://badge.fury.io/py/dsd)
|
|
4
|
+
[](https://pypi.org/project/dsd/)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
7
|
+
**DSD** é uma biblioteca Python para extração e processamento de dados do portal do **Supremo Tribunal Federal (STF)** do Brasil.
|
|
8
|
+
|
|
9
|
+
## 🚀 Funcionalidades
|
|
10
|
+
|
|
11
|
+
- ✅ **Web Scraping** do portal STF
|
|
12
|
+
- ✅ **Extração de processos** judiciais
|
|
13
|
+
- ✅ **Processamento de andamentos** processuais
|
|
14
|
+
- ✅ **Extração de partes** envolvidas
|
|
15
|
+
- ✅ **Limpeza e normalização** de dados
|
|
16
|
+
- ✅ **Exportação para CSV**
|
|
17
|
+
- ✅ **Type hints** completos (Python 3.7+)
|
|
18
|
+
- ✅ **Documentação** inline (docstrings)
|
|
19
|
+
|
|
20
|
+
## 📦 Instalação
|
|
21
|
+
|
|
22
|
+
### Via pip (recomendado)
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pip install dsd-br
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Via repositório Git
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
git clone https://github.com/AlexandreAraujoCosta/DSD.git
|
|
32
|
+
cd dsd
|
|
33
|
+
pip install -e .
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Instalação para desenvolvimento
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pip install -e ".[dev]"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 🎯 Uso Rápido
|
|
43
|
+
|
|
44
|
+
### Exemplo Básico
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
import dsd
|
|
48
|
+
|
|
49
|
+
# Fazer requisição ao STF
|
|
50
|
+
html = dsd.get("https://portal.stf.jus.br/processos/...")
|
|
51
|
+
|
|
52
|
+
# Extrair informações
|
|
53
|
+
partes = dsd.extrair_partes(html)
|
|
54
|
+
andamentos = dsd.extrair_andamentos(html)
|
|
55
|
+
|
|
56
|
+
# Processar dados
|
|
57
|
+
dados_limpos = dsd.limpar(dados)
|
|
58
|
+
|
|
59
|
+
# Salvar em CSV
|
|
60
|
+
dsd.write_csv_header("processos.csv", "processo;parte;data")
|
|
61
|
+
dsd.write_csv_row("processos.csv", [processo, parte, data])
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Trabalhando com Datas
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
from dsd import date, ajustar_mes
|
|
68
|
+
|
|
69
|
+
# Converter formato de data
|
|
70
|
+
data_br = "31/12/2023"
|
|
71
|
+
data_iso = date(data_br) # "2023-12-31"
|
|
72
|
+
|
|
73
|
+
# Converter mês abreviado
|
|
74
|
+
mes_numero = ajustar_mes("DEZ") # "12"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Trabalhando com Estados
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
from dsd import limpa_estado, estado_nome_completo, siglas
|
|
81
|
+
|
|
82
|
+
# Converter estado para sigla
|
|
83
|
+
sigla = limpa_estado("SAO PAULO") # "/SP"
|
|
84
|
+
|
|
85
|
+
# Converter sigla para nome completo
|
|
86
|
+
nome = estado_nome_completo("/SP") # "SAO PAULO"
|
|
87
|
+
|
|
88
|
+
# Obter lista de siglas
|
|
89
|
+
lista_siglas = siglas() # ['AC', 'AL', 'AP', ...]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Extração de Texto
|
|
93
|
+
|
|
94
|
+
```python
|
|
95
|
+
from dsd import extract, clean
|
|
96
|
+
|
|
97
|
+
# Extrair texto entre delimitadores
|
|
98
|
+
texto_html = "<div>Conteúdo importante</div>"
|
|
99
|
+
conteudo = extract(texto_html, "<div>", "</div>") # "Conteúdo importante"
|
|
100
|
+
|
|
101
|
+
# Limpar texto
|
|
102
|
+
texto_sujo = " Texto com\nespaços "
|
|
103
|
+
texto_limpo = clean(texto_sujo) # "Texto com espaços"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Trabalhando com Arquivos
|
|
107
|
+
|
|
108
|
+
```python
|
|
109
|
+
from dsd import carregar_arquivo, gravar, csv_to_list
|
|
110
|
+
|
|
111
|
+
# Carregar arquivo
|
|
112
|
+
conteudo = carregar_arquivo("processo.html")
|
|
113
|
+
|
|
114
|
+
# Gravar dados
|
|
115
|
+
gravar("resultado.txt", "Dados processados")
|
|
116
|
+
|
|
117
|
+
# Converter CSV para lista
|
|
118
|
+
dados = csv_to_list("dados.csv")
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## 📚 Documentação Completa
|
|
122
|
+
|
|
123
|
+
### Funções de Requisição HTTP
|
|
124
|
+
|
|
125
|
+
- `get(url: str) -> str`: Faz requisição GET e retorna HTML
|
|
126
|
+
- `get_json(url: str) -> dict`: Faz requisição GET e retorna JSON
|
|
127
|
+
- `get_response(url: str) -> Response`: Retorna objeto Response completo
|
|
128
|
+
|
|
129
|
+
### Funções de Extração
|
|
130
|
+
|
|
131
|
+
- `extract(source: str, start_at: str, end_at: str) -> str`: Extrai texto entre delimitadores
|
|
132
|
+
- `extrair_partes(string: str) -> str`: Extrai partes processuais do HTML
|
|
133
|
+
- `extrair_andamentos(string: str) -> list`: Extrai andamentos processuais
|
|
134
|
+
|
|
135
|
+
### Funções de Limpeza
|
|
136
|
+
|
|
137
|
+
- `clean(source: str) -> str`: Remove espaços e caracteres especiais
|
|
138
|
+
- `limpar(fonte: str) -> str`: Limpeza completa de texto
|
|
139
|
+
- `limpar_para_csv(fonte: str) -> str`: Prepara texto para CSV
|
|
140
|
+
|
|
141
|
+
### Funções de Arquivo e CSV
|
|
142
|
+
|
|
143
|
+
- `carregar_arquivo(nomedoarquivo: str) -> str`: Carrega arquivo
|
|
144
|
+
- `gravar(nomedoarquivo: str, dados: str) -> None`: Grava dados
|
|
145
|
+
- `csv_to_list(file: str) -> list`: Converte CSV para lista
|
|
146
|
+
- `write_csv_header(nomedoarquivo: str, string_campos: str) -> None`: Escreve cabeçalho CSV
|
|
147
|
+
- `write_csv_row(nomedoarquivo: str, dados: str) -> None`: Escreve linha CSV
|
|
148
|
+
|
|
149
|
+
## 🛠️ Requisitos
|
|
150
|
+
|
|
151
|
+
- Python >= 3.7
|
|
152
|
+
- requests >= 2.31.0
|
|
153
|
+
- selenium >= 4.0.0
|
|
154
|
+
|
|
155
|
+
## 🤝 Contribuindo
|
|
156
|
+
|
|
157
|
+
Contribuições são bem-vindas! Para contribuir:
|
|
158
|
+
|
|
159
|
+
1. Fork o projeto
|
|
160
|
+
2. Crie uma branch para sua feature (`git checkout -b feature/MinhaFeature`)
|
|
161
|
+
3. Commit suas mudanças (`git commit -m 'Adiciona MinhaFeature'`)
|
|
162
|
+
4. Push para a branch (`git push origin feature/MinhaFeature`)
|
|
163
|
+
5. Abra um Pull Request
|
|
164
|
+
|
|
165
|
+
### Desenvolvimento
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# Clone o repositório
|
|
169
|
+
git clone https://github.com/AlexandreAraujoCosta/DSD.git
|
|
170
|
+
cd dsd
|
|
171
|
+
|
|
172
|
+
# Instale em modo desenvolvimento
|
|
173
|
+
pip install -e ".[dev]"
|
|
174
|
+
|
|
175
|
+
# Execute os testes
|
|
176
|
+
pytest
|
|
177
|
+
|
|
178
|
+
# Formate o código
|
|
179
|
+
black dsd/
|
|
180
|
+
|
|
181
|
+
# Verifique tipos
|
|
182
|
+
mypy dsd/
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## 📝 Licença
|
|
186
|
+
|
|
187
|
+
Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.
|
|
188
|
+
|
|
189
|
+
## 👥 Autores
|
|
190
|
+
|
|
191
|
+
**Alexandre Araújo Costa**
|
|
192
|
+
- Email: alexandre.araujo.costa@gmail.com
|
|
193
|
+
|
|
194
|
+
**Henrique Araújo Costa**
|
|
195
|
+
- Coautor
|
|
196
|
+
|
|
197
|
+
## 🙏 Agradecimentos
|
|
198
|
+
|
|
199
|
+
- Comunidade Python Brasil
|
|
200
|
+
- Supremo Tribunal Federal por disponibilizar os dados publicamente
|
|
201
|
+
|
|
202
|
+
## 📊 Status do Projeto
|
|
203
|
+
|
|
204
|
+
🚧 **Em desenvolvimento ativo** - Versão 0.1.0
|
|
205
|
+
|
|
206
|
+
## 🔗 Links Úteis
|
|
207
|
+
|
|
208
|
+
- [Documentação do STF](https://portal.stf.jus.br)
|
|
209
|
+
- [PyPI Package](https://pypi.org/project/dsd-br/)
|
|
210
|
+
- [Issues](https://github.com/AlexandreAraujoCosta/DSD/issues)
|
|
211
|
+
|
|
212
|
+
## 📈 Changelog
|
|
213
|
+
|
|
214
|
+
### [0.1.0] - 2024-01-XX
|
|
215
|
+
|
|
216
|
+
#### Adicionado
|
|
217
|
+
- Estrutura inicial do pacote
|
|
218
|
+
- Funções de web scraping do STF
|
|
219
|
+
- Funções de processamento de dados
|
|
220
|
+
- Suporte a CSV
|
|
221
|
+
- Type hints completos
|
|
222
|
+
- Documentação inline
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
**⭐ Se este projeto foi útil para você, considere dar uma estrela no GitHub!**
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"""
|
|
2
|
+
DSD - Ferramentas para extração e processamento de dados do STF
|
|
3
|
+
|
|
4
|
+
Este pacote fornece funções para fazer web scraping e processamento de dados
|
|
5
|
+
do portal do Supremo Tribunal Federal (STF) do Brasil.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
__version__ = "0.1.0"
|
|
9
|
+
__author__ = "Alexandre Araújo Costa"
|
|
10
|
+
__email__ = "alexandre.araujo.costa@gmail.com"
|
|
11
|
+
__maintainer__ = "Alexandre Araújo Costa, Henrique Araújo Costa"
|
|
12
|
+
|
|
13
|
+
# Importar funções principais para facilitar o uso
|
|
14
|
+
from .dsd import (
|
|
15
|
+
# Funções de requisição HTTP
|
|
16
|
+
get,
|
|
17
|
+
get_json,
|
|
18
|
+
get_response,
|
|
19
|
+
|
|
20
|
+
# Funções de extração de texto
|
|
21
|
+
extract,
|
|
22
|
+
extrair,
|
|
23
|
+
clext,
|
|
24
|
+
|
|
25
|
+
# Funções de limpeza
|
|
26
|
+
clean,
|
|
27
|
+
limpar,
|
|
28
|
+
limpar_para_csv,
|
|
29
|
+
|
|
30
|
+
# Funções de arquivo
|
|
31
|
+
carregar_arquivo,
|
|
32
|
+
gravar,
|
|
33
|
+
|
|
34
|
+
# Funções de CSV
|
|
35
|
+
csv_to_list,
|
|
36
|
+
write_csv_header,
|
|
37
|
+
write_csv_row,
|
|
38
|
+
|
|
39
|
+
# Funções de processamento
|
|
40
|
+
extrair_partes,
|
|
41
|
+
extrair_andamentos,
|
|
42
|
+
listar_partes,
|
|
43
|
+
|
|
44
|
+
# Funções de estados
|
|
45
|
+
limpa_estado,
|
|
46
|
+
estado_nome_completo,
|
|
47
|
+
siglas,
|
|
48
|
+
|
|
49
|
+
# Funções de data
|
|
50
|
+
date,
|
|
51
|
+
ajustar_mes,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
__all__ = [
|
|
55
|
+
# HTTP
|
|
56
|
+
'get',
|
|
57
|
+
'get_json',
|
|
58
|
+
'get_response',
|
|
59
|
+
|
|
60
|
+
# Extração
|
|
61
|
+
'extract',
|
|
62
|
+
'extrair',
|
|
63
|
+
'clext',
|
|
64
|
+
|
|
65
|
+
# Limpeza
|
|
66
|
+
'clean',
|
|
67
|
+
'limpar',
|
|
68
|
+
'limpar_para_csv',
|
|
69
|
+
|
|
70
|
+
# Arquivo
|
|
71
|
+
'carregar_arquivo',
|
|
72
|
+
'gravar',
|
|
73
|
+
|
|
74
|
+
# CSV
|
|
75
|
+
'csv_to_list',
|
|
76
|
+
'write_csv_header',
|
|
77
|
+
'write_csv_row',
|
|
78
|
+
|
|
79
|
+
# Processamento
|
|
80
|
+
'extrair_partes',
|
|
81
|
+
'extrair_andamentos',
|
|
82
|
+
'listar_partes',
|
|
83
|
+
|
|
84
|
+
# Estados
|
|
85
|
+
'limpa_estado',
|
|
86
|
+
'estado_nome_completo',
|
|
87
|
+
'siglas',
|
|
88
|
+
|
|
89
|
+
# Data
|
|
90
|
+
'date',
|
|
91
|
+
'ajustar_mes',
|
|
92
|
+
]
|