Skip to main content

Standalone Lark based Beancount syntax parser (not relying on Beancount library), MIT license

Project description

beancount-parser CircleCI

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

BeanHub logo

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beancount_parser-1.2.3.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

beancount_parser-1.2.3-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

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

Hashes for beancount_parser-1.2.3.tar.gz
Algorithm Hash digest
SHA256 c24208d4561e5bd5ed4e544b1cd77afcf7b309211f32f7927585ef525c13578d
MD5 da61bd2b915917ea287c951b27b08f15
BLAKE2b-256 a436a9bc86adb1319fba231dd9dcfca75c31f9e7dd7495260978d102ce506548

See more details on using hashes here.

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

Hashes for beancount_parser-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8d8415a06dbd9fe07170071fdb45e7063c6e81239ee48bda46292ce9d1bd68dc
MD5 71bc70f307cb75718d710ddd3c778d40
BLAKE2b-256 77fff0efb163d3a9614fe9d7c477556cd788599d45ba6629e6df91764ad05f91

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page