Added to the contrib doc, thank you for this, FYI I gave it a spin and hit this error, probably just needs an adjustment on your parser:
lumia [git|main]:~/src/.../SEIAROTg/autobean-format$ autobean-format $L Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/lark/lexer.py", line 590, in lex yield lexer.next_token(lexer_state, parser_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/lark/lexer.py", line 528, in next_token raise UnexpectedCharacters(lex_state.text, line_ctr.char_pos, line_ctr.line, line_ctr.column, lark.exceptions.UnexpectedCharacters: No terminal matches '^' in the current parser context, at line 68996 col 73 rade:Main:Cash "Intra-Account Transfer" ^td-25441737451 ^ Expected one of: * WHITESPACE * _NEWLINE_INDENT_COMMENT * INLINE_COMMENT * _NEWLINE * BLOCK_COMMENT * INDENT Previous tokens: Token('WHITESPACE', ' ') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/local/bin/autobean-format", line 8, in <module> sys.exit(main()) ^^^^^^ File "/usr/local/lib/python3.11/site-packages/autobean_format/main.py", line 79, in main for file in formatter.load_files(filename): File "/usr/local/lib/python3.11/site-packages/autobean_format/main.py", line 45, in load_files model = self._parser.parse(text, models.File) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/autobean_refactor/parser.py", line 135, in parse return self._parse(text, target, self._lark) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/autobean_refactor/parser.py", line 156, in _parse for token in parser.lexer_thread.lex(parser.parser_state): File "/usr/local/lib/python3.11/site-packages/autobean_refactor/parser.py", line 54, in process for token in stream: File "/usr/local/lib/python3.11/site-packages/lark/lexer.py", line 599, in lex raise UnexpectedToken(token, e.allowed, state=parser_state, token_history=[last_token], terminals_by_name=self.root_lexer.terminals_by_name) lark.exceptions.UnexpectedToken: Unexpected token Token('LINK', '^td-25441737451') at line 68996, column 73. Expected one of: * WHITESPACE * _NEWLINE_INDENT_COMMENT * INLINE_COMMENT * _NEWLINE * BLOCK_COMMENT * INDENT Previous tokens: [Token('WHITESPACE', ' ')] On Fri, Mar 31, 2023 at 6:25 PM Archimedes Smith <seiar...@gmail.com> wrote: > Hi beancounters, > > I've written yet another formatter for beancount, autobean-format > <https://github.com/SEIAROTg/autobean-format>, powered by my earlier > project autobean-refactor <https://github.com/SEIAROTg/autobean-refactor>, > a library for parsing and programmatically manipulating beancount files. > > Highlights: > > - Deep cleanup > - Unlike bean-format which is regex-based, autobean-format is based > on a proper parser, allowing it to format every corner of your ledger, > including *arithmetic expressions*. > - Recursive formatting > - Optionally formats all included files. > - Honors glob include. > - Sort entries > - Optionally sorts dated entries. > - Honors "time" meta (HH:MM, HH:MM:SS, epoch seconds, epoch ms, > epoch us). > - Honors pushtag / pushmeta. > - Preserves existing comments, structure, and ordering whenever > possible. > - Preview-able > - Optionally prints diff. > - Thousands separators. > - Optionally add, remove, or keep (default) thousands separators. > - Typed and extensible > - For example, the code for supporting thousands separator is as > simple as this > > <https://github.com/SEIAROTg/autobean-format/blob/main/autobean_format/formatters/number.py> > . > > Please check out autobean-format > <https://github.com/SEIAROTg/autobean-format> if you are interested. Bug > reports / suggestions / contributions are appreciated. > > Regards, > SEIAROTg > > -- > 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 on the web visit > https://groups.google.com/d/msgid/beancount/962be409-86aa-4fed-859e-2ff983fe0d95n%40googlegroups.com > <https://groups.google.com/d/msgid/beancount/962be409-86aa-4fed-859e-2ff983fe0d95n%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 on the web visit https://groups.google.com/d/msgid/beancount/CAK21%2BhM38ZStM7VL_BCu1riWghviJjqOMf94C_Gy%2BXp9ym-rzw%40mail.gmail.com.