Pular para o conteúdo principal

Uma postagem marcado com "Beancount v3"

Ver todas as tags

Beancount v3: O Que Há de Novo?

· 4 min de leitura
Mike Thrift
Mike Thrift
Marketing Manager

A versão 3 do Beancount, lançada em meados de 2024, marca uma evolução arquitetônica significativa para a popular ferramenta de contabilidade em texto simples. Embora mantenha a compatibilidade retroativa para os arquivos de livro-razão do usuário, a estrutura subjacente e as ferramentas que a acompanham passaram por mudanças substanciais. Aqui está um resumo das novidades no Beancount v3.

Uma Arquitetura Mais Modular e Otimizada

O que há de novo no Beancount v3

A mudança mais significativa no Beancount v3 é a transição para um ecossistema mais modular. Várias funcionalidades-chave que antes eram agrupadas com o núcleo foram desmembradas em projetos separados e independentes. Isso torna o núcleo do Beancount mais enxuto e permite um desenvolvimento mais focado em componentes individuais.

Os principais componentes que agora são pacotes separados incluem:

  • beanquery: A poderosa ferramenta de consulta semelhante a SQL para seus arquivos de livro-razão agora está em seu próprio pacote.
  • beangulp: Este é o novo lar para o framework de importação de dados, substituindo o antigo módulo beancount.ingest.
  • beanprice: Uma ferramenta dedicada para buscar preços de commodities e ações.

Essa separação significa que os usuários precisarão instalar esses pacotes além do próprio beancount para reter a funcionalidade completa à qual estavam acostumados na versão 2.

Mudanças nas Ferramentas de Linha de Comando e Fluxos de Trabalho

Refletindo a nova arquitetura modular, há algumas mudanças notáveis nas ferramentas de linha de comando:

  • bean-report foi removido: Esta ferramenta foi removida. Os usuários agora são encorajados a usar bean-query (do pacote beanquery) para suas necessidades de relatórios.
  • Novo Fluxo de Trabalho de Importador: Os comandos bean-extract e bean-identify foram removidos do núcleo. A nova abordagem com beangulp é baseada em scripts. Os usuários agora criarão seus próprios scripts Python para lidar com a importação de dados de fontes externas, como extratos bancários.

Melhorias de Sintaxe e Recursos

Embora os princípios contábeis centrais permaneçam os mesmos, o Beancount v3 introduz alguma flexibilidade bem-vinda à sua sintaxe:

  • Códigos de Moeda Mais Flexíveis: As restrições anteriores sobre o comprimento e os caracteres para nomes de moedas foram relaxadas. Símbolos de moeda de um único caractere agora são suportados.
  • Sinalizadores de Transação Expandidos: Os usuários agora podem usar qualquer letra maiúscula de A a Z como um sinalizador para transações, permitindo uma categorização mais granular.

É importante ressaltar que essas mudanças são compatíveis com versões anteriores, então seus arquivos de livro-razão Beancount v2 existentes funcionarão sem modificações.

A Reescrita em C++ e Desempenho

Um dos objetivos de longo prazo para o Beancount tem sido a reescrita de seus componentes críticos de desempenho em C++. Embora este trabalho esteja em andamento, o lançamento inicial do Beancount v3 não inclui o núcleo baseado em C++. Isso significa que, por enquanto, o desempenho do v3 é comparável ao do v2. O código C++ permanece em um branch de desenvolvimento separado para integração futura.

Migrando de v2 para v3

Para a maioria dos usuários, a migração do Beancount v2 para o v3 é relativamente simples:

  1. Arquivos de Livro-Razão: Nenhuma alteração é necessária para seus arquivos .beancount.
  2. Instalação: Você precisará instalar os novos pacotes separados, como beanquery e beangulp, usando pip.
  3. Scripts de Importação: Se você tiver importadores personalizados, precisará atualizá-los para usar a nova API beangulp. Isso envolve principalmente a alteração da classe base da qual seus importadores herdam e o ajuste de algumas assinaturas de método.
  4. Fava: A popular interface web para Beancount, Fava, foi atualizada para ser compatível com o v3. Certifique-se de ter a versão mais recente do Fava para uma experiência perfeita.

Em essência, o Beancount v3 é um lançamento fundamental que otimiza a arquitetura do projeto, tornando-o mais modular e fácil de manter e estender a longo prazo. Embora exija alguns ajustes nos fluxos de trabalho do usuário, especialmente em torno da importação de dados, ele prepara o terreno para o desenvolvimento futuro desta poderosa ferramenta de contabilidade.