Yet another formatter for beancount
Project description
autobean-format
Yet another formatter for beancount.
Features
- Deep cleanup.
- Normalizes all spacing.
- Full beancount v2 syntax support (except out-of-line tags / links in
transaction
).
- Currency / cost aligning.
- Works for
open
,balance
,price
and posting.
- Works for
- Entry sorting.
- Honors
pushtag
/pushmeta
. - Honors
time
meta (HH:MM
/HH:MM:SS
/ epoch seconds / epoch ms / epoch us). - Preserves comments.
- Preserves existing structure and ordering whenever possible.
- Honors
- Thousands separator normalization.
- Adds / removes / keeps thousands separators.
- Recursive formatting.
- Recursively formats included files.
- Honors glob includes.
- Flexible output.
- Prints results / prints diff / writes back to file.
- Typed and extensible.
- For example, the code for thousands separators is as simple as this.
Usage
pip install autobean-format
# format and print results
autobean-format foo.bean
# format and write back to file
autobean-format foo.bean --output-mode=inplace
# format and print the diff
autobean-format foo.bean --output-mode=diff
# sort entries by date and time
autobean-format foo.bean --sort
# recursively format all included files
autobean-format foo.bean --recursive
# add thousands separators to all numbers
autobean-format foo.bean --thousands-separator=add
# see more options
autobean-format -h
Examples
autobean-format foo.bean \
--indent=' ' \
--currency-column=30 \
--cost-column=35 \
--thousands-separator=add \
--spaces-in-braces \
--sort \
--recursive \
--output-mode=inplace
Before | After |
---|---|
2000-01-01 open Assets:Foo USD,XXX
2000-01-01 * "foo" ^aa #bb
meta:123
Assets:Foo -1.23*4000USD ;X
Assets:Foo 1000 XXX {4.92 USD}
meta:456
include "price.*"
2000-01-02 balance Assets:Foo -4920USD
2000-01-02 balance Assets:Foo 1000XXX
2021-01-01 price EUR 1.21 USD
;inner comment
2021-01-04 price GBP 1.36 USD ; Y
;leading comment
2021-01-01 price JPY 0.009 USD
2020-01-01 price EUR 1.12 USD
2020-01-02 price GBP 1.32USD
2020-01-01 price JPY 0.009 USD
|
2000-01-01 open Assets:Foo USD, XXX
2000-01-01 * "foo" ^aa #bb
meta: 123
Assets:Foo -1.23 * 4,000 USD ; X
Assets:Foo 1,000 XXX { 4.92 USD }
meta: 456
include "price.*"
2000-01-02 balance Assets:Foo -4,920 USD
2000-01-02 balance Assets:Foo 1,000 XXX
2020-01-01 price EUR 1.12 USD
2020-01-01 price JPY 0.009 USD
2020-01-02 price GBP 1.32 USD
2021-01-01 price EUR 1.21 USD
; inner comment
; leading comment
2021-01-01 price JPY 0.009 USD
2021-01-04 price GBP 1.36 USD ; Y
|
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
autobean-format-0.1.5.tar.gz
(13.0 kB
view details)
Built Distribution
File details
Details for the file autobean-format-0.1.5.tar.gz
.
File metadata
- Download URL: autobean-format-0.1.5.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.8.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 928e951961cea732649dcd0883df62b6efb58f05a91927fb451a1940d8e501cd |
|
MD5 | 7bd027f05588cfbaac9c4631a989a51b |
|
BLAKE2b-256 | 86be0d584f09c59adf5448c7bc8ab29ac64d088c3358a1120c4f95e642f26174 |
File details
Details for the file autobean_format-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: autobean_format-0.1.5-py3-none-any.whl
- Upload date:
- Size: 18.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.8.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 700a4837b024bcff3fe4e5d3f86c28b68d628708cac21eb2138555b06d3c69dd |
|
MD5 | e0afdc16428dfe831d384526e014c17e |
|
BLAKE2b-256 | 5fb7924e2caeecd3eb16cf1f16bc8372706ff1de32c5ca405cf79091378ed702 |