I’ve found autobean-format to be extremely useful. https://github.com/SEIAROTg/autobean-format#examples — Brian Lalor (he/him) bla...@bravo5.org
> On Jun 17, 2025, at 1:58 AM, Paul Walker <wpau...@gmail.com> wrote: > > Interesting! I had my own need for this recently, but with a requirement to > "fix" currency columns/spacing. The script gets pretty short if you leverage > some internal methods, but this also ends up stripping comments and filling > in empty/inferred posting amounts. It looks like yours would preserve more > context by more or less splitting on date. I ended up with this plus some > messy logic to regextract my fava currency-column option: > > import sys > from beancount.loader import load_file > from beancount.parser import printer > from beancount.scripts import format > > def main(file): > entries, errors, options = load_file(file) > > entries_sorted = sorted(entries, key=lambda x: x.date) > > # Or if you don't need formatting, just > printer.print_entries(entries_sorted, file=file) > with open(file, 'w') as f: > # Enumerate to get "last" entry to skip extra inter-directive newline > for i, entry in enumerate(entries_sorted): > printed = printer.format_entry(entry) > # Align the printed entry with a currency column, set or grab > from options (e.g. Fava) > formatted = format.align_beancount(printed, currency_column=61) > f.write(formatted) > if i != len(entries_sorted) - 1: > f.write('\n') > > if __name__ == "__main__": > if len(sys.argv) != 2: > print("Usage: python bean-sort.py <beancount-file>") > sys.exit(1) > main(sys.argv[1]) > > Thanks for sharing! > Paul > > On Monday, June 16, 2025 at 9:56:26 PM UTC-4 Simon Guest wrote: >> And now the repo is public. 🤭 >> >> On Tue, 17 Jun 2025 at 12:23, Simon Guest <s...@cantab.net <>> wrote: >>> I made a naive sorting utility for Beancount. I hunted for such a thing >>> and failed to find one, which surprised me. >>> >>> Anyway, it was quicker to write a few lines of Python than keep wondering >>> whether or why this hadn't been done before. >>> >>> Here in case it helps anyone else. >>> >>> https://github.com/tesujimath/bean-sort >>> >>> cheers, >>> Simon > > > -- > You received this message because you are subscribed to the Google Groups > "Beancount" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to beancount+unsubscr...@googlegroups.com > <mailto:beancount+unsubscr...@googlegroups.com>. > To view this discussion visit > https://groups.google.com/d/msgid/beancount/4dc9dbe6-31f8-4ed3-909b-9bf053b48b94n%40googlegroups.com > > <https://groups.google.com/d/msgid/beancount/4dc9dbe6-31f8-4ed3-909b-9bf053b48b94n%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "Beancount" group. To unsubscribe from this group and stop receiving emails from it, send an email to beancount+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/beancount/4BC3E9D6-BA40-4883-B684-1DB8C4EBEE23%40bravo5.org.