Skip to main content

Biblioteca em Python com o objetivo de facilitar o acesso a dados financeiros periódicos de empresas brasileiras(B3/CVM).

Project description

Contributors Forks Stargazers Issues MIT License LinkedIn

brfinance - Acesse facilmente dados financeiros de empresas brasileiras na B3/CVM

Biblioteca em Python com o objetivo de facilitar o acesso a dados financeiros periódicos de empresas brasileiras(B3/CVM).

  • Financial statements:
    • Balanço Patrimonial Ativo (Balance sheet - Assets)
    • Balanço Patrimonial Passivo (Balance sheet - Liabilities)
    • Demonstração do Resultado (Income statement)
    • Demonstração do Resultado Abrangente
    • Demonstração do Fluxo de Caixa (Cash flow statement)
    • Demonstração das Mutações do Patrimônio Líquido
    • Demonstração de Valor Adicionado

Instalação

$ pip install brfinance

Como utilizar

Veja como é simples utilizar:

from brfinance import CVMAsyncBackend
import pandas as pd
from datetime import datetime, date


cvm_httpclient = CVMAsyncBackend()

# Dict de códigos CVM para todas as empresas
cvm_codes = cvm_httpclient.get_cvm_codes()
print(cvm_codes)

# Dict de todas as categorias de busca disponíveis (Fato relevante, DFP, ITR, etc.)
categories = cvm_httpclient.get_consulta_externa_cvm_categories()
print(categories)

# Realizando busca por Empresa
start_date = date(2020, 1, 1)
end_dt = date.today()
cvm_codes_list = ['21610'] # B3
category = ["EST_4", "EST_3", "IPE_4_-1_-1"] # Códigos de categoria para DFP, ITR e fatos relevantes
last_ref_date = False # Se "True" retorna apenas o último report no intervalo de datas

# Busca
search_result = cvm_httpclient.get_consulta_externa_cvm_results(
    cod_cvm=cvm_codes_list,
    start_date=start_date,
    end_date=end_dt,
    last_ref_date=last_ref_date,
    category=category
    )

# Filtrar dataframe de busca para DFP e ITR apenas
search_result = search_result[
    (search_result['categoria']=="DFP - Demonstrações Financeiras Padronizadas") |
    (search_result['categoria']=="ITR - Informações Trimestrais")]
search_result = search_result[pd.to_numeric(search_result['numero_seq_documento'], errors='coerce').notnull()]

reports_list = [
    'Balanço Patrimonial Ativo',
    'Balanço Patrimonial Passivo',
    'Demonstração do Resultado',
    'Demonstração do Resultado Abrangente',
    'Demonstração do Fluxo de Caixa',
    'Demonstração das Mutações do Patrimônio Líquido',
    'Demonstração de Valor Adicionado'] # Se None retorna todos os demonstrativos disponíveis.

# Obter demonstrativos
for index, row in search_result.iterrows():
    empresa = f"{row['cod_cvm']} - {cvm_codes[row['cod_cvm']]}"
    print("*" * 20, empresa, "*" * 20)
    reports = cvm_httpclient.get_report(row["numero_seq_documento"], row["codigo_tipo_instituicao"], reports_list=reports_list)
    
    for report in reports:
        reports[report]["cod_cvm"] = row["cod_cvm"]
        print(reports[report].head())

Você pode acessar exemplos completos clicando aqui.

Funções disponíveis

Através da classe de client CVMAsyncBackend, você terá acesso as seguintes funções:

Função Parâmetros Descrição
get_cvm_codes - Obtém os códigos cvm disponíveis para todas as empresas. Retorna um dicionário com o código CVM de chave e o nome da empresa.
get_consulta_externa_cvm_categories - Obtém os códigos para as categorias de busca disponíveis, dentre elas "DFP", "ITR", etc. Retorna um dicionário com o código da busca e a descrição.
get_consulta_externa_cvm_results cod_cvm, start_date, end_date, last_ref_date, report_type Obtém o resultado da busca para os dados informados. Retorna um dataframe com os resultados.
get_report numero_seq_documento, codigo_tipo_instituicao Utilizado para obter todos os demonstrativos de uma empresa na CVM. Retorna um dicionário com os nomes e os valores dos demonstrativos em um dataframe.

Upload PyPi

pip install twine
python setup.py sdist
C:\Users\eudes\AppData\Roaming\Python\Python310\Scripts\twine

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

brfinance-0.0.9.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

brfinance-0.0.9-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file brfinance-0.0.9.tar.gz.

File metadata

  • Download URL: brfinance-0.0.9.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for brfinance-0.0.9.tar.gz
Algorithm Hash digest
SHA256 19d6ef499c7c1f51eaca6301b04ebd4d5929714619a3fb92edf3577023e36b30
MD5 6af844709b84d2f84d4c92c93fa81fa1
BLAKE2b-256 553b34fde7e57163a03d949c66ea0e300981ebd4e9c497853386314fe1711f51

See more details on using hashes here.

File details

Details for the file brfinance-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: brfinance-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for brfinance-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 3ff9d045b727de9d0d92c71d46dfc57e2463184d40f294ed545a30b8bcdded00
MD5 1a3e2856b806ebce473b8558e55dc4a8
BLAKE2b-256 dcca76578dac6b58a7228a877c37d4b2b88ba92fc32f326a273c1167cfaf9e30

See more details on using hashes here.

Supported by

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