ledger/contrib/trend
2009-02-23 14:04:50 -04:00

30 lines
671 B
Bash
Executable file

#!/bin/sh
# This script requires Python support.
#
# To use, just run "trend" with the accounts to compute the trend for:
#
# trend dining
#
# The trend values are not terribly meaningful, but this gives an
# example of how Python can be used to create more complex reports.
ledger --import-stdin -T "@rdev()" reg "$@" <<EOF
import ledger
mean = ledger.parse_value_expr ("AT")
last_mean = None
last_dev = None
def rdev (details):
global last_mean, last_dev
mval = mean.compute (details)
if last_mean is None:
dev = ledger.Value ()
else:
dev = mval - last_mean
dev = (last_dev + dev) / 2
last_mean = mval
last_dev = dev
return dev
EOF