siopy 
Orçamento Federal e emendas parlamentares em pandas, a partir de fontes públicas:
- SIOP Dados Abertos (SOF/MPO) — endpoint SPARQL do RDF da LOA (2001–2026, com execução: PLOA, LOA, lei + créditos, empenhado, liquidado, pago) e CSVs oficiais (cadastro de ações, créditos, acompanhamento físico, regionalização). Sem credencial.
- Portal da Transparência (CGU) — API REST de emendas parlamentares (autor, número, valores por emenda) e documentos de despesa (empenhos, pagamentos, favorecidos). Requer chave gratuita: https://portaldatransparencia.gov.br/api-de-dados/cadastrar-email.
Pacote irmão em R: siopr.
Documentação: https://strategicprojects.github.io/siop/siopy/ (site do monorepo:
https://strategicprojects.github.io/siop/).
Instalação
pip install siopy-br # o import continua: import siopy
pip install -e ".[dev]" # desenvolvimento, a partir deste diretório
No PyPI o pacote se chama
siopy-br(o nomesiopyé recusado por colidir com o projetoslopyna normalização do PyPI, que trata i≡l); o pacote importável segue sendosiopy, espelho dosiopr.
Uso
import siopy
# Emendas na LOA 2025 (RP 6 = individuais, 7 = bancada, 8 = comissão, 9 = relator)
em = siopy.siop_emendas(2025, tipo=["individual", "bancada"])
em.groupby("tipo_emenda")[["loa", "empenhado", "pago"]].sum()
# Só o Ministério da Saúde, função 10
siopy.siop_emendas(2025, tipo="individual", orgao="36000", funcao="10")
# Orçamento inteiro de um órgão (qualquer RP)
siopy.siop_orcamento(2025, orgao="26000")
# Quando foi a última carga do RDF?
siopy.siop_ultima_atualizacao()
# SPARQL cru (CSV por padrão; o Virtuoso limita ORDER BY+OFFSET a 10k linhas)
siopy.siop_sparql("PREFIX loa: <http://vocab.e.gov.br/2013/09/loa#> SELECT ... ")
# CSVs oficiais (cache em disco; refresh=True para baixar de novo)
siopy.siop_cadastro_acoes(2025, "localizadores")
siopy.siop_creditos(2025)
siopy.siop_catalogo() # tudo que está publicado na página de Dados Abertos
# Portal da Transparência — export PORTAL_TRANSPARENCIA_API_KEY=...
# As funções pt_* aceitam listas e devolvem um único DataFrame: dos autores
# (acentos normalizados sozinhos) aos documentos SIAFI de cada emenda.
deputados = siopy.camara_deputados(uf="PE")
emendas = siopy.pt_emendas(2025, autor=list(deputados["nome"]))
docs = siopy.pt_emenda_documentos(list(emendas["codigo_emenda"]))
pagamentos = siopy.pt_despesa_documento(
docs.loc[docs["fase"] == "Pagamento", "codigo_documento"].unique()
)
# Tudo junto: 1 linha por documento, com favorecido/UG/UO
siopy.emendas_execucao(2025, autor="NOME DO PARLAMENTAR")
Colunas em snake_case, códigos como texto (zeros à esquerda preservados), valores em R$ como
float. O RDF do SIOP não traz autor nem número de emenda — isso vem do Portal da
Transparência:
Arquitetura
Atualização das fontes
| Fonte | Periodicidade | Como verificar |
|---|---|---|
| RDF/SPARQL SIOP | recarga a cada poucos dias (exercício corrente) e reprocessamento periódico dos anteriores | siop_ultima_atualizacao() |
| CSVs SIOP | publicações pontuais (data no nome do arquivo) | siop_catalogo() |
| PT – Tesouro Gerencial (emendas, despesas) | diária | página Origem dos Dados do portal |
| PT – Apoios/Solicitações (SLCN) | semanal | idem |
Testes
pytest # offline, com fixtures
SIOPY_LIVE=true pytest # inclui chamadas reais (precisa de rede e da chave para pt_*)
Licença
MIT. Dados: SIOP/SOF (CC BY-NC 4.0 para a documentação; dados abertos) e Portal da Transparência (Decreto 8.777/2016).
Metadata
Release files for siopy-br 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| siopy_br-0.1.0.tar.gz | 126.8 kB | With provenance | Details for siopy_br-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| siopy_br-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for siopy_br-0.1.0-py3-none-any.whl |
Total release size: 150.1 kB
Release files / siopy_br-0.1.0.tar.gz
| Download URL | siopy_br-0.1.0.tar.gz |
|---|---|
| Size | 126.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f3ad49e17617dc22ec8e75e74ab8f1a833a5955aede310f571e43bc9f8fe858
|
|
BLAKE2b-256 checksum How to use checksums |
4f8bf68189adf914f23f83708cb17f4f34a3ec25883f2e2d5fe7eafb669650c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.
Transparency logRelease files / siopy_br-0.1.0-py3-none-any.whl
| Download URL | siopy_br-0.1.0-py3-none-any.whl |
|---|---|
| Size | 23.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2ecaebbdb3f36c97c5537c0997f0a7e52323eeb3423744291c2a0b7d1e64ab96
|
|
BLAKE2b-256 checksum How to use checksums |
c6764d45d7c57a0130a61fdf4e5b73e2272c9a499febb2444e063fd77ee7fbb4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.
Transparency logSecurity for siopy-br 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for siopy_br-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.