This lets you, for example, debug registers that cull data from many
different sources, without having to change the basic formatting
string. You can locate each posting's location with this:
ledger reg --prepend-format='%-25(filename + ":" + beg_line)'
This fits better with the --amount and --total options, which both
change the amount and total used for calculation. Same with --account:
it happens after filtering, but before calculation so that balance
reports look as you'd expect.
The different namespaces are:
Function Value expression functions, which receive a "context"
Option Command-line options
Precommand Commands which are invoked before reading the journal
Command Commands which are invoked after reading the journal
Directive Directives that occur at column 0 in a data file
This greatly eases the ability for Python uses to add intercept hooks to
change how the basic Ledger module functions. An example of what should
be possible soon:
import ledger
def my_foo_handler(value):
print "--foo received:", value
ledger.add_handler(ledger.Option, "foo=", my_foo_handler)
It is now a full parser that parses report queries directly into value
expression trees. These then get rendered into text so that other
options may extend the expression.
Because --daily is more commonly desired, and fits the pattern of the
other periodic switches:
-D --daily
-W --weekly
-M --monthly
-Y --yearly
Only --quarterly doesn't have its own short option.
This sets Ledger's notion of the "current time" to the given date. This
makes it possible to have stable output from budgeting and forecasting
reports, for the sake of baseline tests.
Note that sorting on the "total" is not the same thing as sorting on the
"display_total" when multiple commodities are in use and the -X flag is
selected! One should always sort on display_total, since that's the
value which is shown in the report. 'T' is a synonym for display_total.
This option reports only in terms of the annotated price of the
commodities involved, otherwise it reports the amounts themselves. It
can be used in conjunction with other reports, as it applies to the
displayed amounts, not the actual amounts being calculated.
The problem at this point is that it's recording prices in the price
database multiple times; it should only need to download a price for
each commodity once per day.