Skip to main content

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)

Release files for beancount-docverif 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for beancount-docverif 1.0.1
File Size Uploaded
beancount_docverif-1.0.1.tar.gz 25.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for beancount-docverif 1.0.1
File Interpreter ABI Platform
beancount_docverif-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 30.1 kB

Release files / beancount_docverif-1.0.1.tar.gz

Download URL beancount_docverif-1.0.1.tar.gz
Size 25.4 kB
Tags Source
SHA-256 checksum
How to use checksums
08506fd4564fe493bed4c3e70fceadb6b3b8db3665bc4d79ef3aa283bb381ce8
BLAKE2b-256 checksum
How to use checksums
191ab10bf6e92abcfe54531b21b24f8054c744ccceea7b0a77bb6fe8208de5b4
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / beancount_docverif-1.0.1-py3-none-any.whl

Download URL beancount_docverif-1.0.1-py3-none-any.whl
Size 4.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e8a797b8df5eb3219f71cb6dd0dd1b97d783d7cee925cbf91fde8fa07ae8785e
BLAKE2b-256 checksum
How to use checksums
91cdd5dbed6c376c4a5da292112ecf77838d82be3ca0a9c60e93923279e4c601
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page