Biblioteca em Python com o objetivo de facilitar o acesso a dados financeiros periódicos de empresas brasileiras(B3/CVM).
Project description
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19d6ef499c7c1f51eaca6301b04ebd4d5929714619a3fb92edf3577023e36b30
|
|
| MD5 |
6af844709b84d2f84d4c92c93fa81fa1
|
|
| BLAKE2b-256 |
553b34fde7e57163a03d949c66ea0e300981ebd4e9c497853386314fe1711f51
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ff9d045b727de9d0d92c71d46dfc57e2463184d40f294ed545a30b8bcdded00
|
|
| MD5 |
1a3e2856b806ebce473b8558e55dc4a8
|
|
| BLAKE2b-256 |
dcca76578dac6b58a7228a877c37d4b2b88ba92fc32f326a273c1167cfaf9e30
|