Salta al contenuto principale

Beancount v3: Cosa c'è di nuovo?

Pubblicato Ultimo aggiornamento 4 minuti di letturaMike ThriftMike Thrift
Beancount v3: Cosa c'è di nuovo?

La versione 3 di Beancount, rilasciata a metà del 2024, segna un'evoluzione architetturale significativa per il popolare strumento di contabilità in testo semplice. Sebbene mantenga la retrocompatibilità per i file dei libri mastri degli utenti, la struttura sottostante e gli strumenti di accompagnamento hanno subito modifiche sostanziali. Ecco una panoramica delle novità di Beancount v3.

Un'architettura più modulare e snella

Il cambiamento più significativo in Beancount v3 è il passaggio a un ecosistema più modulare. Diverse funzionalità chiave che in precedenza erano raggruppate con il core sono state scorporate in progetti separati e indipendenti. Ciò rende il core di Beancount più snello e consente uno sviluppo più mirato sui singoli componenti.

I componenti chiave che ora sono pacchetti separati includono:

  • beanquery: Il potente strumento di interrogazione simile a SQL per i tuoi file del libro mastro ora è nel suo pacchetto.
  • beangulp: Questa è la nuova sede per il framework di importazione dati, che sostituisce il precedente modulo beancount.ingest.
  • beanprice: uno strumento dedicato per il recupero dei prezzi di materie prime e azioni.

Questa separazione significa che gli utenti dovranno installare questi pacchetti oltre a beancount stesso per mantenere la piena funzionalità a cui erano abituati nella versione 2.

Modifiche agli strumenti da riga di comando e ai flussi di lavoro

Riflettendo la nuova architettura modulare, ci sono alcune modifiche degne di nota agli strumenti da riga di comando:

  • bean-report non è più disponibile: questo strumento è stato rimosso. Ora si consiglia agli utenti di utilizzare bean-query (dal pacchetto beanquery) per le loro esigenze di reporting.
  • Nuovo flusso di lavoro per l'importazione: I comandi bean-extract e bean-identify sono stati rimossi dal core. Il nuovo approccio con beangulp è basato su script. Gli utenti ora creeranno i propri script Python per gestire l'importazione di dati da fonti esterne come estratti conto bancari.

Miglioramenti alla sintassi e alle funzionalità

Sebbene i principi contabili di base rimangano gli stessi, Beancount v3 introduce alcune gradite flessibilità alla sua sintassi:

  • Codici valuta più flessibili: Le precedenti restrizioni sulla lunghezza e sui caratteri per i nomi delle valute sono state allentate. Ora sono supportati i simboli di valuta a carattere singolo.
  • Flag di transazione ampliati: Gli utenti ora possono utilizzare qualsiasi lettera maiuscola dalla A alla Z come flag per le transazioni, consentendo una categorizzazione più granulare.

È importante notare che queste modifiche sono retrocompatibili, quindi i tuoi file di libro mastro esistenti di Beancount v2 funzioneranno senza alcuna modifica.

La riscrittura in C++ e le prestazioni

Uno degli obiettivi a lungo termine per Beancount è stata la riscrittura dei suoi componenti critici per le prestazioni in C++. Sebbene questo lavoro sia in corso, il rilascio iniziale di Beancount v3 non include il core basato su C++. Ciò significa che, per ora, le prestazioni di v3 sono paragonabili a v2. Il codice C++ rimane in un ramo di sviluppo separato per un'integrazione futura.

Migrazione dalla v2 alla v3

Per la maggior parte degli utenti, la migrazione da Beancount v2 a v3 è relativamente semplice:

  1. File del libro mastro: non sono necessarie modifiche per i tuoi file .beancount.
  2. Installazione: Dovrai installare i nuovi pacchetti separati come beanquery e beangulp usando pip.
  3. Script di importazione: Se hai importatori personalizzati, dovrai aggiornarli per utilizzare la nuova API di beangulp. Ciò comporta principalmente la modifica della classe base da cui ereditano i tuoi importatori e la regolazione di alcune firme di metodi.
  4. Fava: La popolare interfaccia web per Beancount, Fava, è stata aggiornata per essere compatibile con v3. Assicurati di avere l'ultima versione di Fava per un'esperienza senza intoppi.

In sostanza, Beancount v3 è un rilascio fondamentale che semplifica l'architettura del progetto, rendendolo più modulare e più facile da mantenere ed estendere a lungo termine. Sebbene richieda alcuni aggiustamenti ai flussi di lavoro degli utenti, specialmente per quanto riguarda l'importazione dei dati, getta le basi per lo sviluppo futuro di questo potente strumento contabile.

Condividi questo articolo