Standalone Lark based Beancount syntax parser (not relying on Beancount library), MIT license
Project description
beancount-parser
Standalone Lark LALR(1) based Beancount syntax parser (not relying on Beancount library), MIT license
Please also checkout out beancount-black, an opinionated beancount code formatter based on beancount-parser.
Features
- MIT licensed - the only dependency is Lark
- Extremely fast - LALR(1) is used
- Section awareness - emac org symbol mark
*
will be parsed - Comment awareness - comments will be parsed
- Not a validator - it does not validate beancount syntax, invalid beancount syntax may still pass the parsing
Sponsor
The original project beancount-parser was meant to be an internal tool built by Launch Platform LLC for
A modern accounting book service based on the most popular open source version control system Git and text-based double entry accounting book software Beancount. We realized adding new entries with BeanHub automatically over time makes the beancount file a mess. So, a strong code formatter is needed. While SaaS businesses won't be required to open-source an internal tool like this, we still love that the service is only possible because of the open-source tool we are using. It would be greatly beneficial for the community to access a tool like this, so we've decided to open-source it under an MIT license. We hope you find this tool useful 😄
Install
To install the parser, simply run
pip install beancount-parser
Usage
If you want to run the parse beancount code, you can do this
import io
from beancount_parser.parser import make_parser
parser = make_parser()
tree = parser.parse(beancount_content)
# do whatever you want with the tree here
Feedbacks
Feedbacks, bugs reporting or feature requests are welcome 🙌, just please open an issue. No guarantee we have time to deal with them, but will see what we can do.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file beancount_parser-1.2.3.tar.gz
.
File metadata
- Download URL: beancount_parser-1.2.3.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.10.11 Linux/5.15.0-1056-aws
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c24208d4561e5bd5ed4e544b1cd77afcf7b309211f32f7927585ef525c13578d |
|
MD5 | da61bd2b915917ea287c951b27b08f15 |
|
BLAKE2b-256 | a436a9bc86adb1319fba231dd9dcfca75c31f9e7dd7495260978d102ce506548 |
File details
Details for the file beancount_parser-1.2.3-py3-none-any.whl
.
File metadata
- Download URL: beancount_parser-1.2.3-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.10.11 Linux/5.15.0-1056-aws
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d8415a06dbd9fe07170071fdb45e7063c6e81239ee48bda46292ce9d1bd68dc |
|
MD5 | 71bc70f307cb75718d710ddd3c778d40 |
|
BLAKE2b-256 | 77fff0efb163d3a9614fe9d7c477556cd788599d45ba6629e6df91764ad05f91 |