(reposting as the previous reply somehow got deleted)

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.

Reply via email to