Skip to main content

filings-b3 filings-b3

Project Status: Active Python Version PyPI Version Snyk Vulnerabilities Snyk License PyPI Downloads Linting Formatting: isort Test Coverage License Open Issues Contributions Welcome

Biblioteca Python simples e eficiente para acessar os conjuntos de dados públicos da B3 (a bolsa brasileira). Cada reader transforma um pregão em um pandas.DataFrame tipado, validado por contrato e com proveniência — valores monetários como Decimal exato, nunca um float com perda.

✨ Principais recursos

📊 Readers do Boletim Diário (BDI)

🗂️ Readers da Pesquisa por Pregão

O arquivo de instrumentos do pregão (IN{aammdd}.zip, BVBG.028.02) é um download lido de dezoito formas: cada registro aninha os seus campos sob exatamente um de 20 blocos InstrmInf. O download é um zip dentro de um zip, com um XML por snapshot intradiário do pregão — todo reader lê o de maior CreDtAndTm, o definitivo, porque os snapshots são cumulativos.

🔒 Fidelidade por construção

  • Tipagem explícita — toda coluna tipada na carga, nunca a inferência do pandas.
  • Decimais exatos — dinheiro e qualquer valor cuja parte fracionária importa é decimal.Decimal, nunca um float binário.
  • Contratos — uma fonte que remove uma coluna obrigatória falha de forma barulhenta com ContractError, verificado contra os layouts publicados pela própria B3.

🧾 Proveniência & camada bronze

  • Seis colunas de proveniência em todo frame (url, updated_at, source_key, package_version, ingestion_run_id, content_hash).
  • Passe path_raw= para reter cada página bruta da fonte para a camada bronze de um datalake.

🚀 Primeiros passos

Pré-requisitos

  • Python 3.10+
  • Poetry (recomendado)
  • Opcional: Makefile

Instalação

Opção 1: Pip (recomendado)

pip install filings-b3

Opção 2: Build a partir do código-fonte

git clone https://github.com/guilhermegor/filings-b3.git
cd filings-b3
pyenv install 3.12.2
pyenv local 3.12.2
poetry install --no-root
poetry shell

Uso básico

from datetime import date
from filings_b3.daily_bulletin import BdiBtbLendingOpenPositionsReader

df = BdiBtbLendingOpenPositionsReader(date(2025, 1, 2)).read()
print(df[["TCKR_SYMB", "STOCK_BALANCE", "BALANCE"]].head())

Cada reader é importado pela sua macro-seção (filings_b3.daily_bulletin, filings_b3.search_trading_session, …) — a única forma pública. A raiz do pacote não exporta readers.

⚠️ Mudança na 0.3.0 — duas colunas do arquivo de instrumentos foram renomeadas, porque um mesmo campo vinha publicado com dois nomes diferentes entre readers do mesmo arquivo, quebrando um UNION ALL sobre a família (#165). Só o nome da coluna mudou — caminho de origem e valores são os mesmos.

Reader Antes Agora
InstrumentsFileFxdIncmReader TP UNDRLYG_INSTRM_ID_TP
InstrumentsFileExrcEqtsReader TP OPTN_EXRC_INSTRM_ID_TP

O TP de InstrumentsFileIntlBdReader não muda: ali é o tag Tp de verdade do bloco.

⚠️ Mudança na 0.2.0 — até a 0.1.x cada reader também era reexportado de forma plana na raiz (from filings_b3 import BdiBtbLendingOpenPositionsReader). Isso foi removido: com seis macro-seções e ~105 datasets previstos, a raiz viraria uma lista de mais de cem nomes. Troque o import pela seção correspondente.

date_ref é obrigatório — o endpoint do BDI é endereçado por data, então não existe um padrão "mais recente". Veja a documentação para cada reader e mais receitas.

Rodando os testes

poetry run pytest tests/unit/ -v
poetry run pytest tests/integration/ -v

📂 Estrutura do projeto

filings-b3/
├── .github/
│   ├── workflows/
│   ├── CODEOWNERS
│   └── PULL_REQUEST_TEMPLATE.md
├── assets/
│   └── b3-logo.png
├── bin/
├── docs/
├── src/filings_b3/
│   ├── daily_bulletin/          # readers do Boletim Diário do Pregão (BDI)
│   ├── search_trading_session/  # readers da Pesquisa por Pregão
│   └── _internal/               # privado: contracts, utils, ports
├── tests/
│   ├── unit/
│   ├── integration/
│   └── performance/
├── LICENSE
├── Makefile
├── poetry.lock
├── pyproject.toml
├── README.md
└── requirements.txt

👨‍💻 Autores

📜 Licença

Este projeto é licenciado sob a Licença MIT — veja LICENSE.

🔗 Links úteis

Download files

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

Source Distribution

filings_b3-0.3.3.tar.gz (90.6 kB view details)

Uploaded Source

Built Distribution

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

filings_b3-0.3.3-py3-none-any.whl (165.2 kB view details)

Uploaded Python 3

File details

Details for the file filings_b3-0.3.3.tar.gz.

File metadata

  • Download URL: filings_b3-0.3.3.tar.gz
  • Upload date:
  • Size: 90.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for filings_b3-0.3.3.tar.gz
Algorithm Hash digest
SHA256 30d49b64d15ba6fd2e7410eb80943e6194b19b58161445e68c42b97069493606
MD5 1178d89e54f77fda5569dd99b9a983c1
BLAKE2b-256 ffbb09a6b2e89fe45a710b024a9ae5553cbc1b0266bb9f20322529ea35146eab

See more details on using hashes here.

Provenance

The following attestation bundles were made for filings_b3-0.3.3.tar.gz:

Publisher: release-pypi.yaml on guilhermegor/filings-b3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file filings_b3-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: filings_b3-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 165.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for filings_b3-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f66075b26130de11eb2afdb4275fa5bee6be5718649bce07491fba2b67ea8ac9
MD5 f41277eb4e65bee3b87d151e25ae7f9d
BLAKE2b-256 4df426976f846e5c9db3d74799b89a5528296197f1d97b08a8bb7fc972c6fab1

See more details on using hashes here.

Provenance

The following attestation bundles were made for filings_b3-0.3.3-py3-none-any.whl:

Publisher: release-pypi.yaml on guilhermegor/filings-b3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.5

2 files

0.3.4

2 files

This release

0.3.3 This release

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page