Skip to main content

filings-cvm filings-cvm

Project Status: Active Python Version PyPI Version PyPI Downloads Linting Test Coverage License Docs

Biblioteca Python tipada para os padrões de arquivo XML regulatórios da CVM (Comissão de Valores Mobiliários). Monte, valide e serialize documentos no formato exigido pela CVM — e, à medida que a biblioteca cresce, leia arquivos baixados da CVM de volta para modelos tipados.

Modelos Pydantic v2 validam tudo na construção — formato de datas, dígitos verificadores de CNPJ/CPF e a escala decimal de cada campo — e valores com casas decimais em excesso são truncados em direção a zero (ROUND_DOWN), nunca arredondados, para que um valor reportado jamais seja inflado.

Fonte da verdade: nomes de campo, escalas decimais e cardinalidades vêm do catálogo oficial da CVM — https://cvmweb.cvm.gov.br/SWB/Sistemas/SCW/PadroesXML/PadroesXML.asp — não desta documentação.

📖 Documentação

A documentação completa (em pt-BR) fica em https://guilhermegor.github.io/filings-cvm/ ou pode ser servida localmente:

make docs_server     # serve em http://0.0.0.0:8000  (sem make: ./tasks.sh docs_server)

✨ Funcionalidades

Toda solução vive em uma de duas macrosseções:

Seção Sentido O que faz
filings_cvm.submission envio → CVM Recebe modelos de schema validados e produz o arquivo XML compatível com a CVM, pronto para envio.
filings_cvm.ingestion leitura ← CVM Analisa um arquivo baixado da CVM de volta para modelos tipados. Criada quando o primeiro padrão de leitura for implementado.

O schema compartilhado (modelos Pydantic que espelham cada padrão XML) é neutro em relação à direção e reexportado pelas seções públicas — você importa tudo de que precisa a partir de filings_cvm.submission.

🧩 Padrões implementados (envio)

Os demais padrões do catálogo (CDA, Lâmina, Informe Mensal FIDC, etc.) estão pendentes — consulte o CLAUDE.md do repositório para o catálogo completo com o status de cada um.

🚀 Primeiros Passos

Pré-requisitos

  • Python >= 3.10
  • Poetry (recomendado)
  • Opcional: Makefile (ou use ./tasks.sh no Git Bash / Windows)

Instalação

Como dependência:

pip install filings-cvm
# ou
poetry add filings-cvm

A partir do código-fonte:

git clone https://github.com/guilhermegor/filings-cvm.git
cd filings-cvm
make init            # cria a .venv e instala os hooks de pre-commit
                     # (sem make: ./tasks.sh init)

Uso básico

from filings_cvm.submission import (
    DocumentHeader,
    PerfilMensal,
    PerfilMensalDocument,
    PerfilMensalRow,
)

header = DocumentHeader(dt_compt="01/2025", dt_gerac_arq="15/01/2025")
row = PerfilMensalRow(cnpj_fdo="11222333000181", ...)  # validado na construção
doc = PerfilMensalDocument(header=header, rows=[row])

xml = PerfilMensal().export(doc)                          # XML como str
PerfilMensal().export(doc, output_path="perfil.xml")     # ou grava em disco (windows-1252)

E a leitura (← CVM) devolve um DataFrame tipado e validado por contrato:

from datetime import date

from filings_cvm.ingestion import InformeDiarioReader

df = InformeDiarioReader(date_ref=date(2025, 1, 15)).read()   # dump mensal inf_diario_fi

O exemplo completo (incluindo o bloco obrigatório de contagem de clientes) está em Uso.

Execução dos testes

make unit_tests      # pytest tests/unit/
make test_cov        # cobertura + badge (coverage.svg)
make lint            # ruff, codespell, pydocstyle, check_docstrings
make help            # lista todos os comandos disponíveis

📂 Estrutura do projeto

filings-cvm/
├── assets/                 # logo e imagens do projeto
├── docs/                   # documentação MkDocs (pt-BR) — make docs_server
├── mkdocs.yml              # configuração do site de documentação
├── src/filings_cvm/
│   ├── __init__.py         # API pública (controlada por __all__)
│   ├── submission/         # envio → CVM (modelo validado → XML)
│   ├── ingestion/          # leitura ← CVM (arquivo baixado → DataFrame tipado)
│   └── _internal/          # PRIVADO — schemas Pydantic, ports (interfaces) + helpers
├── tests/
│   ├── unit/  integration/  performance/
├── .pre-commit-config.yaml
├── Makefile  /  tasks.sh   # interfaces espelhadas (com e sem make)
├── pyproject.toml
└── README.md

🤝 Contribuição

Contribuições são bem-vindas — leia o docs/contributing.md antes de abrir sua primeira branch. Fluxo resumido:

make lint            # ruff, codespell, pydocstyle
make unit_tests      # pytest tests/unit/

Toda mudança entra por pull request: a branch padrão é protegida pelo ruleset pr-quality-gate (PR obrigatório, testes nos 3 SOs + build da doc verdes, CodeQL limpo e revisão automática do Copilot a cada push). Ele é provisionado por código — make init já o aplica, e make enable_repo_rules o (re)aplica sozinho; nenhuma configuração manual na UI do GitHub é necessária. Detalhes em docs/contributing.md.

👨‍💻 Autores

Guilherme Rodrigues

GitHub LinkedIn

📜 Licença

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

🙌 Agradecimentos

  • Gerado a partir do template lib-minimal via BlueprintX.

Download files

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

Source Distribution

filings_cvm-0.25.20.tar.gz (194.9 kB view details)

Uploaded Source

Built Distribution

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

filings_cvm-0.25.20-py3-none-any.whl (469.5 kB view details)

Uploaded Python 3

File details

Details for the file filings_cvm-0.25.20.tar.gz.

File metadata

  • Download URL: filings_cvm-0.25.20.tar.gz
  • Upload date:
  • Size: 194.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for filings_cvm-0.25.20.tar.gz
Algorithm Hash digest
SHA256 6532a23a1ee33ec3238aaadaa5c3e7b63bf71d812577dc883bf89b2008fb86e5
MD5 4c306dabcf538e54cba7a0ad39155cd0
BLAKE2b-256 b55c98c93c2636712f809eb30db08d8ef19e4afe5307411bab0898dbd6d65095

See more details on using hashes here.

Provenance

The following attestation bundles were made for filings_cvm-0.25.20.tar.gz:

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

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_cvm-0.25.20-py3-none-any.whl.

File metadata

  • Download URL: filings_cvm-0.25.20-py3-none-any.whl
  • Upload date:
  • Size: 469.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for filings_cvm-0.25.20-py3-none-any.whl
Algorithm Hash digest
SHA256 e32c4793f478e872fb91d6fc5c9504a77093bebf18d7a1f5b1b7ff207d61c1ab
MD5 cfaf7bbea8133432522d27a8a0481c01
BLAKE2b-256 2f38ac635b8679f1e0083c59801da5161ecac9bf0a4fd8a5713b3e403cb06560

See more details on using hashes here.

Provenance

The following attestation bundles were made for filings_cvm-0.25.20-py3-none-any.whl:

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

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.26.9

2 files

0.26.8

2 files

0.26.7

2 files

0.26.6

2 files

0.26.5

2 files

0.26.4

2 files

0.26.3

2 files

0.26.2

2 files

0.26.0

2 files

0.25.27

2 files

0.25.26

2 files

0.25.25

2 files

0.25.24

2 files

0.25.23

2 files

0.25.22

2 files

0.25.21

2 files

This release

0.25.20 This release

2 files

0.25.19

2 files

0.25.18

2 files

0.25.17

2 files

0.25.16

2 files

0.25.15

2 files

0.25.14

2 files

0.25.13

2 files

0.25.12

2 files

0.25.11

2 files

0.25.10

2 files

0.25.9

2 files

0.25.8

2 files

0.25.7

2 files

0.25.6

2 files

0.25.5

2 files

0.25.4

2 files

0.25.3

2 files

0.25.2

2 files

0.25.1

2 files

0.24.0

2 files

0.23.0

2 files

0.22.0

2 files

0.21.0

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

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