Commit Graph

35 Commits

Author SHA1 Message Date
Simon Michael
4567e91409 refactor: move amount display settings out of commodity, simplify amount construction 2012-11-19 21:20:10 +00:00
Simon Michael
00f22819ae balance report speedup
This refactoring fixes an O(n^2) slowdown in the balance command with
large numbers of accounts. It's now speedy, and the implementation is
clearer. To facilitate this, the Account type now represents a tree of
accounts which can easily be traversed up or down (and/or flattened
into a list).

Benchmark on a 2010 macbook:

    +-------------------------------------------++--------------+------------+--------+
    |                                           || before:      | after:     |        |
    |                                           || hledger-0.18 | hledgeropt | ledger |
    +===========================================++==============+============+========+
    | -f data/100x100x10.journal     balance    ||         0.21 |       0.07 |   0.09 |
    | -f data/1000x1000x10.journal   balance    ||        10.13 |       0.47 |   0.62 |
    | -f data/1000x10000x10.journal  balance    ||        40.67 |       0.67 |   1.01 |
    | -f data/10000x1000x10.journal  balance    ||        15.01 |       3.22 |   2.36 |
    | -f data/10000x1000x10.journal  balance aa ||         4.77 |       4.40 |   2.33 |
    +-------------------------------------------++--------------+------------+--------+
2012-10-21 17:18:18 +00:00
Simon Michael
d30cd5847a a simplistic cashflow statement to complete the trio 2012-04-17 17:32:56 +00:00
Simon Michael
b584f33cbb Cli, Cli.Test module doc updates 2012-05-09 15:29:14 +00:00
Simon Michael
2fb2aea056 rename metadata fields to tags 2012-05-27 22:59:06 +00:00
Simon Michael
3ee6a351f3 big query/tests/show refactoring
- use new query system for command line too, filterspec is no more
- move unit tests near the code they test, run them in bottom up order, add more
- more precise Show instances, used for debugging not ui
2012-05-27 18:14:20 +00:00
Simon Michael
197f35cb5b unit test exposing sample journal parse failure 2012-05-09 15:30:43 +00:00
Simon Michael
1e2c2bb10c hook up more tests, begin converting remaining reports to Query 2012-05-17 04:21:34 +00:00
Simon Michael
a58a5f96ad more robust comments & metadata, on postings too, and document as "tags" 2012-05-14 18:52:22 +00:00
Simon Michael
88212f26e8 simplify journal parser names 2012-05-09 15:34:05 +00:00
Simon Michael
a27eb7c29f more matcher -> query renaming 2012-05-16 07:37:24 +00:00
Simon Michael
ca5d5020e1 prototypical incomestatement and balancesheet commands 2012-04-14 01:34:56 +00:00
Simon Michael
b96e3ac85d drop convert command 2012-03-24 19:40:06 +00:00
Simon Michael
6eb7ad28e1 refactor/beef up readJournal/readJournalFile 2012-03-23 16:21:41 +00:00
Simon Michael
f79b272ff3 balance: ledger compatibility fix: don't elide parent accounts with multiple displayed subaccounts 2011-09-22 20:40:06 +00:00
Simon Michael
cbb0fc5c59 move basic reports into hledger-lib 2011-08-15 22:59:06 +00:00
Simon Michael
059825a9b2 optionsgeddon.. port to cmdargs and a fully modal cli 2011-08-15 22:50:09 +00:00
Simon Michael
ce30cb2cbe refactor: try to get these report names under control 2011-07-19 00:49:11 +00:00
Simon Michael
47b1142d49 move reports back to Hledger.Cli for now, forgot they still depend on cli options 2011-07-18 23:30:40 +00:00
Simon Michael
e4c4405c62 refactor: simplify some imports 2011-07-17 23:05:56 +00:00
Simon Michael
224cab068f haddock 2011-06-24 14:20:30 +00:00
Simon Michael
33a1c6533b refactor: clarify the two register types, "posting register" and "account register"
See the docstrings for details. Possibly temporary names, but at least
make the naming consistent and distinct.
2011-06-24 02:44:31 +00:00
Simon Michael
30b7448f45 parsing: alias/end aliases directives, like ledger's but a bit more powerful 2011-08-04 08:45:18 +00:00
Simon Michael
4015e02097 account directive should preserve virtual/balanced virtual posting type 2011-08-02 23:29:13 +00:00
Simon Michael
d025daa8a9 drop unused SubTotal option 2011-08-07 17:10:34 +00:00
Simon Michael
5c8e533ba9 import cleanups 2011-06-06 19:04:21 +00:00
Trygve Laugstol
28dbb8864f Adding basic ledger FORMAT parser. 2011-06-20 21:33:26 +00:00
Simon Michael
c565b2606d simplify api, optsToFilterSpec just needs a day not a time 2011-06-13 23:28:39 +00:00
Simon Michael
e7c6ee3dc3 refactor: convert to cost-basis at report time, not startup time 2011-06-03 03:29:57 +00:00
Simon Michael
96aa9bfc76 matcher improvements, tests 2011-06-11 18:35:20 +00:00
Simon Michael
5084280879 imports, api cleanup 2011-05-28 04:11:44 +00:00
Simon Michael
dc7a692a19 refactor: remove costbasis and whichdate from FilterSpec 2011-06-03 02:14:36 +00:00
Simon Michael
b159f74a4c zero amounts have no sign or commodity, and amounts with different prices are aggregated, like ledger 2011-04-22 13:50:05 +00:00
Simon Michael
d3663b818e parsing: better international number format support (#32)
This allows period and comma to be used for decimal point and digit group
separator or vice versa, and also flexible digit groups.  See
http://en.wikipedia.org/wiki/Decimal_separator .  Digit group separators
are possibly not worth the trouble and might not stay.
2011-01-19 12:32:18 +00:00
Simon Michael
dd9e78a67a reorganize tests 2010-12-27 20:26:22 +00:00