Beancount v3: O Que Há de Novo?
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
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 usarbean-query
(do pacotebeanquery
) para suas necessidades de relatórios.- Novo Fluxo de Trabalho de Importador: Os comandos
bean-extract
ebean-identify
foram removidos do núcleo. A nova abordagem combeangulp
é 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:
- Arquivos de Livro-Razão: Nenhuma alteração é necessária para seus arquivos
.beancount
. - Instalação: Você precisará instalar os novos pacotes separados, como
beanquery
ebeangulp
, usandopip
. - 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. - 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.