Beancount v3: Какво е новото?
Beancount версия 3, пусната в средата на 2024 г., отбелязва значителна архитектурна еволюция за популярния инструмент за счетоводство в обикновен текст. Въпреки че поддържа обратна съвместимост за потребителските файлове с регистри, основната структура и придружаващите инструменти са претърпели съществени промени. Ето преглед на новостите в Beancount v3.
По-модулна и оптимизирана архитектура
Най-значителната промяна в Beancount v3 е преминаването към по-модулна екосистема. Няколко ключови функционалности, които преди това бяха пакетирани с ядрото, са отделени в самостоятелни, независими проекти. Това прави ядрото на Beancount по-леко и позволява по-фокусирано развитие на отделни компоненти.
Ключовите компоненти, които сега са отделни пакети, включват:
- beanquery: Мощният SQL-подобен инструмент за заявки за вашите файлове с регистри вече е в собствен пакет.
- beangulp: Това е новият дом за рамката за импортиране на данни, заместваща бившия модул
beancount.ingest. - beanprice: Специализиран инстр умент за извличане на цени на стоки и акции.
Това разделение означава, че потребителите ще трябва да инсталират тези пакети в допълнение към beancount сам по себе си, за да запазят пълната функционалност, с която са свикнали във версия 2.
Промени в инструментите на командния ред и работните потоци
Отразявайки новата модулна архитектура, има някои забележителни промени в инструментите на командния ред:
bean-reportе премахнат: Този инструмент е премахнат. Потребителите вече се насърчават да използватbean-query(от пакетаbeanquery) за своите нужди от отчети.- Нов работен поток за импортиране: Командите
bean-extractиbean-identifyса премахнати от ядрото. Новият подход сbeangulpе базиран на скриптове. Потребителите вече ще създават свои собствени Python скриптове за обработка на импортирането на данни от външни източници като банкови извлечения.
Подобрения в синтаксиса и функциите
Докато основните счетоводни принципи остават същите, Beancount v3 въвежда известна желана гъвкавост в своя синтаксис:
- По-гъвкави кодове на валути: Предишните ограничения за дължината и символите на имената на валутите са облекчени. Вече се поддържат едносимволни валутни символи.
- Разширени флагове за транзакции: Потребителите вече могат да използват всяка главна буква от А до Я като флаг за транзакции, което позволява по-детайлна категоризация.
Важно е, че тези промени са обратно съвместими, така че вашите съществуващи Beancount v2 файлове с регистри ще работят без никакви модификации.
Пренаписването на C++ и производителността
Една от дългосрочните цели за Beancount е пренаписването на неговите критични за производителността компоненти на C++. Докато тази работа продължава, първоначалната версия на Beancount v3 не включва ядрото, базирано на C++. Това означава, че засега производителността на v3 е сравнима с тази на v2. Кодът на C++ остава в отделен клон за разработка за бъдеща интеграция.
Миграция от v2 към v3
За повечето потребители миграцията от Beancount v2 към v3 е сравнително лесна:
- Файлове с регистри: Не са необходими промени за вашите
.beancountфайлове. - Инсталация: Ще трябва да инсталирате новите, отделни пакети като
beanqueryиbeangulpс помощта наpip. - Скриптове за импортиране: Ако имате персонализирани импортери, ще трябва да ги актуализирате, за да използват новия API на
beangulp. Това включва главно промяна на базовия клас, от който наследяват вашите импортери, и коригиране на някои сигнатури на методи. - Fava: Популярният уеб интерфейс за Beancount, Fava, е актуализиран, за да бъде съвместим с v3. Уверете се, че разполагате с най-новата версия на Fava за безпроблемно изживяване.
По същество Beancount v3 е фундаментална версия, която оптимизира архитектурата на проекта, правейки го по-модулен и по-лесен за поддръжка и разширяване в дългосрочен план. Въпреки че изисква някои корекции в работните потоци на потребителите, особено по отношение на импортирането на данни, тя поставя основите за бъдещото развитие на този мощен счетоводен инструмент.