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
brfinance-0.0.9.tar.gz
(11.0 kB
view details)
Built Distribution
brfinance-0.0.9-py3-none-any.whl
(10.6 kB
view details)
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 |