Commit Graph

80 Commits

Author SHA1 Message Date
Simon Michael
3ae8712bbc rename data/ to examples/ 2017-01-08 07:26:13 -08:00
Simon Michael
701fb5496f doc, cli: improvements for -B, -V, prices docs #403 2016-12-30 14:36:27 -08:00
Simon Michael
a57c1bde08 bal: with -V, don't ignore market prices in the future #453 2016-12-30 11:46:13 -08:00
Simon Michael
69ebc3b159 bal, reg, stats: clarify report modes, output, options
- try to clarify naming and meaning of balance/register report modes
  and kinds of "balance" displayed. Added balance --change and
  register --cumulative flags to clarify report modes.

- with multiple --change/--cumulative/--historical flags use the last
  instead of complaining

- register -A is now affected by -H

- options cleanups
2016-08-12 09:44:31 -07:00
Simon Michael
39c5eb9801 balance: make -H work with single-column reports #392
-H/--historical now makes a single-column balance report with a start
date show historical balances reflecting earlier postings.  This is
equivalent to specifying no start date, but it's more consistent.
2016-08-08 17:40:41 -07:00
Simon Michael
974b1e3be0 lib: simplify balance report types; haddocks 2016-08-08 17:23:21 -07:00
Simon Michael
985ca50814 doc: expand period expressions, rename "report interval" 2016-08-02 12:51:18 -07:00
Simon Michael
fe6d4cc7da lib: abstract period/interval/cleared in ReportOpts 2016-07-29 19:20:56 -07:00
Simon Michael
2538d14ea7 lib: textification begins! account names
The first of several conversions from String to (strict) Text, hopefully
reducing space and time usage.

This one shows a small improvement, with GHC 7.10.3 and text-1.2.2.1:

hledger -f data/100x100x10.journal stats
string: <<ghc: 39471064 bytes, 77 GCs, 198421/275048 avg/max bytes residency (3 samples), 2M in use, 0.000 INIT (0.001 elapsed), 0.015 MUT (0.020 elapsed), 0.010 GC (0.014 elapsed) :ghc>>
text:   <<ghc: 39268024 bytes, 77 GCs, 197018/270840 avg/max bytes residency (3 samples), 2M in use, 0.000 INIT (0.002 elapsed), 0.016 MUT (0.022 elapsed), 0.009 GC (0.011 elapsed) :ghc>>

hledger -f data/1000x100x10.journal stats
string: <<ghc: 318555920 bytes, 617 GCs, 2178997/7134472 avg/max bytes residency (7 samples), 16M in use, 0.000 INIT (0.001 elapsed), 0.129 MUT (0.136 elapsed), 0.067 GC (0.077 elapsed) :ghc>>
text:   <<ghc: 314248496 bytes, 612 GCs, 2074045/6617960 avg/max bytes residency (7 samples), 16M in use, 0.000 INIT (0.003 elapsed), 0.137 MUT (0.145 elapsed), 0.067 GC (0.079 elapsed) :ghc>>

hledger -f data/10000x100x10.journal stats
string: <<ghc: 3114763608 bytes, 6026 GCs, 18858950/75552024 avg/max bytes residency (11 samples), 201M in use, 0.000 INIT (0.000 elapsed), 1.331 MUT (1.372 elapsed), 0.699 GC (0.812 elapsed) :ghc>>
text:   <<ghc: 3071468920 bytes, 5968 GCs, 14120344/62951360 avg/max bytes residency (9 samples), 124M in use, 0.000 INIT (0.003 elapsed), 1.272 MUT (1.349 elapsed), 0.513 GC (0.578 elapsed) :ghc>>

hledger -f data/100000x100x10.journal stats
string: <<ghc: 31186579432 bytes, 60278 GCs, 135332581/740228992 avg/max bytes residency (13 samples), 1697M in use, 0.000 INIT (0.008 elapsed), 14.677 MUT (15.508 elapsed), 7.081 GC (8.074 elapsed) :ghc>>
text:   <<ghc: 30753427672 bytes, 59763 GCs, 117595958/666457240 avg/max bytes residency (14 samples), 1588M in use, 0.000 INIT (0.008 elapsed), 13.713 MUT (13.966 elapsed), 6.220 GC (7.108 elapsed) :ghc>>
2016-05-24 19:00:49 -07:00
Simon Michael
207922a023 lib: Commodity now has a CommoditySymbol and style 2016-05-08 08:07:27 -07:00
Simon Michael
57626dc9fb bal: output CSV item amounts on one line #336 2016-04-19 10:38:40 -07:00
Simon Michael
b64f42c2d8 bal, ui: option help tweaks 2015-10-17 11:22:39 -07:00
Simon Michael
58b98faf36 balance: wide-char-aware multicolumn reports (#242) 2015-09-29 20:54:05 -10:00
Simon Michael
42e2da4bb6 balance, print; more wide char support (#242)
Simple (non-multicolumn) balance reports containing wide characters
should now align correctly (in apps and fonts that show wide chars as
double width). Likewise, the print command.
2015-09-28 18:33:18 -10:00
Simon Michael
74512814ec cli/ui/web: rename X.Options modules to X.XOptions
Make these modules' names more like the heavily-used types they
define (CliOpts, UIOpts, WebOpts). This is consistent with
RawOptions and ReportOptions, and helps with code navigation.
2015-08-28 12:43:51 -07:00
Simon Michael
19c3749b50 balance: move -V helpers to the *Report modules 2015-08-26 10:38:45 -07:00
Simon Michael
49e1840a0f ui: rewrite the ui using brick
hledger-ui (formerly hledger-vty) is now built on brick, a new
declarative UI layer built on vty. This brings much new power, and
should make the UI much easier to grow and maintain.

At this point, functionality and performance are similar to the old
version. There's no journal entries screen, but entering the postings
screen jumps to the latest posting, and layout is better (multiple
commodities are rendered on one line).

Requires unreleased brick from github (HEAD or some branch) for now.
2015-08-24 16:24:11 -07:00
Simon Michael
cc98ee39f7 balance, lib: --format/StringFormat improvements
The balance command's --format option (in single-column mode) can now
adjust the rendering of multi-line strings, such as amounts with multiple
commodities. To control this, begin the format string with one of:

 %_  - renders on multiple lines, bottom-aligned (the default)
 %^  - renders on multiple lines, top-aligned
 %,  - render on one line, comma-separated

Also the final total (and the line above it) now adapt themselves to a
custom format.
2015-08-19 20:53:51 -07:00
Simon Michael
69c870c6f0 balance, lib: make StringFormat singular; cleanup
Pass around a StringFormat rather than [StringFormat].
Also more balance report item rendering refactoring.
2015-08-19 20:53:50 -07:00
Simon Michael
36dd64cf02 balance, lib: clarify --format implementation
The --format option's OutputFormat type was named confusingly like the
--output-format option.  It has been renamed StringFormat to distinguish
it from StorageFormat (aka the data file format, referenced by
--output-format). Related code and types have been consolidated.
Also the (single-column) balance report's item rendering has had
some cleanup.
2015-08-19 20:53:49 -07:00
Simon Michael
94094252be rename historical prices to market prices
Simpler and clearer. We now have "transaction prices" (recorded as part
of transaction amounts) and "market prices" (recorded with P
directives). Both are matters of historical record, also this avoids
confusion with the balance command's "historical balances".
2015-08-09 16:20:02 -07:00
Simon Michael
49be1f646e balance: add -V/--value to show as market value
Initial support of market value reporting and currency conversion,
similar in spirit to Ledger's.  The balance command now has a -V/--value
flag that converts all the reported amounts using their "default market
price". That is the latest market price (P directive, formerly called
"historical prices") found in the journal for their commodity that is on
or before the report end date.

Unlike Ledger, hledger's -V only uses the market prices recorded with P
directives, ignoring transaction prices recorded as part of posting
amounts (which -B/--cost uses). Using -B and -V together is allowed.
2015-08-09 16:03:16 -07:00
Simon Michael
70d87613f2 some cleanup of debug trace helpers 2015-05-14 13:01:49 -07:00
Simon Michael
95ced2da80 balance: fix partially-visible totals row
With --no-total in a periodic (non-cumulative, non-historical) balance
report, hide the totals row completely, as in the other modes.
2014-12-27 16:46:37 -08:00
Simon Michael
6da4942633 balance: tweak flags a bit; we now use -N and -T
-N doesn't seem to be used by Ledger currently; we'll
use it as shortcut for --no-total.

-T is used by Ledger to set a custom value expression for the final
total. I'm going to take it as a shortcut for --row-total instead.
2014-12-27 15:34:23 -08:00
Simon Michael
ba0623165f balance: row totals/averages in multicolumn mode 2014-12-27 15:24:45 -08:00
Simon Michael
e14f39bae0 balance: ignore --drop when displaying in tree mode 2014-12-16 09:11:13 -08:00
Simon Michael
21ed3dc73d balance: support CSV for multi-column balance reports 2014-10-23 05:11:48 -07:00
Simon Michael
9416d12d8a --output -> --output-file/-o & --output-format/-O, refactor
Use two options and less surprising behaviour. Notes:
* a recognised suffix on the output file name can set the format
* but --output-format always wins
* -o - means stdout
* currently these are command-specific options on balance, print, register
* later, --output-file should become a global option
* and --output-format should be available at least on all commands which
  support multiple formats. Each command may support a different set of
  output formats, which should be listed in its command line help.
2014-10-21 17:14:37 -07:00
Simon Michael
b6774f47a3 balance, print: add -o and CSV output here too
Not very elegant yet, but works.
2014-10-21 12:02:23 -07:00
Simon Michael
301f506486 the --format option shall be known as "line format" 2014-10-20 13:03:44 -07:00
gwern
d1618aaca8 strip trailing whitespace from all Haskell files 2014-10-14 18:48:24 -07:00
Simon Michael
40ab1e17f6 amounts cleanups, and support zeros with commodity 2014-07-28 18:45:13 -07:00
Simon Michael
7fb154f820 balance: include report span in title 2014-07-26 17:29:20 -07:00
Simon Michael
ca43eab47a balance: simplify multicolumn report titles slightly 2014-07-26 17:09:29 -07:00
Simon Michael
16f8b78305 balance: show multi-commodity amts on one line (fixes #186)
To avoid totally breaking the layout of multicolumn balance reports when
there are multi-commodity balances, these are now rendered on a single
line, comma separated. Simple balance reports still use the old vertical
format for now.
2014-07-03 07:45:55 -07:00
Simon Michael
e6a1339370 cli: options help polish 2014-05-01 07:22:44 -07:00
Simon Michael
7d73ab5264 cli: drop single-letter aliases, keep the familiar three-letter ones where useful 2014-04-27 18:46:34 -07:00
Simon Michael
2af04ec2fc balance: merge/improve multicol report implementations
Periodic, cumulative and historical multicolumn balance reports are now
generated by one code path, which helps with consistency and reducing
the bug/test surface. --tree now also works with --cumulative or
--historical.
2014-04-13 12:49:05 -07:00
Simon Michael
cad37b7dce balance: fix excessive indent in multicolumn tree mode 2014-04-13 12:49:05 -07:00
Simon Michael
7b4b99fae0 accounts: more query support, --flat/--drop/--depth support 2014-04-07 12:13:36 -07:00
Simon Michael
efad3a767d balance: support --drop in flat multicolumn reports 2014-04-07 08:32:23 -07:00
Simon Michael
7d99ae5033 balance: --tree makes multicolumn reports show hierarchy
Multicolumn balance reports can now be switched to a hierarchical view
with --tree. This is similar to the single column balance report with
--no-elide, ie we do not elide boring parents into the following line.

The --flat and --tree flags are opposites; the last one to appear on
the command line is decisive (in future, if not already).
2014-04-06 21:56:47 -07:00
Simon Michael
2d1e0d7cd4 move command-specific options to the respective command modules 2014-03-21 10:45:13 -07:00
Simon Michael
4d8d0d9aa6 balance: make BalanceReport more like MultiBalanceReport, doc cleanups 2014-03-18 18:01:24 -07:00
Simon Michael
dd2f293094 rename FormatString to OutputFormat
It was going to be Format, but that clashes with file format. Press on.
2014-03-02 13:33:56 -08:00
Simon Michael
c53732a4af balance: new multi-column reports & documentation
Two new multi-column balance report modes show ending balance per
period: `--cumulative`, starting from 0, and `--historical`, starting
from the historical starting balance.

The balance command's specification has been clarified and consolidated
in the Balance.hs haddock. Reports.hs has also had haddock updates. The
old AccountsReport type is now BalanceReport, still used by
single-column balance report. The new MultiBalanceReport type is used by
the multi-column reports.
2013-12-07 05:43:31 -08:00
Simon Michael
7e06a6a24c balance: basic multi-column balance (change) reports 2013-09-26 15:06:48 -07:00
Simon Michael
50068221c3 fix build warnings in all GHC versions 2012-03-29 21:19:35 +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