Skip to main content

Grep-like filter for the Beancount plain text accounting system

Project description

CI status

Beangrep - grep-like filter for Beancount

Beangrep is a grep-like filter for the Beancount plain text accounting system.

Installation

Prebuilt package

$ python3 -m venv ./venv    # optional but recommended
$ source venv/bin/activate

$ pip install beangrep
[...]
Successfully installed beancount-2.3.6 beangrep-...

$ bean-grep --help
Usage: bean-grep [OPTIONS] FILENAME
[...]

From source

$ git clone https://github.com/zacchiro/beangrep
$ cd beangrep

$ python3 -m venv ./venv    # optional but recommended
$ source venv/bin/activate

$ pip install -e .
[...]
Successfully installed beancount-2.3.6 beangrep-...

$ bean-grep --help
Usage: bean-grep [OPTIONS] FILENAME
[...]

Usage

The CLI says it all when invoked as bean-grep --help:

Usage: bean-grep [OPTIONS] [PATTERN] FILENAME...

  Search for entries matching given criteria in Beancount journals. Pretty
  print matching entries to standard output.

  Search criteria can be specified with the options below and/or providing an
  explicit ("smart") PATTERN. If given, PATTERN is interpreted either as a
  date (if it is in the "YYYY-MM-DD" format), tag ("#tag"), link ("^link"),
  account (start with an account type, e.g., "Assets", "Income", etc.),
  metadata pair ("key:value"), or string to be matched anywhere (see
  -s/--somewhere below), in this order. If PATTERN is not given, search
  criteria are defined by explicit options.

  Multiple options and/or PATTERN are logically joined (AND-ed) together. In
  case of overlap, explicit options override PATTERN.

  The granularity of matching (and results) is that of individual entries,
  e.g., full transactions, balances, notes, etc. By default only transactions
  are returned; use the --type/-T option to override.

  To read from standard input, pass "-" as FILENAME, but beware that it
  implies on-disk buffering of stdin.

Options:
  -a, --account REGEX             Only return entries referencing accounts
                                  with names matching given regex.
  -A, --amount "[OP]AMOUNT [REGEX]"
                                  Only return entries with amounts matching
                                  the given amount predicate. An amount
                                  predicate start with an optional comparison
                                  operator (one of '<', '<=', '=', '>=', '>',
                                  with '=' being the default), followed by a
                                  decimal number (using '.' as decimal
                                  separator), followed by an optional currency
                                  regex. Multiple amount predicates can be
                                  given to express complex amount ranges.
  -d, --date [OP]DATE             Only return entries with dates matching the
                                  given date predicate. A date predicate start
                                  with an optional comparison operator (one of
                                  '<', '<=', '=', '>=', '>', with '=' being
                                  the default), and is followed by a date in
                                  the form YYYY-[MM[-DD]]. Multiple date
                                  predicates can be given to express complex
                                  date ranges.
  -l, --link REGEX                Only return entries with at least one link
                                  matching given regex.
  -m, --meta, --metadata REGEX[:REGEX]
                                  Only return entries with at least one
                                  metadata key/value pair matching given
                                  pattern. A pattern is a pair of regexs
                                  separated by ':', the former matching on
                                  metadata key, the latter on metadata value.
                                  The second regex is optional and defaults to
                                  '.*'.
  -n, --narration REGEX           Only return entries whose narrations match
                                  given regex.
  -p, --payee REGEX               Only return entries whose payees match given
                                  regex.
  -s, --somewhere, --anywhere REGEX
                                  Only return entries with a value in them,
                                  anywhere, matching given regex.
  -t, --tag REGEX                 Only return entries with at least one tag
                                  matching given regex. The tag can be located
                                  anywhere.
  -T, --type TYPE(S)              Only return entries of certain types. Types
                                  are specified as a ','-separated list of
                                  type names; type names are: open, close,
                                  commodity, pad, balance, transaction, note,
                                  event, query, price, document, custom. The
                                  special value 'all' means: all directive
                                  types. [default: transaction]
  -i, --ignore-case / --no-ignore-case
                                  Ignore case distinctions in string matches.
                                  [default: no-ignore-case]
  --posting-tags-meta TEXT        Metadata key used to attach tags to
                                  transaction postings.  [default: tags]
  -q, --quiet / --no-quiet        Quiet, do not write anything to standard
                                  output. Exit successfully immediately if any
                                  match is found.  [default: no-quiet]
  --skip-internals / --no-skip-internals
                                  When matching, ignore internal information
                                  not visible in the ledger. This includes the
                                  automatic metadata: ['filename', 'lineno']
                                  [default: skip-internals]
  --verbose                       Increase logging verbosity. Default
                                  verbosity is at WARNING level; passing this
                                  option once will increase it to INFO, twice
                                  or more to DEBUG.
  -V, --version                   Show the version and exit.
  --help                          Show this message and exit.

  Exit status is 0 (success) if a match is found, 1 if no match is found, 2 if
  an error occurred.

Author

License

Beangrep is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

A copy of the GNU General Public License is distributed with Beangrep as well as from the official license page.

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

beangrep-0.4.0.tar.gz (53.4 kB view details)

Uploaded Source

Built Distribution

beangrep-0.4.0-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file beangrep-0.4.0.tar.gz.

File metadata

  • Download URL: beangrep-0.4.0.tar.gz
  • Upload date:
  • Size: 53.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.2

File hashes

Hashes for beangrep-0.4.0.tar.gz
Algorithm Hash digest
SHA256 e576ba1fd7d69cb1a38471001b8b58076d85af96e421af38bab413af3f3043cb
MD5 f189a512640d1f82637987f7e0ab07a6
BLAKE2b-256 326a7cc2700d516e7caccc995e071dd32cf7f1f77992bd6cab9c531f10dc0832

See more details on using hashes here.

File details

Details for the file beangrep-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: beangrep-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.2

File hashes

Hashes for beangrep-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e3d23705100a1764163f73bf3bb4eee319970553755b64f02e19cb770f8ac97
MD5 9123484cc6b428dfee2ecd39fa047d99
BLAKE2b-256 e40daeea47857b8b7591dac9bc867a617f539ac31a20965c5bcbdd234a02b359

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