8000 GitHub - tbm/beangrep: Beangrep - grep-like filter for Beancount
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ beangrep Public
forked from zacchiro/beangrep

Beangrep - grep-like filter for Beancount

License

Notifications You must be signed in to change notification settings

tbm/beangrep

 
 

Repository files navigation

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 a Beancount ledger. 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"),
  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 rege
63CB
x.
  -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 succesfully 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]
  -v, --verbose                   Increase logging verbosity. Default level is
                                  WARNING. Passing this option once (e.g., -v)
                                  will increase it to INFO, twice or more
                                  (e.g., -vv) to DEBUG.
  --help                          Show this message and exit.

  Exit status is 0 (sucess) 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.

About

Beangrep - grep-like filter for Beancount

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.9%
  • Shell 1.1%
0