Standalone Lark based Beancount syntax parser (not relying on Beancount library), MIT license
Project description
beancount-parser ![CircleCI](https://pypi-camo.freetls.fastly.net/7c98ce7941776834a4faf2c75fb8884ea8457ef4/68747470733a2f2f636972636c6563692e636f6d2f67682f4c61756e6368506c6174666f726d2f6265616e636f756e742d7061727365722f747265652f6d61737465722e7376673f7374796c653d737667)
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
Hashes for beancount_parser-1.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f096a4422060cf262a9266e5e42e2d80fd6bd2d2739f2ff2a0851817e7e6c10 |
|
MD5 | 444313d2dfb85e5c6bbbdd9a35861550 |
|
BLAKE2b-256 | d4fd2228c707cc97752eaf654916e72e28f277711329a94eb94945ae57fabd36 |