On Tue, Apr 4, 2023 at 6:45 PM Archimedes Smith <seiar...@gmail.com> wrote:
> (reposting as the previous reply somehow got deleted) > Somehow you got caught by the spam filter. I whitelisted you. > > Thanks Martin for flagging this. > > I thought I replicated the full v2 syntax except out-of-line tags / links > in transaction but apparently I missed that note also supports tags / > links, which is now added. Can you try upgrading autobean-refactor to 0.2.3 > and see if it works? > > Also, behind `--sort` is a non-standard O(N^2) algorithm which probably > won't work with this huge file with 68996+ lines. It could be made O(N > logN) but I just didn't think about files of that size... > > On Saturday, April 1, 2023 at 4:10:50 PM UTC+1 bl...@furius.ca wrote: > >> 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 <seia...@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+...@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/f07d53c7-4405-4417-89b3-f55d1e39f5abn%40googlegroups.com > <https://groups.google.com/d/msgid/beancount/f07d53c7-4405-4417-89b3-f55d1e39f5abn%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%2BhOXNiUERyZkHENr%2BwYZEzgGAMGp%2B%2Bkx%2Bb7Y57AbaBJLQQ%40mail.gmail.com.