Beancount v3: Čo je nové?
Beancount verzia 3, vydaná v polovici roka 2024, predstavuje významnú architektonickú evolúciu populárneho nástroja na účtovníctvo v obyčajnom texte. Hoci si zachováva spätnú kompatibilitu pre používateľské účtovné súbory, základná štruktúra a sprievodné nástroje prešli podstatnými zmenami. Tu je prehľad noviniek v Beancount v3.
Modulárnejšia a zjednodušená architektúra
Najvýznamnejšou zmenou v Beancount v3 je prechod na modulárnejší ekosystém. Niekoľko kľúčových funkcionalít, ktoré boli predtým súčasťou jadra, bolo vyčlenených do samostatných, nezávislých projektov. Vďaka tomu je jadro Beancount štíhlejšie a umožňuje sústredenejší vývoj jednotlivých komponentov.
Kľúčové komponenty, ktoré sú teraz samostatnými balíkmi, zahŕňajú:
- beanquery: Výkonný nástroj na dopytovanie podobný SQL pre vaše účtovné súbory je teraz vo vlastnom balíku.
- beangulp: Toto je nový domov pre framework na import dát, nahrádzajúci bývalý modul
beancount.ingest
. - beanprice: Vyhradený nástroj na získavanie cien komodít a akcií.
Toto oddelenie znamená, že používatelia si budú musieť nainštalovať tieto balíky okrem samotného beancount
, aby si zachovali plnú funkcionalitu, na ktorú boli zvyknutí vo verzii 2.
Zmeny v nástrojoch príkazového riadka a pracovných postupoch
V súlade s novou modulárnou architektúrou došlo k niekoľkým významným zmenám v nástrojoch príkazového riadka:
bean-report
bol odstránený: Tento nástroj bol odstránený. Používateľom sa teraz odporúča používaťbean-query
(z balíkabeanquery
) pre ich potreby reportingu.- Nový pracovný postup importéra: Príkazy
bean-extract
abean-identify
boli odstránené z jadra. Nový prístup sbeangulp
je založený na skriptoch. Používatelia si teraz budú vytvárať vlastné Python skripty na spracovanie importu dát z externých zdrojov, ako sú bankové výpisy.
Vylepšenia syntaxe a funkcií
Hoci základné účtovné princípy zostávajú rovnaké, Beancount v3 prináša vítanú flexibilitu do svojej syntaxe:
- Flexibilnejšie kódy mien: Predchádzajúce obmedzenia dĺžky a znakov pre názvy mien boli uvoľnené. Teraz sú podporované aj jednoznakovné symboly mien.
- Rozšírené príznaky transakcií: Používatelia môžu teraz použiť akékoľvek veľké písmeno od A po Z ako príznak pre transakcie, čo umožňuje podrobnejšiu kategorizáciu.
Dôležité je, že tieto zmeny sú spätne kompatibilné, takže vaše existujúce účtovné súbory Beancount v2 budú fungovať bez akýchkoľvek úprav.
Prepísanie v C++ a výkon
Jedným z dlhodobých cieľov pre Beancount bolo prepísanie jeho výkonovo kritických komponentov v C++. Hoci táto práca prebieha, počiatočné vydanie Beancount v3 neobsahuje jadro založené na C++. To znamená, že zatiaľ je výkon v3 porovnateľný s v2. Kód v C++ zostáva v samostatnej vývojovej vetve pre budúcu integráciu.
Migrácia z v2 na v3
Pre väčšinu používateľov je migrácia z Beancount v2 na v3 pomerne jednoduchá:
- Účtovné súbory: Pre vaše súbory
.beancount
nie sú potrebné žiadne zmeny. - Inštalácia: Budete si musieť nainštalovať nové, samostatné balíky ako
beanquery
abeangulp
pomocoupip
. - Skripty importéra: Ak máte vlastné importéry, budete ich musieť aktualizovať, aby používali nové API
beangulp
. To zahŕňa hlavne zmenu základnej triedy, z ktorej vaši importéri dedia, a úpravu niektorých podpisov metód. - Fava: Populárne webové rozhranie pre Beancount, Fava, bolo aktualizované, aby bolo kompatibilné s v3. Uistite sa, že máte najnovšiu verziu Fava pre bezproblémový zážitok.
V podstate je Beancount v3 základným vydaním, ktoré zefektívňuje architektúru projektu, čím ho robí modulárnejším a ľahšie udržiavateľným a rozšíriteľným z dlhodobého hľadiska. Hoci si vyžaduje určité úpravy používateľských pracovných postupov, najmä v oblasti importu dát, pripravuje pôdu pre budúci vývoj tohto výkonného účtovného nástroja.