Package: brfinance
brfinance - Acesse facilmente dados financeiros de empresas brasileiras na B3/CVMBiblioteca 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 AbrangenteDemonstração do Fluxo de Caixa (Cash flow statement)Demonstração das Mutações do Patrimônio LíquidoDemonstração de Valor AdicionadoInstalação$ pip install brfinanceComo utilizarVeja como é simples utilizar:frombrfinanceimportCVMAsyncBackendimportpandasaspdfromdatetimeimportdatetime,datecvm_httpclient=CVMAsyncBackend()# Dict de códigos CVM para todas as empresascvm_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 Empresastart_date=date(2020,1,1)end_dt=date.today()cvm_codes_list=['21610']# B3category=["EST_4","EST_3","IPE_4_-1_-1"]# Códigos de categoria para DFP, ITR e fatos relevanteslast_ref_date=False# Se "True" retorna apenas o último report no intervalo de datas# Buscasearch_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 apenassearch_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 demonstrativosforindex,rowinsearch_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)forreportinreports:reports[report]["cod_cvm"]=row["cod_cvm"]print(reports[report].head())Você pode acessar exemplos completos clicandoaqui.Funções disponíveisAtravés da classe de clientCVMAsyncBackend, você terá acesso as seguintes funções:FunçãoParâmetrosDescriçãoget_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_resultscod_cvm, start_date, end_date, last_ref_date, report_typeObtém o resultado da busca para os dados informados. Retorna um dataframe com os resultados.get_reportnumero_seq_documento, codigo_tipo_instituicaoUtilizado 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 PyPipip install twinepython setup.py sdistC:\Users\eudes\AppData\Roaming\Python\Python310\Scripts\twine