Skip to main content

Document verification plugin for Beancount

Project description

Beancount Docverif Build Status

Docverif is the "Document Verification" plugin for beancount, fulfilling the following functions:

  1. Require that every transaction touching an account have an accompanying document on disk:

    2000-01-01  open  Expenses:General BEAN
      docverif: "Require"
    
  2. Explicitly declare the name of a document accompanying a transaction:

    ; Document entry pointing to a working document: should validate correctly
    2020-06-01  *   "plumber"   "fix faucet leak"
      document: "2020-06-01.plumber - services.pdf"
      Expenses:General
      Assets:Bank -150 BEAN
    
  3. Explicitly declare that a transaction is expected not to have an accompanying document:

    ; Explicit "None" document: should ignore missing document
    2020-06-01  *   "store" "groceries"
      document: "None"
      Expenses:General
      Assets:Bank -10 BEAN
    
  4. Look for an "implicit" PDF document matching transaction data:

    ; Document entry without an explicit "document" entry,
    ; should implicitly match document: "2020-06-01.plumber - services.pdf"
    2020-06-01  *   "plumber"   "services"
      Expenses:General
      Assets:Bank -150 BEAN
    
  5. Associate (and require) a document with any type of entry, including open entries themselves:

    2000-01-01  open    Assets:Bank BEAN
      docverif: "Require"
      document: "2020-06-01.plumber - services.pdf"
    
  6. Guarantee integrity: verify that every document declared does in fact exist on disk.

Installation

pip install beancount_docverif

Usage

In your toplevel .beancount file, include:

plugin  "beancount_docverif"
option  "documents" "./"

See the .beancount files in test for examples.

Developing

Install package and dev requirements locally:

python3 -m pip install -e .[dev]

Run tests:

python3 -m pytest

Build both binary and source distributions locally:

python3 setup.py bdist_wheel sdist

See sanitize.sh for maintainer's personal tooling.

Beancount Quirks

  1. We depend on beancount itself finding documents and auto-generating Document entries. This requires a documents option in the beancount file itself, eg:

    option "documents" "./"
    
  2. Subdirectory format TODO

  3. Fictitious TODO

  4. Filename must be valid (eg. "broken.pdf" is out)

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_docverif-1.0.1.tar.gz (25.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

beancount_docverif-1.0.1-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file beancount_docverif-1.0.1.tar.gz.

File metadata

  • Download URL: beancount_docverif-1.0.1.tar.gz
  • Upload date:
  • Size: 25.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

File hashes

Hashes for beancount_docverif-1.0.1.tar.gz
Algorithm Hash digest
SHA256 08506fd4564fe493bed4c3e70fceadb6b3b8db3665bc4d79ef3aa283bb381ce8
MD5 11c79e70ea915651aff22842c042be0f
BLAKE2b-256 191ab10bf6e92abcfe54531b21b24f8054c744ccceea7b0a77bb6fe8208de5b4

See more details on using hashes here.

File details

Details for the file beancount_docverif-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: beancount_docverif-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

File hashes

Hashes for beancount_docverif-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e8a797b8df5eb3219f71cb6dd0dd1b97d783d7cee925cbf91fde8fa07ae8785e
MD5 230a3f9ca1fe48067e5c31203405229e
BLAKE2b-256 91cdd5dbed6c376c4a5da292112ecf77838d82be3ca0a9c60e93923279e4c601

See more details on using hashes here.

Supported by

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