Simon Michael
c23fc8b671
speed up -V/--value by converting reports, not the journal ( #999 )
...
Instead of converting all journal amounts to value early on, we now
convert just the report amounts to value, before rendering.
This was basically how it originally worked (for the balance command),
but now it's built in to the four basic reports used by print,
register, balance and their variants - Entries, Postings, Balance,
MultiBalance - each of which now has its own xxValue helper.
This should mostly fix -V's performance when there are many
transactions and prices (the price lookups could still be optimised),
and allow more flexibility for report-specific value calculations.
+------------------------------------------++-----------------+-------------------+--------------------------+
| || hledger.999.pre | hledger.999.1sort | hledger.999.after-report |
+==========================================++=================+===================+==========================+
| -f examples/1000x1000x10.journal bal -V || 1.08 | 0.96 | 0.76 |
| -f examples/2000x1000x10.journal bal -V || 1.65 | 1.05 | 0.73 |
| -f examples/3000x1000x10.journal bal -V || 2.43 | 1.58 | 0.84 |
| -f examples/4000x1000x10.journal bal -V || 4.39 | 1.96 | 0.93 |
| -f examples/5000x1000x10.journal bal -V || 7.75 | 2.99 | 1.07 |
| -f examples/6000x1000x10.journal bal -V || 11.21 | 3.72 | 1.16 |
| -f examples/7000x1000x10.journal bal -V || 16.91 | 4.72 | 1.19 |
| -f examples/8000x1000x10.journal bal -V || 27.10 | 9.83 | 1.40 |
| -f examples/9000x1000x10.journal bal -V || 39.73 | 15.00 | 1.51 |
| -f examples/10000x1000x10.journal bal -V || 50.72 | 25.61 | 2.15 |
+------------------------------------------++-----------------+-------------------+--------------------------+
There's one new limitation, not yet resolved: -V once again can pick a
valuation date in the future, if no report end date is specified and
the journal has future-dated transactions. We prefer to avoid that,
but reports currently are pure and don't have access to today's date.
2019-04-23 17:39:01 -07:00
Simon Michael
1cacfcea28
lib: fix journalApplyValue test ( #999 )
2019-04-23 07:20:10 -07:00
Simon Michael
08d226aaf5
lib: add a test for journalApplyValue that times itself ( #999 )
...
This test prints the time elapsed (before the OK message).
Mainly to support current performance tuning
(make ghcid-test-Hledger.Cli.Utils.journalApplyValue),
but also for future reference.
2019-04-22 16:40:58 -07:00
Simon Michael
76b933641d
rejigger Hledger.Cli tests to have correct prefix, add Cli.Utils
2019-04-22 12:47:28 -07:00
Simon Michael
028303acd7
lib: speed up -V by sorting market prices just once ( #999 )
...
-V is still quite a bit slower than no -V, but not as much as before:
+===========================================================++=======+
| hledger.999.pre -f examples/10000x10000x10.journal bal || 5.20 |
| hledger.999.pre -f examples/10000x10000x10.journal bal -V || 57.20 |
| hledger.999 -f examples/10000x10000x10.journal bal || 5.34 |
| hledger.999 -f examples/10000x10000x10.journal bal -V || 17.50 |
+-----------------------------------------------------------++-------+
2019-04-20 13:12:53 -07:00
Simon Michael
6f4009d589
import: doc tweaks
...
[ci skip]
2019-04-19 15:44:06 -07:00
Simon Michael
ca79981f8d
doc: regen command help
...
[ci skip]
2019-04-19 11:19:24 -07:00
Simon Michael
eb576ba5be
import: document a problem with balance assignments
...
[ci skip]
2019-04-19 11:18:33 -07:00
Simon Michael
ab93eb4258
close: doc: fix typo
...
[ci skip]
2019-03-26 16:40:03 -07:00
Simon Michael
6c841a266d
diff: help tweaks (cf #981 )
2019-03-09 09:45:30 -08:00
Simon Michael
e57bf4a9f2
diff: make it show in commands list; export it ( #981 )
2019-03-04 12:01:34 -08:00
Gabriel Ebner
ceb193f85e
cli: add diff command
...
This merges the external hledger-diff addon, which is now deprecated.
https://github.com/gebner/hledger-diff/
2019-03-04 11:39:11 -08:00
Jakub Zárybnický
6becbc78f3
cli, web, ui: Replace withJournalDo* variants
2019-03-01 05:42:30 -08:00
Simon Michael
a3ae68020f
regen manuals
...
[ci skip]
2019-02-26 10:13:50 -08:00
Simon Michael
3dbd1378de
bal: doc: clarify budget report differences; drop sorting limitation
...
[ci skip]
2019-02-24 21:09:59 -08:00
Simon Michael
0bc16d4af6
lib, cli, web: rename porigin -> poriginal
2019-02-20 20:23:54 -08:00
Jakob Schöttl
49f286dc70
Fix CLI help text
2019-02-17 06:55:01 -08:00
Simon Michael
03877057fb
refactor: cli: commands: hlint clean
2019-02-14 05:15:49 -08:00
Simon Michael
17c4a47a85
regen cli help, manuals
...
[ci skip]
2019-02-14 05:15:49 -08:00
Simon Michael
d7a815fc08
commodities: add commodities command
2019-02-14 05:15:48 -08:00
Jakob Schöttl
ba1abae7c9
Add doc on --invert
2019-02-09 15:55:41 -08:00
Jakob Schöttl
161ca660dc
Support register --invert option to negate amounts
2019-02-09 15:55:41 -08:00
Jakob Schöttl
98d7c073c7
Reduce simple lambda
2019-02-09 12:47:24 -08:00
Simon Michael
e89c3752c4
stats: tweak -o help, output format is not supported here
...
[ci skip]
2019-02-03 13:05:48 -08:00
Simon Michael
c959e555ad
print, reg: restore -o, -O flags dropped during refactor ( #967 )
2019-02-03 13:04:59 -08:00
Simon Michael
86d5652e53
stop depending on here due to slow haskell-src-meta/stackage issues
...
Using file-embed or ordinary literals instead, for now.
2019-02-02 16:34:10 -08:00
Simon Michael
33d82fb657
fix: --forecast shouldn't force --auto on ( #953 , #959 )
2019-02-01 11:43:24 -08:00
Simon Michael
d6e075dacd
refactor journalModifyTransactions, modifyTransactions
...
API changes:
Hledger.Data.TransactionModifier
-transactionModifierToFunction
+modifyTransactions
Hledger.Read.Common.applyTransactionModifiers -> Hledger.Data.Journal.journalModifyTransactions
2019-02-01 11:31:04 -08:00
Simon Michael
4a9fa5cd38
internals: append rather than prepend forecasted txns
2019-02-01 11:29:22 -08:00
Simon Michael
5435150d39
doc: don't use sed; fix accidental dedenting of some lists ( #961 )
...
The sed code was showing an error message, not too precise.
Pandoc's lua filters to the rescue!
[ci skip]
2019-01-31 08:34:49 -08:00
Simon Michael
3474cb08bd
cli: commands list: mention budgets
...
[ci skip]
2019-01-31 08:33:40 -08:00
Simon Michael
59739d1cd3
doc: command docs readme -> .md
...
[ci skip]
2019-01-30 17:59:42 -08:00
Simon Michael
845fdf8302
doc: update command docs readme
2019-01-30 17:58:23 -08:00
Simon Michael
c8246e7323
cli: command help: reduce width, line wrapping
...
cmdargs wraps any lines longer than 78 characters. To (mostly) avoid
this, we now display verbatim blocks unindented, and some of
register's examples have been altered to make them fit.
2019-01-30 17:58:13 -08:00
Simon Michael
36246e4976
cli: commands list: reorder help lines
...
[ci skip]
2019-01-30 12:54:22 -08:00
Simon Michael
4c5ac4dd06
cli: fix command help, really render as plain text
...
pandoc thinks .txt is a markdown file apparently
2019-01-30 12:44:10 -08:00
Simon Michael
3baad5d729
cli: render command help as plain text, hiding markup
...
This means committing a bunch more generated files, but it's probably
worthwhile, so we can have both rich hyperlinked/styled command docs
and clean readable command help.
2019-01-30 10:41:39 -08:00
Simon Michael
88ef2abfff
refactor: Commands
2019-01-30 09:09:52 -08:00
Simon Michael
8d6b5cc4f3
cli: commands list: fix addons being shown twice
2019-01-30 09:09:52 -08:00
Simon Michael
2442b4f46f
refactor: hledgerCommandMode
2019-01-30 09:09:52 -08:00
Simon Michael
a23f391d7e
cli: commands list: reorganise
...
[ci skip]
2019-01-28 12:48:15 -08:00
Simon Michael
469b715352
cli: commands list: update command descriptions
2019-01-28 10:23:39 -08:00
Simon Michael
a9eb84a451
cli: commands list: show addons prefixed with +
2019-01-28 10:07:18 -08:00
Simon Michael
b92aa4b89e
refactor: Commands
2019-01-28 09:33:21 -08:00
Simon Michael
4ee39e039b
doc: integrate CLI help & manual for remaining commands
...
& rename HelpTemplate -> CommandDoc
2019-01-28 05:43:49 -08:00
Simon Michael
6566ef5fa2
add: fix breakage when creating file, ignore backslash in names line
2019-01-26 20:57:44 -08:00
Simon Michael
157ec857d4
refactor hledgerCommandMode
2019-01-26 20:57:00 -08:00
Simon Michael
6947f29f17
bal: integrate CLI help & manual
2019-01-26 17:22:48 -08:00
Simon Michael
64d78f1644
add: integrate CLI help & manual
2019-01-26 17:13:44 -08:00
Simon Michael
53620d0df2
act: integrate CLI help & manual
2019-01-26 17:07:30 -08:00
Simon Michael
f68309b106
acc: integrate CLI help & manual
2019-01-26 17:01:55 -08:00
Simon Michael
d1411fbd8d
embedded files comment
...
[ci skip]
2019-01-26 16:39:36 -08:00
Simon Michael
817497f30b
doc: force a line break after command names in new command docs
...
[ci skip]
2019-01-26 16:33:51 -08:00
Simon Michael
550aa408eb
lib: refactor, add embedFileRelative
2019-01-26 15:52:58 -08:00
Simon Michael
4f8153cf82
hereFileRelativeToPackage -> hereFileRelative
2019-01-26 15:34:17 -08:00
Dmitry Astapov
f6e5b3d438
lib: make --auto work on --forecast transactions
2019-01-25 12:53:59 -08:00
Dmitry Astapov
f2aaaf3310
lib, cli: merge --show-unbudgeted into --empty
2019-01-25 12:53:09 -08:00
Simon Michael
08c0d83593
close: generated unpriced balance assertion amounts ( #824 )
2019-01-25 11:55:09 -08:00
Simon Michael
f320345699
close: refactor
2019-01-25 10:23:01 -08:00
Dmitry Astapov
5711cdf9ba
cli: added --transpose to "balance" command
2019-01-24 15:06:35 -08:00
Dmitry Astapov
56553ede69
cli: if abs(return on investment)<0.01% display it as zero
2019-01-24 13:36:11 -08:00
Simon Michael
f7c22f97dc
refactor: simplify addonCommandMode
2019-01-23 17:26:27 -08:00
Simon Michael
b2c1e0b0ac
close: doc tweaks
...
[ci skip]
2019-01-23 17:26:27 -08:00
Simon Michael
fcb33c4f0c
close: fix ghci build / make build working-dir-independent again
2019-01-23 17:26:27 -08:00
Simon Michael
50175a9698
close: fix regular build, note path issue breaking ghci
2019-01-22 14:33:20 -08:00
Simon Michael
ede41af4c8
close: fix and document some newline issues
...
[ci skip]
2019-01-22 14:10:37 -08:00
Simon Michael
cc7c3928fb
doc: begin integrating commands' CLI help and manual section
...
Just the close command to start with.
2019-01-22 13:33:24 -08:00
Simon Michael
763903ebda
journal: save account directives' comments, tags, declaration order
2019-01-18 16:40:35 -08:00
Simon Michael
7b47fb608e
close: use exact, minimal amounts; ensure assertions pass ( #941 )
2019-01-16 14:57:59 -08:00
Simon Michael
a0b0fedd31
add files command to commands list
2019-01-14 22:01:42 -08:00
Simon Michael
e120e261bd
import: if there's nothing to import, be quiet
2019-01-08 15:34:19 +00:00
Simon Michael
6f36702141
lib: rename, reposition tprecedingcomment field
2019-01-05 07:35:54 +00:00
Simon Michael
3a5df72331
roi: use math-functions lib instead of old statistics version
2018-12-03 15:51:29 -08:00
Simon Michael
99a04c219f
roi: add to commands list
2018-12-02 16:27:36 -08:00
Simon Michael
b053942e9b
lib: flip the arguments of (divide|multiply)[Mixed]Amount (api change)
...
Also, start using a mapMixedAmount helper.
2018-11-13 17:28:24 -08:00
Simon Michael
4b5b9f46db
lib: TransactionModifier: clarify
2018-11-13 16:35:46 -08:00
Samuel May
cde91fc5f4
lib: Make BalanceAssertion a full datatype
...
Note: simplifies/moves whitespace parsing out of the balance assertion
parser.
2018-10-22 09:55:14 -07:00
Simon Michael
b5a90432ff
lib: document and test showTransaction*, posting*AsLines
2018-10-22 06:46:31 -07:00
Dmitry Astapov
15c666702b
cli: compoundbalancecommand keeps zero-balance accounts with children
2018-10-17 16:59:53 -07:00
Simon Michael
4a399e50cb
acc: don't require an explicit --flat to make --drop work
2018-10-13 13:22:11 -07:00
Moritz Kiefer
ec1b31f7ba
Anonymize original postings
2018-10-11 15:39:33 -07:00
Simon Michael
0d6803e4b5
accounts: drop obsolete --codes flag
2018-10-10 20:35:53 -07:00
Simon Michael
cf25ef5cf5
accounts: filtering by anything other than account name was broken
2018-10-10 20:32:19 -07:00
Simon Michael
605a082d77
bs/bse/cf/is: use account type declarations if any
...
These commands now detect the account types declared by account directives.
Whenever such declarations are not present, built-in regular expressions
are used, as before.
2018-10-09 14:24:59 -10:00
Alex Chen
2cbc41e088
Merge branch 'master' into ExceptTLayer
2018-10-09 11:19:45 -06:00
Simon Michael
36af23ff5a
appveyor: try older ghc again, skip tests for now ( #888 )
...
[ci skip]
2018-10-07 10:07:31 -10:00
Simon Michael
dcbedadcc4
add: fix wrong txn rendering during data entry & in journal file
2018-10-06 09:31:22 -10:00
Alex Chen
3d2584d869
lib: switch to megaparsec 7
2018-09-30 20:15:12 -06:00
Dmitry Astapov
3397ccdd4c
cli: command to compute return on investment
2018-09-27 13:42:31 -10:00
Dmitry Astapov
bda202e4d4
cli: "close" can print only opening or closing transaction
2018-09-25 07:25:59 -10:00
Simon Michael
855bd54d19
budget: declaration and (actual) amount sorting for bal --budget
...
Account declaration-aware sorting is the default throughout hledger now.
2018-09-24 08:31:19 -10:00
Dmitry Astapov
cb979ed129
cli: command to list included files
2018-09-22 21:47:54 -10:00
Simon Michael
3de8c11de1
journal: a new account sorting mechanism, and a bunch of sorting fixes
...
A bunch of account sorting changes that got intermingled.
First, account codes have been dropped. They can still be parsed and
will be ignored, for now. I don't know if anyone used them.
Instead, account display order is now controlled by the order of account
directives, if any. From the mail list:
I'd like to drop account codes, introduced in hledger 1.9 to control
the display order of accounts. In my experience,
- they are tedious to maintain
- they duplicate/compete with the natural tendency to arrange account
directives to match your mental chart of accounts
- they duplicate/compete with the tree structure created by account
names
and it gets worse if you think about using them more extensively,
eg to classify accounts by type.
Instead, I plan to just let the position (parse order) of account
directives determine the display order of those declared accounts.
Undeclared accounts will be displayed after declared accounts,
sorted alphabetically as usual.
Second, the various account sorting modes have been implemented more
widely and more correctly. All sorting modes (alphabetically, by account
declaration, by amount) should now work correctly in almost all commands
and modes (non-tabular and tabular balance reports, tree and flat modes,
the accounts command). Sorting bugs have been fixed, eg #875 .
Only the budget report (balance --budget) does not yet support sorting.
Comprehensive functional tests for sorting in the accounts and balance
commands have been added. If you are confused by some sorting behaviour,
studying these tests is recommended, as sorting gets tricky.
2018-09-22 21:45:07 -10:00
Simon Michael
059ad9eb76
refactor: jaccounts -> jdeclaredaccounts
2018-09-17 05:52:13 -07:00
Luca Molteni
ad733c1eb4
Removed hunit
2018-09-07 13:00:20 -07:00
Simon Michael
23bdac41d9
csv: merge lucamolteni's cassava/custom separators (squashed) ( #829 )
...
commit 5ba464de761b298e50d57a8b7d14bc28adb30d5d
Author: Luca Molteni <volothamp@gmail.com>
Date: Fri Sep 7 17:54:12 2018 +0200
Fix CI 2
commit f060ae9449f4b61a915b0ed4629fc1ba9b66fb4a
Author: Luca Molteni <volothamp@gmail.com>
Date: Fri Sep 7 17:30:08 2018 +0200
Fix CI build
commit af0719a33b9b72ad244ae80198d881a1f7145e9d
Author: Luca Molteni <volothamp@gmail.com>
Date: Fri Sep 7 17:19:01 2018 +0200
Fix rebase
commit 1a24ddfa54dfb4ff1326e1a51005ffa82d3dc3c8
Author: Luca Molteni <volothamp@gmail.com>
Date: Fri Aug 10 16:25:24 2018 +0200
Fixed some GHC warnings
commit 1ac43398a359b5925ef71f53347698f1c6c510ef
Author: Luca Molteni <volothamp@gmail.com>
Date: Fri Aug 10 16:14:49 2018 +0200
Fix .cabal
commit 422456b925d8aa4ab3e869f51e98c2b1c3dcde0a
Author: Luca Molteni <volothamp@gmail.com>
Date: Sun Jul 1 22:56:20 2018 +0200
Removed to-do list
commit 1118b762e4fd15c4fe7ba48ba86676706ea3a5a5
Author: Luca Molteni <volothamp@gmail.com>
Date: Sun Jul 1 22:53:28 2018 +0200
Better test
commit 1146ed0941655668bf7684f18aa15c5f4b9b20c2
Author: Luca Molteni <volothamp@gmail.com>
Date: Sun Jul 1 15:32:28 2018 +0200
Fix parsing
commit 4fc2374b2b81802990da30c96756aab54d77399c
Author: Luca Molteni <volothamp@gmail.com>
Date: Thu Jun 21 22:11:11 2018 +0200
Parsing of separator
commit f7a61737f1ad4460ba20ca9b2e86eb21468abb33
Author: Luca Molteni <volothamp@gmail.com>
Date: Thu Jun 21 14:29:23 2018 +0200
Almost separator in options
commit ac8841cf3b9c80914bc3271ad9b9ff4ae9ba48a7
Author: Luca Molteni <volothamp@gmail.com>
Date: Thu Jun 21 14:16:59 2018 +0200
Separator in parseCSV
commit 92a8b9f6ba77ea4237f769641e03029ac88542ea
Author: Luca Molteni <volothamp@gmail.com>
Date: Thu Jun 21 13:30:41 2018 +0200
separator option
commit ec417a81ae625647cf35e61776cdf02bdb2c6aea
Author: Luca Molteni <volothamp@gmail.com>
Date: Thu Jun 21 10:45:26 2018 +0200
Removed one qualified import
commit 8b2f386c2f780adcd34cff3de7edceacc1d325a7
Author: Luca Molteni <volothamp@gmail.com>
Date: Wed Jun 20 14:01:12 2018 +0200
Removed string conversions
commit a14d0e099e28a286bb81770cfc9cb8f5c7e5cf1f
Author: Luca Molteni <volothamp@gmail.com>
Date: Wed Jun 20 10:23:20 2018 +0200
custom delimiter in cassava
commit 694d48e2bc1ada0037b90367c017f3082f68ed45
Author: Luca Molteni <volothamp@gmail.com>
Date: Sun Jun 10 17:51:54 2018 +0200
Use Text.getContents - remove UTF-8 compatibility library
commit a7ada2cc60033ebdd796ca34cc2ec69a4f387843
Author: Luca Molteni <volothamp@gmail.com>
Date: Sun Jun 10 17:49:34 2018 +0200
todo list
commit 58ec47d3987909f6bace50e3e647e30dadd5bf03
Author: Luca Molteni <volothamp@gmail.com>
Date: Sun Jun 10 17:45:22 2018 +0200
CSV test now has unicode characters
commit b7851e94c3f1683b63ec7250a12bcde3b7bed691
Author: Luca Molteni <volothamp@gmail.com>
Date: Sun Jun 10 16:59:39 2018 +0200
Use decode from Text
commit 79f59fd28ccaca08fcd718fcd8d00b1c1d65d7e1
Author: Luca Molteni <volothamp@gmail.com>
Date: Sun Jun 10 13:28:57 2018 +0200
Use Text and Lazy Bytestring
commit 470c9bcb8dc00669beb4ef0303a1e7d9f7aecc89
Author: Luca Molteni <volothamp@gmail.com>
Date: Sat Jun 9 15:30:22 2018 +0200
Use megaparsec error
commit f978848ba249ef4f67b855bea5d4e549290c205c
Author: Luca Molteni <volothamp@gmail.com>
Date: Sat Jun 9 15:22:07 2018 +0200
Renamed qualify and remove Parsec
commit 152587fde204c43a55798d212e43f37cd3038c2e
Author: Luca Molteni <volothamp@gmail.com>
Date: Sat Jun 9 15:12:36 2018 +0200
Use cassava mega parsec
commit cf281577a3d3a071196484a6fc8485f2ea1f7d67
Author: Luca Molteni <volothamp@gmail.com>
Date: Sat Jun 9 14:01:47 2018 +0200
Removed Data.Vector
commit 1272e8e758369d8cc5778029a705b277355a5029
Author: Luca Molteni <volothamp@gmail.com>
Date: Sat Jun 9 12:16:18 2018 +0200
Removed Parsec ParseError
commit ae07f043135a19307fd65b281ade37a74c76acb2
Author: Luca Molteni <volothamp@gmail.com>
Date: Sat Jun 9 12:06:14 2018 +0200
Type sinonim for ParsecError
commit 8e15b253c11bd1c0c35a7641aeb18aa54e0ba9b0
Author: Luca Molteni <volothamp@gmail.com>
Date: Sat Jun 9 11:16:08 2018 +0200
Replaced with typeclasses
commit 1ed46f9c175603611325f3d377004e4b85f29377
Author: Luca Molteni <volothamp@gmail.com>
Date: Sat Jun 9 11:01:33 2018 +0200
Replaced Text/CSV with Cassava
commit 362f4111b5854145703174b976fc7acbd71b8783
Author: Luca Molteni <volothamp@gmail.com>
Date: Sat Jun 9 10:34:37 2018 +0200
Use cassava parsin instead of Text/CSV
commit 83e678e371618687cf7c15a4e2cfa67f570b6b64
Author: Luca Molteni <volothamp@gmail.com>
Date: Sat Jun 9 08:22:51 2018 +0200
Text CSV error messages
commit f922df71d274beeacab9fb2530b16c97f005cc08
Author: Luca Molteni <volothamp@gmail.com>
Date: Fri Jun 8 21:45:20 2018 +0200
Better types
commit edd130781c84790a53bff2283e6041eb8232e7cf
Author: Luca Molteni <volothamp@gmail.com>
Date: Fri Jun 8 21:34:59 2018 +0200
Conversion to Text CSV type
commit 0799383214483018ad2d977a3c8022414959c2b2
Author: Luca Molteni <volothamp@gmail.com>
Date: Fri Jun 8 16:06:21 2018 +0200
First function with cassava
commit e92aeb151ff527b383ff3d0ced7764e81b71af82
Author: Luca Molteni <volothamp@gmail.com>
Date: Fri Jun 8 13:47:34 2018 +0200
Added cassava as dependency
commit 5ea005c558a3939af7e5f0cd735a9b4da931228e
Author: Luca Molteni <volothamp@gmail.com>
Date: Fri Jun 8 13:18:47 2018 +0200
Better .gitignore for multi idea modules
2018-09-07 12:34:51 -07:00
Simon Michael
91b111b60d
rename easytests_* to tests_*
2018-09-06 13:13:26 -07:00
Simon Michael
4003264129
lib: drop HUnit helpers, rename expectEqPP
2018-09-04 13:52:36 -07:00
Simon Michael
ff8d582bed
test: drop hunit support from the test command
2018-09-04 12:48:06 -07:00
Simon Michael
807e6dc4af
tests: Cli -> easytest
2018-09-04 12:42:37 -07:00
Simon Michael
7370f2a553
tests: Hledger -> easytest
2018-09-04 12:25:52 -07:00
Simon Michael
dcc44d10a5
lib: export HasCallStack from Hledger.Utils.Test
2018-09-04 09:59:48 -07:00
Simon Michael
cd67f8ea68
tests: clear out old boilerplate
2018-08-31 18:12:17 -07:00
Jakub Zárybnický
1190e2ae5d
cli: Replace embedStringFile with embedFile (compile with LC_ALL=C)
2018-08-24 09:18:26 -07:00
Simon Michael
f108b56e61
uniquify modules' easytests, simplify imports
2018-08-20 14:31:31 +01:00
Simon Michael
f30b1533a0
rewrite: disable outdated doctests
2018-08-18 16:06:34 +01:00
Simon Michael
fa6f0e8d1a
cli: make cabal test suite run the test command, not just hunit tests
2018-08-18 15:20:15 +01:00
Simon Michael
d778a92561
tests: export HUnit/EasyTest from Hledger.Utils.Test; more helpers
2018-08-18 15:19:59 +01:00
Simon Michael
50d666d5a0
test: refactor, document, organise easytests, port amountp tests ( #812 )
2018-08-15 19:58:07 +01:00
Simon Michael
ed15ebd70e
test: run some easytests as well; print test output on stdout
2018-08-15 11:24:52 +01:00
Simon Michael
b11a0eadb2
make these modules loadable in a GHCI with OverloadedStrings set
2018-08-03 14:52:11 +01:00
Simon Michael
3e0147b7e9
test: don't try to read the journal
2018-08-03 14:52:11 +01:00
Simon Michael
d685d1aa9b
lib,rewrite: simplify transactionModifierToFunction
...
This removes transactionModifierToFunction's extra query parameter;
the rewrite command sets it in the TransactionModifier instead, which
I think is equivalent. I had to change one functional test, but it
seems correct now, so perhaps it wasn't working right before ?
2018-08-02 08:25:49 +01:00
Simon Michael
1e0a7ec8f1
remove some unneeded CPP pragmas
2018-08-02 08:25:49 +01:00
Simon Michael
9bd1772ea8
bs/bse/cf/is: remove NoCPP pragma
...
This was added in 2012, I guess to prevent CPP breaking on some
needed and I don't want to do this everywhere; we'll just remember
to not put CPP-like content in quasi-quoted blocks.
2018-08-02 08:25:49 +01:00
Simon Michael
a4ed468979
don't re-export applyTransactionModifiers from Hledger.Cli.Utils, I guess
2018-08-02 08:25:49 +01:00
Simon Michael
eae9d78bb1
lib: generateAutomaticPostings -> applyTransactionModifiers
2018-08-02 08:25:49 +01:00
Simon Michael
bb36693155
lib: refactor, txnTieKnot automatically
2018-08-02 08:25:49 +01:00
Simon Michael
efc54c4c25
lib: ModifierTransaction -> TransactionModifier; try to clarify a bit
2018-07-30 19:38:21 +01:00
Simon Michael
05073e9f9d
rewrite: clarify relation to print --auto ( #745 )
...
[ci skip]
2018-07-26 07:14:36 +01:00
Simon Michael
d5430e7ddf
clean up debug helpers (api change)
2018-07-16 15:28:58 +01:00
Simon Michael
92404bb847
prices: allow filtering by query, clarify docs
...
Query arguments are allowed, prices can be filtered by date, and
postings providing transaction prices can be filtered by anything.
2018-07-15 09:21:10 +01:00
Simon Michael
2fbebc6c64
lib: clarify
2018-07-14 10:57:05 +01:00
Gaith Hallak
d0b9d76986
Keep the flags order in moveFlagsAfterCommand
2018-07-04 17:49:14 +03:00
Jakub Zárybnický
af98eecdf8
web: Add capabilities type, CLI options, and reading them from headers
2018-06-24 14:18:02 +02:00
Simon Michael
6a96683691
web: make --auto and multiple -f options work again
...
I think we lost one or both of these at the time of ecf49b1e .
2018-06-20 00:26:37 -07:00
Simon Michael
9c1db9ed9f
lib: fix forecast start/end dates
...
pushed too soon
2018-06-18 18:08:55 -07:00
Simon Michael
26d2c79ce0
lib: make date: also set forecast end date, not just -e and -p
2018-06-18 17:55:18 -07:00
Alex Chen
ff2b042c7e
lib: remove the ErroringJournalParser type
2018-06-11 13:58:56 -06:00
Simon Michael
061aad0431
remove some CPP that's obsolete since we require base 4.8+
2018-06-04 17:33:21 -07:00
Simon Michael
ec39c87ca8
disambiguate the base-compat imports in hledger package too ( #794 )
2018-06-04 17:32:45 -07:00
Alex Chen
12e8d0e282
lib: change some parsers to use takeWhileP
2018-05-22 12:16:46 -07:00
Alex Chen
b245ec7b3d
lib: remove the megaparsec compatability module
2018-05-22 12:16:46 -07:00
Simon Michael
581d02162c
resolve all current build warnings with the supported GHC versions
...
If I'm lucky.
2018-05-17 20:43:55 -07:00
Mykola Orliuk
64c7eb78f4
GHC 8.0 compatibility
2018-05-13 14:41:08 -07:00
Simon Michael
2c0abac928
cli, ui, web: fix build on ghc < 8.4, hopefully
2018-05-05 16:20:27 -07:00
Simon Michael
ad99ffe935
ui: preserve the effect of --value, --forecast, --anon on reload ( #753 )
2018-05-05 15:55:14 -07:00
Simon Michael
34c3c5dc6c
bal: show an error for unsupported --budget --sort-amount
2018-04-27 11:52:23 -07:00
Simon Michael
abb2e6bfc2
reg: include txn's code field in register CSV output ( #746 )
2018-04-27 10:57:40 -07:00
Simon Michael
9151f5004e
budget: show a budget report even with no interval (for whole journal period)
2018-04-24 23:12:42 -07:00
Simon Michael
43287a3e26
budget: use a new first-class BudgetReport for --budget
2018-04-23 18:52:28 -07:00
Dmitry Astapov
0c835acd18
lib, app: better descriptions for forecast transactions
2018-04-18 16:05:08 -07:00
Dmitry Astapov
d82370d10b
lib, app, web: remove differences between command line and journal file aliases
2018-04-17 16:09:11 -07:00
Dmitry Astapov
f6ec26e321
lib, app, web, ui: rename readJournalFile[s]WithOpts to readJournalFile, same for tryReader[s]WithOpts
2018-04-17 15:25:02 -07:00
Dmitry Astapov
37607beaea
lib, app, web: use readJournalFileWithOpts instead of readJournalFile whenever possible
2018-04-17 14:33:32 -07:00
Dmitry Astapov
ecf49b1e4b
lib: auto postings generated before amount inference and balance checks ( #729 )
2018-04-17 14:33:32 -07:00
Simon Michael
326ac83dcf
fix haddock issues
2018-03-31 19:15:24 +01:00
Simon Michael
2a87ea56ff
budget: refactor; show budget goals even with no or zero actual
...
This makes budget reports more intuitive. It is a temporary hack which
can misorder columns in some cases (if actual and budget activity
occur in a different range of columns). We should redo this in a more
principled way.
2018-03-30 03:26:32 +01:00
Simon Michael
939d6833ea
budget: refactor date handling, add debug output
2018-03-30 01:01:50 +01:00
Simon Michael
c306193667
doc: also update -E/--empty command line help
...
[ci skip]
2018-03-30 00:49:28 +01:00
Simon Michael
083d9190fd
budget: only periodic txns with the selected interval are used
2018-03-29 15:51:52 +01:00
Simon Michael
c64d598919
bal: a little more width for budget columns
2018-03-29 15:12:44 +01:00
Simon Michael
6970a4c6e8
budget: more regular layout, simple fixed-width columns
...
old:
Balance changes in 2018/03/19w12:
|| 2018/03/19w12
===================++=================
<unbudgeted>:aaa || 0
bbb || 1.33 [0]
bbb:bbbbbbbbbbbbb || 1.25 [42% of 3]
ccc || 0 [0% of 0]
ddd || 0 [0% of 0]
eee || 0.75 [75% of 1]
fff || 3.50 [50% of 7]
ggg || 1.25 [0]
hhh || 0 [0% of 6]
iii || 0 [0% of 0]
-------------------++-----------------
|| 8.08
new:
|| 2018/03/19w12
===================++========================
<unbudgeted>:aaa || 0
bbb || 1.33 [ 0]
bbb:bbbbbbbbbbbbb || 1.25 [ 42% of 3]
ccc || 0 [ 0% of 0]
ddd || 0 [ 0% of 0]
eee || 0.75 [ 75% of 1]
fff || 3.50 [ 50% of 7]
ggg || 1.25 [ 0]
hhh || 0 [ 0% of 6]
iii || 0 [ 0% of 0]
-------------------++------------------------
|| 8.08
2018-03-29 15:03:27 +01:00
Simon Michael
550425810f
budget refactoring, type synonyms
...
Using "actual" and "budget" terminology. "real" is already used in the
context of real/virtual postings. "actual" should be familiar from
unit testing (expected & actual)..
2018-03-29 15:03:27 +01:00
Simon Michael
a56c547bc2
cleanups
2018-03-29 15:03:27 +01:00
Simon Michael
d4eb3caf70
bal: comment fixes
...
[ci skip]
2018-03-29 15:03:27 +01:00
Simon Michael
1347885cd8
bal/bs/bse/cf/is: show short monthnames in monthly reports (like html)
2018-03-28 18:17:20 +01:00
Moritz Kiefer
d7b68fbd7d
Use skipMany/skipSome for parsing spacenonewline
...
This avoids allocating the list of space characters only to then
discard it.
2018-03-25 22:59:05 +01:00
Simon Michael
84579bb1b4
silence redundant import warnings with ghc 8.4
2018-03-24 22:51:56 +00:00
Simon Michael
8c384e3192
tweak -E help again, hledger-web also shows zeroes by default
...
[ci skip]
2018-02-18 08:05:55 -08:00
Simon Michael
a8933e8c5c
ui: tweak -E help, hledger-ui shows zeroes by default
...
[ci skip]
2018-02-18 07:16:59 -08:00
Simon Michael
d3fde29b36
bal: --invert flag to flip all signs
2018-01-29 14:53:23 -08:00
Simon Michael
5cea120ab7
cli: rename embedded files dir, make them extra-source-files
...
Per feedback from peti. These files will no longer be installed to
cabal's data directory, where it might seem as if they are required at
runtime, which they are not. Packagers will still find them in the
tarball and can put them in the proper place.
2018-01-26 11:12:08 -08:00
Simon Michael
37555617b7
journal, bal: document account codes
2018-01-23 16:51:12 -08:00
Simon Michael
e491f513a1
cli: tabular reports no longer have a trailing blank line added
...
Tabular reports from bal, bs etc. have until now been rendered on
the terminal with one final blank line, for readability.
This change drops the blank line.
This is consistent with the non-tabular balance and register output
(not print, which is a special case), and with most unix commands.
The real reason for it, which I admit is flimsy, is that I can now omit
the final delimiter (>=0) when using shelltestrunner 1.9's new format,
making functional tests easier to maintain and more readable.
If there's opposition, this could be reverted.
2018-01-23 12:47:56 -08:00
Simon Michael
d420a8b534
journal: account directive: parse and store a numeric account code also
2018-01-23 11:33:23 -08:00
Simon Michael
88ef586480
lib: rename, clarify purpose of balanceReportFromMultiBalanceReport
2018-01-23 11:32:24 -08:00
Simon Michael
6c60e4a97b
bs/cf/is: always show a tabular report, even with no report interval
...
Previously, if you specified no report interval, the text output of
these commands was a simple report like the original balance command,
with amounts on the left and account names on the right. Also,
balances used arithmetic sign like the balance command.
Now it always draws a table, with account names in the left
column, and shows balances with normal-positive sign, consistent with
the multicolumn reports. Less code, fewer bugs.
2018-01-23 11:05:01 -08:00
Simon Michael
2e9ae3f400
bs/bse/cf/is: html output fixes and styling/styleability
2018-01-19 14:16:23 -08:00
Simon Michael
4ddb748d9c
acc: rename --posted -> --used
2018-01-19 12:41:03 -08:00
Simon Michael
37a4d71f1b
acc: report --declared and/or --posted accounts
2018-01-18 18:43:21 -08:00
Simon Michael
6210613f76
bs/bse/cf/is: show overall report span in title
2018-01-18 12:00:16 -08:00
Simon Michael
e9624486b6
bs/bse/cf/is: show local abbreviated month names on monthly columns
2018-01-18 11:46:12 -08:00
Simon Michael
3663c46502
bal: make --drop work with csv/html output
2018-01-18 11:26:57 -08:00
Simon Michael
3849ba7a9d
bal: warn that --budget -O csv doesn't work
2018-01-18 11:24:22 -08:00
Simon Michael
6b349e3123
bs/bse/cf/is: show all balances as normally-positive (experimental)
...
Income, liability and equity balances, which until now we have
always displayed as negative numbers, are now shown as normally positive
by these reports.
Negative numbers now indicate a contra-balance (eg an overdrawn
checking account), a net loss, a negative net worth, etc.
This makes these reports more like conventional financial statements,
and easier to read and share with normal people.
2018-01-18 11:01:07 -08:00
Simon Michael
3b2a9eaba4
lib: refactor
2018-01-15 14:15:52 -08:00
Simon Michael
79812f974a
rename NormalBalance -> NormalSign
2018-01-15 14:12:38 -08:00
Simon Michael
02516ef987
bal/bs/bse/cf/is: basic HTML output
2018-01-14 18:09:50 -08:00
Simon Michael
73ba78f092
bs/bse/cf/is: don't repeat the headings row for each subreport
2018-01-14 17:57:46 -08:00
Simon Michael
a26f7a9f51
include the column spans explicitly in CompoundBalanceReport
2018-01-14 17:49:45 -08:00
Simon Michael
de5d22ac21
bal/bs/is/cf: drop short name, indent fields from multicolumn CSV
2018-01-13 11:46:19 -08:00
Simon Michael
81e964502b
lib: refactor low-level text file reading
2018-01-04 16:17:25 -08:00
Simon Michael
1234671c69
equity: rename to close
2018-01-03 17:02:35 -08:00
Simon Michael
98dcd1406e
equity: more help cleanup
2018-01-03 15:55:59 -08:00
Simon Michael
31effcd731
equity: ignore any begin date; closed balances are historical
2018-01-03 13:50:16 -08:00
Simon Michael
98dd8c5f83
equity: improve help, note limitations, ignore --date2
...
Try to make this less confusing.
2018-01-03 12:53:37 -08:00
Simon Michael
e927e587e6
lib,cli: auto/forecast/budget option/docs cleanup, consistency
2017-12-31 10:01:18 -08:00
Simon Michael
f9e113c9ab
print: -B shows converted amounts again, as in 1.1, even without -x. #551 (Simon Michael, Mykola Orliuk)
2017-12-30 19:08:58 -08:00
Simon Michael
8f55b6137d
uses today's prices, not those of last txn date, for -V (fix #683,#648)
2017-12-29 21:42:59 -08:00
Simon Michael
69e255cead
lib: deduplicate, refactor valuation code
2017-12-29 16:52:08 -08:00
Simon Michael
0a9d724152
lib: clarify journalApplyValue comment
2017-12-29 16:06:53 -08:00
Simon Michael
3f124cf123
add, web: suggest implied and declared account names also
2017-12-29 12:19:44 -08:00
Dmitry Astapov
ac80c39535
lib: command-line help for --auto/--forecast matches docs
2017-12-14 17:20:07 -08:00
Simon Michael
b425e50ad1
change paths in code, scripts, readme
2017-12-06 18:16:35 -08:00
Dmitry Astapov
58c755df86
lib: fix budget display to always show %% consumed and handle costs
...
For multi-column balance report, if there are no transactions in the
given period for budgeted account, display [0% of <budget>] for
consistency.
If balance is a mix of commodities, convert to cost basis for the
purposes of computing percent of balance spent.
2017-12-01 15:52:29 -08:00
Dmitry Astapov
8cd58b71ab
bal: show percentage of budget spent
2017-11-26 14:57:41 +00:00
Dmitry Astapov
6ea5da2d9d
bal: --budget shows budget performance
...
Budget goals specified with periodic transactions (as with
hledger-budget) can now be displayed in balance report (but not in bs/is/cf).
--budget shows the target amount and percentage alongside the actual
amount, per account and period.
Unbudgeted accounts will be hidden, unless --show-unbudgeted is used.
Budgeted accounts are displayed folded (depth-clipped) at a depth
matching the budget specification. Unbudgeted accounts, if shown, are
displayed at their usual depth (in full detail, or according to --depth).
2017-11-26 14:57:41 +00:00
Dmitry Astapov
23f3da4e92
cli: --auto adds automated postings to reports
...
Ledger-style automated postings, previously supported only by
hledger-budget, have landed as a first-class feature. The --auto
flag activates them, so that any postings they generate are
included in reports.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
f101d5b515
cli: --forecast adds periodic transactions to reports
...
Ledger-style periodic transactions, previously supported only by
hledger-budget, have landed as a first-class feature. The --forecast
flag activates them, so that any transactions they generate are
included in reports.
2017-11-26 14:57:41 +00:00
Simon Michael
24d8336728
tag: first arg filters tag names, the rest filter transactions ( #261 )
2017-10-17 07:07:34 -07:00
jeevcat
3a9ea65b99
Rewrite of BalanceAssertion type to track its source position.
...
Fixes #481 .
2017-10-16 13:25:03 -07:00
Simon Michael
e33cce52bc
import: make --dry output valid journal format
...
[ci skip]
2017-10-14 08:59:09 -07:00
Simon Michael
5de51c9bad
fix warnings/errors found by make stacktest
2017-09-30 13:00:22 -10:00
Simon Michael
3e866563d1
cli: tweak commands list
2017-09-30 06:58:25 -10:00
Simon Michael
e5f794d2cb
cli,ui,web: a @FILE argument reads flags & args from FILE, one per line
2017-09-30 06:49:31 -10:00
Simon Michael
b5602fd771
bal: --sort-amount sorts tree-mode multi-column balance reports
2017-09-29 18:49:47 -10:00
Simon Michael
d9d92b3bf1
bs/bse/is: --sort-amount puts large liabilities/equities/incomes at top
...
Compound balance commands like these can now be aware of normal account
balance sign, and sort negative balances accordingly.
This also adds utility-ht as a dependency, only for the uncurry function
right now but it looks potentially useful to have.
2017-09-25 19:06:38 -10:00
Simon Michael
35e2e94228
bal/bs/cf/is: --sort-amount sorts by amount instead of account name
2017-09-25 06:17:46 -10:00
Simon Michael
fead7c5138
cli, ui, web: make -NUM a shortcut for --depth NUM
2017-09-22 16:14:30 -10:00
Simon Michael
0b7a50d0f0
import: sort new transactions by date, across files
2017-09-21 10:31:15 -10:00
Simon Michael
7edacdf443
cli: import command! hledger import *.csv adds new txns to main file
2017-09-17 18:57:51 -07:00
Simon Michael
c79c8b9883
print: help tweak
2017-09-15 10:08:58 -07:00
Simon Michael
669fa706c0
print: --new shows only transactions added since last time
...
First cut, error messages could be refined etc.
2017-09-15 09:55:17 -07:00
Simon Michael
e3c4a76119
add & use simpler readJournalFilesWithOpts/InputOpts api
2017-09-14 17:43:32 -07:00
Simon Michael
6e7a14b656
cli: new, comprehensive commands list
2017-09-14 05:55:44 -07:00
Simon Michael
bc66c75bd2
cli: some new short command aliases
...
accounts: a
balance: b
print: p, txns
register: r
2017-09-14 05:53:12 -07:00
Simon Michael
e3902ebc6f
cli: make tags a builtin command
2017-09-12 19:54:39 -07:00
Simon Michael
d2d7dbbce0
cli: make rewrite a builtin command
2017-09-12 19:51:27 -07:00
Simon Michael
89f694707b
cli: make register-match a builtin command
2017-09-12 19:43:41 -07:00
Simon Michael
bf99c74198
cli: make print-unique a builtin command
2017-09-12 19:37:31 -07:00
Simon Michael
258efdf83c
cli: make prices a builtin command
2017-09-12 19:28:01 -07:00
Simon Michael
4e6aa06b62
cli: make equity a builtin command
2017-09-12 19:17:47 -07:00
Simon Michael
fe9cd2a186
cli: make check-dupes a builtin command
2017-09-12 19:09:00 -07:00
Simon Michael
44e3d72926
checkdates: disable/document stack script stuff
2017-09-12 18:50:25 -07:00
Simon Michael
b4d70731e8
checkdates: docs
2017-09-12 18:24:22 -07:00
Simon Michael
3dc8dc428a
cli: comments
2017-09-12 18:23:38 -07:00
Simon Michael
84320fe97f
cli: fix import warning
2017-09-12 18:04:40 -07:00
Simon Michael
d2c8edb023
cli: refactor: simplify imports
2017-09-12 17:54:59 -07:00
Simon Michael
7f5985067d
cli: begin merging addons, make check-dates a builtin command
2017-09-12 17:54:25 -07:00
Simon Michael
55cebad0d5
cli: refactor: move commands to a subdirectory, reinstate test command
2017-09-12 10:04:36 -07:00
Simon Michael
a8ff9e91f6
cli: fix haddock error
2017-09-11 18:36:20 -07:00
Simon Michael
dc191ec76e
cli: refactor: new Commands module
...
Builtin commands are now gathered more tightly in a single module,
Hledger.Cli.Commands, reducing duplication and facilitating change.
The tests command was difficult and has been dropped for now.
The obsolete convert/info/man commands have been dropped.
cli: refactor: a proper commands list, better Main/Commands separation
The legacy "convert" command has been dropped.
The activity command's module is now named consistently.
2017-09-11 16:50:08 -07:00
Simon Michael
453cf431b2
cli: drop support for directory < 1.2
2017-09-08 11:42:38 -07:00
Simon Michael
ce83b789cf
cli: fix unused import warning
...
Only seen with GHC 7.10 for some reason.
2017-09-08 11:42:38 -07:00
Simon Michael
9501b43471
lib: pivot -> journalPivot, drop implicit tags notion ( #598 , #608 )
2017-09-05 10:48:35 -07:00
Jakub Zárybnický
13a6584440
ui, web: Enable --pivot and --anon in ui and web ( #474 )
2017-09-04 20:45:31 -07:00
Nicholas Niro
5e3c8aaaff
Implemented the new Cli command 'balancesheetequity`.
...
This new command shows the same information as balancesheet but also
includes the Equity accounts (equity:<account name>).
2017-08-28 16:58:48 -04:00
Simon Michael
d8696c5ea0
cli: clearer command-line help for --date2 ( fixes #604 )
2017-08-21 17:19:06 -07:00
Simon Michael
d7d5f8a064
add support for megaparsec 6 ( fixes #594 )
...
Older megaparsec is still supported.
Also cleans up our custom parser types,
and some text (un)packing is done in different places
(possible performance impact).
2017-07-27 19:20:46 -07:00
Simon Michael
b9571bd088
bal/bs/cf/is: consistently separate columns with a double space
...
Previously, amounts wider than the column headings would be separated
by only a single space. Also there was an extra space before the first
column.
2017-07-27 09:09:03 -07:00
Simon Michael
8851ebc29f
bs/cf/is: support --output-file and --output-format=txt|csv
...
The CSV output should be reasonably ok for dragging into
a spreadsheet and reformatting.
2017-07-25 19:43:45 -07:00
Simon Michael
71b206dfc5
lib: writeOutput clarification
2017-07-25 16:04:00 -07:00
Simon Michael
7204b1b9a1
lib: make output-file and output-format flags available separately
...
Kind of.. the output-file flag's help mentions output-format
2017-07-25 16:03:59 -07:00
Simon Michael
f49756231a
refactor compoundBalanceCommandMultiColumnReport etc.
2017-07-25 16:03:59 -07:00
Simon Michael
48d909c695
refactor compoundBalanceCommandMultiColumnReport etc., more correct docs
2017-07-25 14:28:52 -07:00
Simon Michael
5d93c39922
clarify balance report/cumulative/historical/tree mode shenanigans
2017-07-25 13:55:54 -07:00
Simon Michael
783c4c155c
whitespace
2017-07-25 13:51:26 -07:00
Simon Michael
f0119ec9c1
refactor compoundBalanceCommand
2017-07-25 13:22:03 -07:00
Simon Michael
115ed3aead
bs/is: show a trailing blank line in single column reports, for consistency
2017-07-25 12:46:56 -07:00