/contrib/trend

http://github.com/jwiegley/ledger · Shell · 30 lines · 17 code · 4 blank · 9 comment · 1 complexity · 182f15b3dd5678387c516477d4132048 MD5 · raw file

  1. #!/bin/sh
  2. # This script requires Python support.
  3. #
  4. # To use, just run "trend" with the accounts to compute the trend for:
  5. #
  6. # trend dining
  7. #
  8. # The trend values are not terribly meaningful, but this gives an
  9. # example of how Python can be used to create more complex reports.
  10. ledger --import-stdin -T "@rdev()" reg "$@" <<EOF
  11. import ledger
  12. mean = ledger.parse_value_expr ("AT")
  13. last_mean = None
  14. last_dev = None
  15. def rdev (details):
  16. global last_mean, last_dev
  17. mval = mean.compute (details)
  18. if last_mean is None:
  19. dev = ledger.Value ()
  20. else:
  21. dev = mval - last_mean
  22. dev = (last_dev + dev) / 2
  23. last_mean = mval
  24. last_dev = dev
  25. return dev
  26. EOF