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. Explictly 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  "bad_beantools.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-0.1.0.tar.gz (24.7 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-0.1.0-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: beancount_docverif-0.1.0.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200531 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for beancount_docverif-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f0db7e5cb5e01e75de23ece467fba4d997a6c994f8130c37a40b6de0094614f6
MD5 534b85324170aa5774c0bd110293d8ae
BLAKE2b-256 fcc600ca797344650396b9a68128f4501822bb20567b79839189c52ff5e3c13c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beancount_docverif-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200531 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for beancount_docverif-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1271e982d8803f09a49915f0b29f1c3230285b2ac6ffd1950c0f474b026d449
MD5 d950c482914c271ed3baa009b6531b01
BLAKE2b-256 b52c3238d98fb13fe985dd9400681e0403153c657020e46e1db56fd7e49988ad

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