Simon Michael
4957008890
;lib: regex utilities: cleanup ( #1312 )
2020-08-06 11:35:04 -07:00
Simon Michael
a112085092
lib: add alternate regex utilities that don't call error ( #1312 )
2020-08-06 11:18:08 -07:00
Simon Michael
ede4bfd5b4
;mark more partial functions ( #1312 )
2020-08-05 17:29:43 -07:00
Simon Michael
3f55c23603
;review, tag all error calls with an easier to find PARTIAL: comment ( #1312 )
2020-08-05 16:08:33 -07:00
Simon Michael
242c05fc9a
lib, journal: parseQuery, modifyTransactions are now total ( #1312 )
...
modifyTransactions now also requires a reference date, for parsing queries.
Relative dates are now permitted in auto posting rules.
2020-08-05 13:44:04 -07:00
Simon Michael
7751d6947c
lib: parseAmountQueryTerm: allow whitespace around arg parts ( #1312 )
...
Whitespace around the operator, sign, or number is now tolerated.
2020-08-05 13:44:04 -07:00
Simon Michael
38a4704641
lib: make parseAmountQueryTerm total, improve docs/tests ( #1312 )
2020-08-05 13:44:04 -07:00
Stephen Morgan
08ad220448
lib: In quarterdatespanp, use yearp and allow uppercase Q.
2020-08-04 09:10:53 -07:00
Simon Michael
5d40b54043
;doc: regen manuals
2020-08-01 12:41:54 -07:00
Henning Thielemann
9c9701fe7d
lib: quarterdatespanp ( fixes #1247 )
2020-07-31 17:37:41 -07:00
Henning Thielemann
ccac09fb1b
lib: doubledatespanp: fix and re-enable doctest
2020-07-31 17:37:41 -07:00
Stephen Morgan
dc41cee2b0
lib: datep now requires years to be at least four digits.
2020-07-31 17:22:27 -07:00
Stephen Morgan
ffb5cf0773
lib: Ensure parsed years have at least 4 digits.
2020-07-31 17:22:27 -07:00
Stephen Morgan
7b9f9ae49c
lib: Refactor reportingintervalp to be more compact and do less backtracking.
2020-07-31 17:22:27 -07:00
Stephen Morgan
696d9c73b0
lib: Remove unnecessary try in parsers, replace unnecessary string' with string, rewrite some parsers in applicative style.
2020-07-31 17:22:27 -07:00
Dmitry Astapov
a82c383370
lib: disallow tabs in simplecommoditysymbolp ( fixes #1301 )
2020-07-28 15:33:47 -07:00
Martin Michlmayr
76b04ceb4f
doc: fix regex in example for regex aliases
2020-07-27 17:20:40 -07:00
Martin Michlmayr
76cb45def6
doc: clarify virtual prices
2020-07-25 06:32:31 -07:00
Stephen Morgan
081ee390ab
lib: Change skipMany spacenonewline to takeWhileP Nothing isNonNewlineSpace.
2020-07-22 14:58:53 -07:00
Simon Michael
d738ca8c60
;lib: cleanups
2020-07-19 06:13:38 -07:00
Simon Michael
21b91f17cb
;regen manuals
2020-07-18 12:37:06 -07:00
Simon Michael
e057857c04
;lib: CBCSubreportSpec note
2020-07-17 10:02:14 -07:00
Simon Michael
e4f8b80d3b
;journal: account types: fix detection of Cash as an Asset, add tests
2020-07-17 10:02:14 -07:00
Simon Michael
6a772fb94e
;journal: account types: doc fix
2020-07-17 08:22:01 -07:00
Simon Michael
fd9171df07
journal: account types: add Cash, tweak fallback regexp, rewrite docs
2020-07-17 08:02:12 -07:00
Stephen Morgan
30f02b0882
lib: account name clipping takes Maybe Int as depth.
2020-07-17 07:41:27 -07:00
Stephen Morgan
51ea6d9f25
lib: Make queryDepth return Maybe Int.
2020-07-16 10:05:53 -07:00
Stephen Morgan
dc076b0d5b
lib: Use text library functions for stripping.
2020-07-16 10:03:25 -07:00
Stephen Morgan
ed99aea7d5
lib: Introduce takeEnd to get rid of some reverse . take n . reverse.
2020-07-16 10:03:25 -07:00
Simon Michael
403cb457b7
;cabal files
2020-07-14 12:09:45 -07:00
Simon Michael
3452270241
cli: --color/--colour option; smart emacs, windows autodetection ( #1296 )
2020-07-14 12:08:36 -07:00
Simon Michael
4f7bee7abf
;regen help, manuals
2020-07-14 10:25:04 -07:00
Simon Michael
9198449ee3
areg: an account transaction register like the ones in ui/web ( #1294 )
...
;areg: debug output
;areg: show a title indicating which account was picked
This might be a bit of a pain for scripting, but otherwise it can be
quite confusing if your argument matches an account you didn't expect.
;areg: improve CSV headings
;areg: show at most two commodities per amount
2020-07-14 10:24:57 -07:00
Simon Michael
3f86bd545f
lib, ui, web: stricter accountTransactionsReport filtering
...
accountTransactionsReport now filters transactions more thoroughly, so
eg transactions dated outside the report period will not be shown.
Previously the transaction would be shown if it had any posting dated
inside the report period. Possibly some other filter criteria now get
applied that didn't before. I think on balance this will give slightly
preferable results.
2020-07-14 10:22:14 -07:00
Simon Michael
bf2fe3d88e
;lib: valuation debug output note
2020-07-14 10:21:45 -07:00
Simon Michael
febd8bb457
lib: postingsReport: follow debug levels policy
2020-07-13 11:53:05 -07:00
Simon Michael
0489622a3f
;csv: doc: subheadings
2020-07-10 16:36:15 -07:00
Stephen Morgan
fd729beabf
lib: Work around hiding deprecation warnings, don't traverse zeros twice in normaliseHelper.
2020-07-10 12:18:51 -07:00
Stephen Morgan
ee3ed6acdf
lib: Simplify and speed up amountLooksZero.
2020-07-10 12:18:51 -07:00
Stephen Morgan
99b74dc389
lib: Refactor sortAccountTreeByAmount
2020-07-10 09:08:03 -07:00
Stephen Morgan
463eee7bf4
lib: Replace {pr,prr}Negate with fmap negate.
2020-07-10 09:08:03 -07:00
Simon Michael
f518da747c
balcmds: avoid short month names in multi-year monthly reports
2020-07-09 12:56:46 -07:00
Simon Michael
f4991d05b4
lib: list exports of Hledger.Reports.BudgetReport
2020-07-09 12:55:04 -07:00
Simon Michael
23bef9a01b
;refactor: extracted reportPeriodName for making report headings
2020-07-09 12:54:20 -07:00
Simon Michael
4b9a76068f
lib: spanStartYear, spanEndYear, spanYears DateSpan helpers
2020-07-09 12:52:40 -07:00
Simon Michael
a89a4e1b42
bal --budget: show end-date column headings when appropriate
...
bal --budget was always showing the period as column heading,
as if for a change report. With --cumulative or --historical
it should show the end date, like other balance reports. Cf
https://hledger.org/hledger.html#multicolumn-balance-report .
2020-07-09 11:49:19 -07:00
Stephen Morgan
f5e1fb2625
lib: Refactor BudgetReport to re-use MultiBalanceReport code.
2020-07-07 18:46:34 -07:00
Stephen Morgan
bfda10ff20
lib: Refactor MultiBalanceReport row sorting, make sure totals are calculated after pruning.
2020-07-07 18:46:34 -07:00
Stephen Morgan
bde4d7e2e4
lib: Use last column of historical balance as total. Use totals for balanceReport.
2020-07-07 17:56:38 -07:00
Stephen Morgan
1425301a8c
lib, cli: Use --flat as the default mode for all reports.
2020-07-07 15:49:08 -07:00
Stephen Morgan
df84a417d7
doc: Remove references to old limitations of boring parent ellision.
2020-07-07 15:49:08 -07:00
Simon Michael
ae4fce8077
;regen manuals
2020-07-07 13:42:11 -07:00
Michael Sanders
278032bc8d
;doc: Revise doc for & operator
2020-07-07 12:51:01 -07:00
Michael Sanders
868c6fdbac
csv: Add docs and integration test for & operator
2020-07-07 12:51:01 -07:00
Michael Sanders
5ec0a518da
csv: Add support for & operators in conditional blocks
2020-07-07 12:51:01 -07:00
Simon Michael
95ee601548
;regen manuals
2020-07-07 10:19:56 -07:00
Simon Michael
81d3ac7d66
;csv: doc: fix some if-related links
2020-07-06 15:03:06 -07:00
Simon Michael
0bbd88fe7f
;doc: changelogs
2020-07-05 09:24:16 -07:00
Simon Michael
25c15d4bab
bal --budget: elide multicommodity amounts
2020-07-05 06:59:16 -07:00
Simon Michael
44c3eb1904
add a color argument to most amount show helpers, drop cshow variants
...
This is an API change, but it seems better than having additional
colour-supporting variants and trying to avoid duplicated code.
I stopped short of changing showAmount, so cshowAmount still exists.
2020-07-05 06:59:16 -07:00
Simon Michael
2739a70a38
balcmds: elide amounts with 3 or more commodities, unless --no-elide
...
Multicolumn balance reports showing many commodities tend to become
unreadably wide, especially in tree mode. Now by default we show at
most two commodities, and a count of the rest if there are more than
two. This should help keep reports somewhat readable by default.
2020-07-05 06:59:16 -07:00
Simon Michael
3d57d4793d
;doc: regen manuals
2020-07-04 16:17:13 -07:00
Stephen Morgan
c811ea4c7b
lib, cli, ui, web: intopt and friends now make sure their arguments fit
...
inside bounds.
2020-07-03 12:35:51 -07:00
Stephen Morgan
c96947284e
lib: Minor refactor.
2020-07-03 12:35:51 -07:00
Simon Michael
765fb732c9
debug: move command parsing debug output down to level 8
2020-07-03 11:37:01 -07:00
Simon Michael
6cc896a8fe
debug: show aliasing and auto postings with other reading (level 7)
2020-07-03 11:30:52 -07:00
Stephen Morgan
4fc72328d2
lib, cli: Introduce convienience function compoundBalanceReport.
2020-06-28 07:29:49 -07:00
Stephen Morgan
604868cea5
lib, cli: Move CompoundBalanceReport into ReportTypes, compoundReportWith into MultiBalanceReport, share postings amongst subreports.
2020-06-28 07:29:49 -07:00
Stephen Morgan
d09a90b38b
lib: Refactor multiBalanceReportWith into getPostingsbyColumn and generateMultiBalanceReport.
2020-06-28 07:29:49 -07:00
Stephen Morgan
e089358758
lib: Using --drop in tree mode with boring parent ellision no longer considers all parents boring. Add tests to check this fact.
2020-06-25 18:05:50 -07:00
Stephen Morgan
015492553e
lib: Move unifyMixedAmount to Hledger.Data.Amount, make it return Maybe Amount, export it.
2020-06-24 10:24:11 -07:00
Simon Michael
e090e0f949
add lower bound needed for aeson, to help cabal ( #1268 )
2020-06-23 14:55:42 -07:00
Stephen Morgan
b3cd865786
lib: Add fortnightly as a synonym for biweekly.
2020-06-23 06:48:20 -07:00
Simon Michael
e0fab4f882
Merge pull request #1256 from Xitian9/balanceReport
...
SMorgan:
This PR aims to accomplish two major goals:
- Get boring parent ellision working for multiBalanceReport
- Remove the special BalanceReport code, and just use multiBalanceReport
I believe it does both, with the following additional benefits:
A refactor of multiBalanceReportWith, to make the structure easier to follow, and with a clearer division of responsibilities
All decisions for how an account name is to be displayed are now made in multiBalanceReport, rather than scattered around the code base
Some miscellaneous improvements in account name rendering, including --drop now working with MultiBalanceReports, and addressing some of #373
Algorithmic changes:
- Using HashMap AccountName (Map DateSpan Account) instead of [[MixedAmount]] is new. I admit I didn't profile this change (though given the nubs and lookups, I thought it was appropriate), so I'm glad it produces a speedup.
- Producing the starting balances no longer calls the whole balanceReport, just the first few functions to get what it needs.
- displayedAccounts is completely rewritten. Perhaps one subtle thing to note is that in tree mode it no longer excludes nodes with zero inclusive balance unless they also have zero exclusive balance.
SMichael:
I'll mark the passing of the old multiBalanceReport, into which I poured many an hour :). It is in a way the heart (brain ?) of hledger - the key feature of ledgerlikes (balance report) and a key improvement introduced by hledger (tabular multiperiod balance reports). You have split that 300-line though well documented function into modular parts, which could be a little harder to understand in detail but are easier to understand in the large and more amenable to further refactoring. Then you fixed some old limitations (boring parent eliding in multi period balance reports, --drop with tree mode reports), allowing us to drop the old balanceReport and focus on just the new multiBalanceReport. And for representing the tabular data you replaced the semantically correct but inefficient list of lists with a map of maps, speeding up many-columned balance reports significantly (~40%). Last and not least you made it really easy to review. Thanks @Xitian9, great work.
2020-06-23 06:42:22 -07:00
Stephen Morgan
ded4f42218
lib: multiBalanceReport: Accounts with no subaccounts are never interesting parents, even if no_elide_ is set.
2020-06-23 13:19:52 +10:00
Stephen Morgan
7a74fc4f21
lib: Elide account if more components are dropped than exist.
2020-06-22 13:41:22 -07:00
Simon Michael
176011905e
;changelogs
2020-06-22 12:24:01 -07:00
Simon Michael
368297102d
;regen manuals
2020-06-22 12:20:14 -07:00
Dmitry Astapov
21349c161e
lib: only memoize in csv reader when there are more than 15 cond. blocks
2020-06-22 12:10:47 -07:00
Dmitry Astapov
8844ef1b5f
lib: put conditionalblockp pasrser first as it is a more common case
2020-06-22 12:10:47 -07:00
Dmitry Astapov
ed01e57b23
lib: tabular rules separator cannot be space
2020-06-22 12:10:47 -07:00
Dmitry Astapov
c397b90b5b
lib: memoize "if blocks that assign filed f" for 50% CSV reader speedup
2020-06-22 12:10:47 -07:00
Dmitry Astapov
834e9ec104
lib: condition tables in csv rules + tests
2020-06-22 12:10:47 -07:00
Stephen Morgan
826faa18c2
lib: Tweaks to work with stack-8.2.
2020-06-22 23:08:22 +10:00
Stephen Morgan
5168d136ed
lib: multiBalanceReport: Enable --drop for tree mode.
2020-06-22 22:28:08 +10:00
Stephen Morgan
fcaec1540a
lib: multiBalanceReport: Remove unnecessary addition of parent accounts.
2020-06-22 22:27:11 +10:00
Stephen Morgan
e079c8b808
lib: multiBalanceReport: Remove old balanceReport code, update some tests.
2020-06-22 22:27:09 +10:00
Stephen Morgan
edb28d51c5
lib: multiBalanceReport: Get boring parent ellision working for multiBalanceReport.
2020-06-22 22:25:23 +10:00
Stephen Morgan
cd41404fd4
lib: multiBalanceReport: Get --drop working with multiBalanceReports.
2020-06-22 22:21:31 +10:00
Stephen Morgan
6467c252c7
lib: multiBalanceReport: Move responsibility for display name into displayedAccounts
2020-06-22 22:21:30 +10:00
Stephen Morgan
5f0918217a
multibalanceReport: Move responsibility for determining displayed name in multiBalanceReportWith, not at point of consumption.
2020-06-22 22:20:09 +10:00
Stephen Morgan
0dedcfbe15
lib: multiBalanceReport: Miscellaneous simplifications.
2020-06-22 22:11:54 +10:00
Stephen Morgan
1e7e80504f
lib: multiBalanceReport: Keep Account around longer so we can use both aibalance and aebalance.
2020-06-22 22:10:24 +10:00
Stephen Morgan
0e89a389d6
lib: multiBalanceReport: Split displayedAccounts, calculateReportQuery into separate functions.
2020-06-22 22:07:55 +10:00
Stephen Morgan
b106850391
lib: multiBalanceReport: Split postprocessReport and calculateTotalsRow into separate functions.
2020-06-22 21:59:15 +10:00
Stephen Morgan
baa5844d4e
lib: multiBalanceReport: Change indentation.
2020-06-22 21:54:38 +10:00
Stephen Morgan
0b30b2f9fb
lib: multiBalanceReport: Split sortRows into a separate function.
2020-06-22 21:51:38 +10:00
Stephen Morgan
7a9bf998e5
lib: multiBalanceReport: Split buildReportRows into a separate function, remove unnecessary query and valuation.
2020-06-22 21:50:27 +10:00
Stephen Morgan
a81c6d0397
lib: multiBalanceReport: Split accumValueAmounts into a separate function.
2020-06-22 21:48:20 +10:00
Stephen Morgan
b2bed03b4c
lib: multiBalanceReport: Don't import BalanceReport in MultiBalanceReport.
2020-06-22 21:45:42 +10:00
Stephen Morgan
0dcfddd201
lib: multiBalanceReport: Break calculateAccountChanges and acctChangesFromPostings separate functions.
2020-06-22 21:43:30 +10:00
Stephen Morgan
a72c4f285b
lib: multiBalanceReport: Break calculateColumns into a separate function.
2020-06-22 21:39:41 +10:00
Stephen Morgan
fc6a30b234
lib: multiBalanceReport: Break calculateColSpans into a separate function.
2020-06-22 21:38:16 +10:00
Stephen Morgan
44dcd613e8
lib: multiBalanceReport: Break getPostings and makeReportQuery into separate functions.
2020-06-22 21:36:30 +10:00
Stephen Morgan
f21bf53610
lib: multiBalanceReport: Break startingBalances into separate function.
2020-06-22 21:33:16 +10:00
Simon Michael
ce4de7aeb9
;doc: regen manuals
...
[ci skip]
2020-06-21 10:36:21 -07:00
Simon Michael
24996caaeb
bump to dev version
2020-06-21 10:35:52 -07:00
Simon Michael
6216258b41
;doc: finalise 1.18.1 changelogs
2020-06-21 10:22:53 -07:00
Simon Michael
128836f6f8
;changelogs
2020-06-20 18:24:15 -07:00
Simon Michael
6bfbecf662
journal: doc: document recursive wildcards
2020-06-20 17:12:30 -07:00
Simon Michael
e3cae4aadc
valuation: implement new --infer-value flag & semantics ( #1239 , #1253 )
2020-06-19 14:40:20 -07:00
Simon Michael
467210c796
;valuation: refactor, update, clean up
2020-06-19 14:40:20 -07:00
Simon Michael
122309ced7
;lib: Debug comment
2020-06-19 14:39:32 -07:00
Simon Michael
06d5014f5f
;lib: multibalancereport: apply debug output policy
2020-06-16 21:00:08 -07:00
Simon Michael
873bd57bcf
;regen manuals
2020-06-16 19:34:27 -07:00
Martin Michlmayr
7310951178
doc: fix typos
2020-06-16 19:13:18 -07:00
Simon Michael
562480efea
;lib: debug doc
2020-06-14 17:27:15 -07:00
Simon Michael
684cb45e1a
tweak debug levels, document some guidelines
...
Beginnings of a project-wide policy for what output to show at
each debug level, for now. Later we'll want more flexibility,
eg filtering by topic.
2020-06-14 17:17:09 -07:00
Simon Michael
6e36ede9aa
;valuation: refactor
2020-06-14 15:48:16 -07:00
Simon Michael
c8773854f0
;doc: valuation: more cleanup
2020-06-13 12:41:02 -07:00
Simon Michael
6211a59144
;journal: doc: fix market prices link
2020-06-13 11:40:01 -07:00
Simon Michael
4bf4c62181
journal: default valuation commodity from P only, take 2 ( #1239 , #1253 )
2020-06-13 09:50:36 -07:00
Simon Michael
03b4b2dedc
journal: default valuation commodity comes from P directives only ( #1239 , #1253 )
2020-06-12 21:25:38 -07:00
Simon Michael
729e87066f
;cabal files
2020-06-07 13:00:40 -07:00
Simon Michael
aee6b49d36
;bump date in changelogs, installer
2020-06-07 12:45:55 -07:00
Simon Michael
b389ee98dd
;update tested-with
2020-06-07 11:59:36 -07:00
Simon Michael
e8e27821d9
;finalise changelogs
2020-06-07 11:51:40 -07:00
Simon Michael
09b6d44562
;manuals
2020-06-06 17:21:18 -07:00
Simon Michael
a54376e204
;regen cabal files
2020-06-06 17:20:13 -07:00
Simon Michael
19020939c9
;bump versions to 1.18
2020-06-06 17:18:15 -07:00
Simon Michael
fa077415d4
;edit changelogs
2020-06-06 16:53:41 -07:00
Simon Michael
c59565ca5b
;fix Json.hs with old GHCs
2020-06-06 15:33:04 -07:00
Simon Michael
b50c3a694c
;lib: note issue with Journal's JSON
2020-06-06 12:54:58 -07:00
Simon Michael
b86ced5ee9
lib: replace jsonPrettyText with toJsonText in Hledger.Data.Json
2020-06-06 12:54:58 -07:00
Simon Michael
d68650b2c1
;csv: doc: link to balance-type
2020-06-05 18:02:06 -07:00
Simon Michael
5757c386d8
;draft changelogs
2020-06-05 15:18:23 -07:00
Simon Michael
e5a0bddbe6
;regen manuals
2020-06-05 14:44:37 -07:00
Stephen Morgan
be25fe360e
lib: Parser now accepts .. as a synonym for to in date ranges.
2020-06-04 19:30:42 -07:00
Stephen Morgan
2f71da8838
lib: More consistent period formatting.
2020-06-04 19:30:42 -07:00
Simon Michael
057b79558c
;journal: edit the forecasting section ( #1250 )
2020-06-04 19:22:04 -07:00
Simon Michael
d963944c99
lib: add jsonPrettyText helper, depend on aeson-pretty
2020-06-04 15:12:57 -07:00
Simon Michael
00e9e844ac
journal: the include directive now accepts a file format prefix
...
This works with glob patterns too, applying the prefix to each path.
This can be useful when included files don't have the standard file
extension, eg:
include timedot:2020*.md
2020-06-04 13:59:26 -07:00
Dmitry Astapov
b7413edf22
lib: --forecast=PERIODICEXPR. Fixes #835 , #1236
2020-06-03 15:53:00 -07:00
Dmitry Astapov
cbf4029b8b
lib: test for issue with sign checking code + fix
2020-06-01 15:17:15 -07:00
Simon Michael
97f2235bca
;lib: refactor amount cost functions
...
Rename costOfAmount -> amountCost, costOfMixedAmount -> mixedAmountCost,
drop amountToCost, mixedAmountToCost.
2020-05-31 15:48:08 -07:00
Simon Michael
660ba7e1d9
lib: clarify zero-checking function names
...
isZeroAmount -> amountLooksZero
isReallyZeroAmount -> amountIsZero
isZeroMixedAmount -> mixedAmountLooksZero
isReallyZeroMixedAmount -> mixedAmountIsZero
isReallyZeroMixedAmountCost dropped
2020-05-29 18:57:22 -07:00
Simon Michael
1087e790cf
;lib: refactor transactionCheckBalanced
2020-05-29 17:57:10 -07:00
Simon Michael
7bcc205622
lib: drop transactionPostingBalances
2020-05-29 17:33:53 -07:00
Simon Michael
0a5fa33f9d
split more long transaction balancing errors into lines; refactor
2020-05-29 16:31:15 -07:00
Simon Michael
924ec1c98d
journal: clearer transaction balancing errors; refactor
...
As mentioned by netvor on IRC, the unbalanced transaction error was
not too clear when postings all have the same sign.
Some other wording has been clarified, and the main error message is
now shown on multiple lines for readability (at the cost of
predictability/grepability..)
There's also a probably unnoticeable change: selecting which parts of
the error to show is now based on display precisions (reusing the
balanced check logic), rather than original precisions.
2020-05-29 16:07:58 -07:00
Simon Michael
61264cfdc0
lib: isNegativeMixedAmount handles all-negative multi-comm. amounts
2020-05-29 13:07:02 -07:00
Simon Michael
e6f9f09b41
;lib: refactor, consolidate, add transactionCheckBalanced
2020-05-29 11:57:48 -07:00
Henning Thielemann
ec27eb6b17
;web: maintain query when choosing a different 'inacct' account on the sidebar
2020-05-27 04:59:55 -07:00
Simon Michael
9417ee625e
;regen manuals
2020-05-25 17:49:01 -07:00
Simon Michael
93154e9251
update and clean up valuation docs ( #1239 )
2020-05-25 17:45:31 -07:00
Simon Michael
e1ddfc3a1b
lib: also infer market prices from transactions, like Ledger ( #1239 ) (WIP)
2020-05-25 17:45:31 -07:00
Dmitry Astapov
cbacef21eb
lib: multiBalanceReport derives query from ReportOpts
2020-05-25 15:50:14 -07:00
Simon Michael
40c296a446
lib: rename finaliseJournal -> journalFinalise
2020-05-23 09:45:35 -07:00
Simon Michael
2c1cbb7956
;csv: remove a comment breaking doctests
2020-05-12 18:01:05 -07:00
Simon Michael
f167c223a2
;csv: emphasize regular expressions features and doc
2020-05-10 13:03:09 -07:00
Simon Michael
6b2dfad98c
;csv: clarify that whitespace is not stripped when matching
2020-05-09 15:43:44 -07:00
Simon Michael
3919f0945a
;csv: correction, that field equality trick was just a fluke
2020-05-09 15:37:11 -07:00
Simon Michael
8f1b2a32fa
;csv: start regexp examples section, show field equality testing
2020-05-09 13:35:45 -07:00
Simon Michael
3ef2fc9567
show a clearer error message on encountering a malformed regexp
2020-05-07 17:33:05 -07:00
Simon Michael
647a77225d
;journal: doc: tweak
2020-05-05 10:37:51 -07:00
Simon Michael
4999827eaf
;journal: doc: mention blank/unindented lines in transactions
2020-05-05 10:26:50 -07:00
Simon Michael
6935c46b2c
;regen cabal files with latest stack/hpack (2.3.1/0.33.0)
2020-05-02 17:31:35 -07:00
Vladimir Sorokin
5b88bfb834
csv: Increase maximum number of postings in CSV reader from 9 to 99.
...
The ordering of journalfieldnames is changed in order to comply with the requirement stated in the comment:
"Names must precede any other name they contain, for the parser".
If left unchanged, "account1" would precede "account11", "account12", and so on, which would break the parsing.
With the new ordering, "account11" precedes "account1".
2020-04-26 14:52:02 -07:00
Simon Michael
df92c36679
;changelogs
2020-04-19 14:45:07 -07:00
Simon Michael
784d882e01
csv: combine amount assignments better, fix 1.17.1 regression ( #1226 )
2020-04-16 19:04:36 -07:00
Simon Michael
b149c0ba0c
;csv: tweak the too-many-amounts error more
2020-04-16 12:59:19 -07:00
Simon Michael
dd3db5a4e2
;csv: doc: try to clarify status of unnumbered amount rules ( #1226 )
2020-04-16 09:07:17 -07:00
Simon Michael
3693fd4eb6
;csv: mention doc url in too many amounts error ( #1226 )
2020-04-16 08:36:04 -07:00
Simon Michael
1428291dd6
don't let case of file extension break file format detection ( #1225 )
2020-04-15 11:31:28 -07:00
Simon Michael
e80b69fdc7
;journal: doc: commmodity typo
2020-04-10 17:54:00 -07:00
Simon Michael
3b59a95a54
;cli, journal: doc: consistent heading capitalisation, whitespace
2020-04-08 21:14:38 -07:00
Simon Michael
4195a55287
;journal: fix double curly braces, since they are our m4 delimiters
2020-04-08 20:26:22 -07:00
Simon Michael
3ad2e50ec5
journal: also parse Ledger-style "virtual posting costs" - (@), (@@)
2020-04-08 20:22:03 -07:00
Simon Michael
847f924828
journal: comment fix
2020-04-08 20:00:18 -07:00
Simon Michael
f4a1a31712
journal: also support lot dates ([DATE])
2020-04-08 19:55:55 -07:00
Simon Michael
fedde7fab1
journal: also support the total lot price variants ({{}}, {{=}})
2020-04-08 19:18:39 -07:00
Simon Michael
5beeb56a87
;journal: document improved lot price parsing; changelog
2020-04-08 19:02:24 -07:00
Simon Michael
ea3b290dd0
journal: more flexible, Ledger-compatible parsing of lot prices
...
We now accept (but still ignore) a fixed or nonfixed ({=} or {}) lot
price following a posting amount, and it may appear before or after a
transaction price (@ or @@). And it may no longer appear after a
balance assertion.
Also: fixedlotpricep renamed to lotpricep, now also parses non-fixed
lot prices. A bit of amount parsers cleanup.
2020-04-08 15:26:18 -07:00
Simon Michael
10f8dc84a5
period expressions: allow "until", like Ledger (synonym for "to")
2020-04-08 14:26:38 -07:00
Simon Michael
34dd7bf053
;csv: clarify the rule file search directory a little
2020-04-08 12:25:38 -07:00
Simon Michael
898cda4ee5
;changelogs
2020-04-06 18:38:38 -07:00
Simon Michael
3cc79a67f2
csv: don't discard explicit assignments of a 0 amount
...
Eg: an `amount1 $0.00` assignment was generating a posting1 with
missing amount.
2020-04-05 14:19:02 -07:00
Simon Michael
f219bba494
allow spaces between sign and number, when parsing
2020-04-04 14:18:04 -07:00
Simon Michael
741bfdc462
;update cabal file
2020-03-30 15:28:42 -07:00
Simon Michael
216cf8d596
;enable doctest with ghc 8.10
2020-03-30 15:28:11 -07:00
Simon Michael
9868d7f20d
;lib: update emacs code-folding config
...
orgstruct-mode was dropped from org 9.2, and I shouldn't have been
forcing it on anyway.
The new config allows its "replacement", outshine-mode, to do similar
code folding when you press tab on any of the lines matching
outline-regexp. But only if you patch it as mentioned at
https://github.com/alphapapa/outshine/issues/77 .
Enable it by, eg: (add-hook 'haskell-mode-hook 'outshine-mode)
2020-03-28 17:09:47 -07:00
Simon Michael
293e2d81d1
;changelogs
2020-03-25 18:42:26 -07:00
Simon Michael
e15eabdf15
csv: ignore amount if any amountN's are assigned; improve error msg
...
The change for hledger 1.17.1 broke one of my csv rules, where I used
`amount` but then tried to override it with `amountN`s in a
conditional block; the two clashed. Now in that situation any
`amountN`s take precedence, causing `amount` to be ignored entirely.
Also clarified the "too many non-zero amounts" error message a bit.
2020-03-25 18:09:41 -07:00
Pavan Rikhi
f574b782fa
Fix Documentation for journalExpenseAccountQuery
2020-03-22 17:17:06 -07:00
Simon Michael
d868a7e170
;update cabal files
2020-03-22 10:49:49 -07:00
Simon Michael
c6951bf7c6
;doc: more tweaks to package readmes, hackage descriptions
2020-03-22 10:49:02 -07:00
Simon Michael
40d3a5c1f4
;update cabal files
2020-03-22 09:28:10 -07:00
Simon Michael
9ca8d7cea9
;update tested-with
2020-03-22 09:27:50 -07:00
Simon Michael
d59ccb260b
;doc: consistent markdown readmes for packages, part 2
2020-03-22 09:27:34 -07:00
Simon Michael
2b15418ddd
;update cabal files
2020-03-22 09:08:37 -07:00
Simon Michael
617c2ecbc5
;doc: consistent markdown readmes for packages
2020-03-22 09:07:47 -07:00
Simon Michael
1a606870ca
;regen docs
2020-03-19 16:05:52 -07:00
Simon Michael
32dc29a1db
;journal: better link
2020-03-19 14:33:50 -07:00
Simon Michael
6e37d11bdd
;changelogs: typo, fix hledger-web item
2020-03-19 14:26:55 -07:00
Simon Michael
495dfa37a4
;journal: document banker's rounding behaviour
2020-03-19 14:24:57 -07:00
Simon Michael
9631ca561c
;update changelogs "high water marks"
2020-03-19 14:09:37 -07:00
Simon Michael
4191aad049
;update changelogs from release branch
2020-03-19 14:07:53 -07:00
Simon Michael
612a4d1c0e
;gen cabal
2020-03-19 11:38:05 -07:00
Simon Michael
5f2db97016
;lib: disable doctest with GHC 8.10 for now ( sol/doctest#246 )
2020-03-19 11:37:55 -07:00
Simon Michael
96b4f0be4f
require newer Decimal, math-functions, fixing inconsistent rounding
...
Decimal 0.5.1+ changed to banker's rounding (round to nearest even
number), and math-functions 0.3.3.0 (used by roi) fixed various
precision-related issues. Now we require the latest versions of these.
This was causing some functional test failures when building with old
GHCs/snapshots.
2020-03-19 10:10:55 -07:00
Simon Michael
05ad168792
;regen manuals
2020-03-18 16:17:24 -07:00
Simon Michael
cf7de57836
;update changelogs
2020-03-18 16:17:13 -07:00
Simon Michael
abc53024fc
;journal: doc: drop "transaction modifiers", just say "auto postings"
2020-03-18 15:11:31 -07:00
Simon Michael
31edd54c1a
;journal: clarify scope of auto posting rules ( #1212 )
2020-03-18 14:55:20 -07:00
Simon Michael
4e7a893efc
;csv: cleanup
2020-03-17 17:55:32 -07:00
Simon Michael
84165f5a0c
;journal: fix tests
2020-03-17 17:48:17 -07:00
Simon Michael
2cec32cebe
journal: a more verbose commodity error message with examples
2020-03-17 13:36:48 -07:00
Simon Michael
6a01b1f438
;lib, journal: fix some "decimal point" mentions
2020-03-17 13:36:19 -07:00
Simon Michael
a1361ecc04
csv: don't force a second posting with amount1
...
A rewrite and simplification of the posting-generating code. The
"special handling for pre 1.17 rules" should now be less noticeable.
amount1/amount2 no longer force a second posting or explicit amounts
on both postings. (Only amount/amount-in/amount-out do that.)
Error messages and handling of corner cases may be more robust, also.
2020-03-16 16:18:58 -07:00
Simon Michael
2aab02f4e8
;journal: document directives/alias multi-file limitation clearly
2020-03-16 09:00:38 -07:00
Simon Michael
e0c3275d74
lib: debug helpers traceAt, traceAtWith
2020-03-11 19:08:05 -07:00
Simon Michael
8e04bd11fe
;doc: csv: clarify posting field rules, note a limitation
2020-03-10 15:01:52 -07:00
Simon Michael
70e85d8e4b
;doc: regen manuals
...
[ci skip]
2020-03-07 15:06:39 -08:00
Simon Michael
1883ff4499
bump to dev version
2020-03-07 15:06:18 -08:00
Simon Michael
be25c28822
ci: --pedantic is too much for now
2020-03-07 14:53:12 -08:00
Simon Michael
5639b47d85
;ci: use --pedantic for all; fix a warning with unit test suites
2020-03-07 14:43:50 -08:00
Simon Michael
7ad0f9dd6d
;lib, cli: fix success-hiding in unit test suites
2020-03-07 14:10:22 -08:00
Simon Michael
5ab31f1111
;lib, cli: hide successes in unit test suites' output
2020-03-07 04:00:55 -08:00
Simon Michael
3565f49acf
;re-enable doctest suite, with a workaround for cabal 3 ( #1139 )
2020-03-06 18:30:32 -08:00
Simon Michael
432b1c8ff4
;doc: update manual versions
...
[ci skip]
2020-03-05 15:51:54 -08:00
Simon Michael
21fdcec6b7
journal: inclusive balance assignments now work ( #1207 )
2020-03-05 13:38:19 -08:00
Simon Michael
f18c74fff7
;journal: a test for inclusive balance assignment, disabled ( #1207 )
...
[ci skip]
2020-03-05 11:19:04 -08:00
Simon Michael
5ed6fe586a
;refactor transaction balancing/checking ( #1207 )
2020-03-05 11:18:59 -08:00
Simon Michael
66d2897cc9
;doc: changelog entry
...
[ci skip]
2020-03-02 12:49:16 -08:00
Stephen Morgan
e0dde6fe57
lib: Remove non-law-abiding Monoid instance for Journal.
2020-03-02 12:45:30 -08:00
Stephen Morgan
702c958487
lib: Replace some utility functions with library functions.
2020-03-02 12:45:30 -08:00
Simon Michael
61679e0178
;lib: doc: changelog
2020-03-01 22:06:58 -08:00
Simon Michael
2ea66bcda4
;lib: bump version to 1.17.0.1
...
hledger's first use of the fourth version component.
[ci skip]
2020-03-01 22:06:55 -08:00
Simon Michael
374be00223
;lib: fix org headings and doctest setup that were breaking haddock
...
(and in some cases, installation).
[ci skip]
2020-03-01 22:00:39 -08:00
Simon Michael
6dfdc2bee8
;one more cabal file update. Not in hackage tarballs.
2020-03-01 17:42:20 -08:00
Simon Michael
07a05d5c76
;doc: finalise changelogs
...
More cleanup needed, but time's up.
[ci skip]
2020-03-01 17:33:18 -08:00
Simon Michael
061bf73b61
;doc: regen manuals
...
[ci skip]
2020-03-01 17:29:01 -08:00
Simon Michael
ba44d00bed
;bump version to 1.17
2020-03-01 17:29:01 -08:00
Simon Michael
889767f1bd
;bump tested-with
...
[ci skip]
2020-03-01 17:28:43 -08:00
Simon Michael
04fb132496
;doc: draft changelogs
...
[ci skip]
2020-03-01 16:44:28 -08:00
Simon Michael
752e8ed49a
;timedot: update docs
2020-03-01 14:06:29 -08:00
Simon Michael
07258d727f
;timedot: parsing fixes; allow blank lines/comments within days
2020-03-01 14:06:29 -08:00
Simon Michael
b9954bff60
journal, lib: the include directive no longer guesses the format
...
The include directive now tries just one reader, based on the file
extension and defaulting to journal, like the rest of hledger.
(It doesn't yet handle a reader prefix.)
Reader-finding utilities have moved from Hledger.Read to
Hledger.Read.JournalReader so the include directive can use them.
Reader changes:
- rExperimental flag removed
- old rParser renamed to rReadFn
- new rParser field provides the actual parser.
This seems to require making Reader a higher-kinded type, unfortunately.
2020-03-01 14:06:29 -08:00
Simon Michael
b1f3880c3d
lib: drop the file format auto-detection feature
...
For a long time hledger has auto-detected the file format when it's
not known, eg when reading from a file with unusual extension (like
.dat or .txt), or from standard input (-f-), or when using the include
directive (which currently ignores file extensions).
Auto-detecting has been done by trying all readers until one succeeds.
This could guess wrong in some cases, but it was so rare that it has
been working fine.
Recently, more conveniences have been added to timedot format,
increasing its overlap with journal format, which makes this kind of
auto-detection unreliable.
Auto-detection and auto-detection failures are (probably) still pretty
rare in practice. But when it does happen it's confusing, giving
misleading errors or false successes (eg printing timedot entries
instead of a journal error).
For predictability and to minimise confusion, hledger no longer tries
to guess; when there's no file extension or reader prefix, it assumes
journal format. To specify one of the other formats, you must use a
standard file extension (.timeclock, .timedot, .csv, .ssv, .tsv), or a
reader prefix (-f csv:foo.txt, -f timedot:-).
For now, the include directive still tries to autodetect
(journal/timeclock/timedot), and this can't be overridden; it will be
fixed later.
Experimental; testing and feedback welcome.
2020-03-01 14:06:29 -08:00
Simon Michael
32eb839eac
timedot: rewrite the parser, making it more usable
...
Now, org headlines before the first day entry are ignored,
regardless of content.
Note, blank lines inside a day entry are not allowed, currently.
It's now easier to be both valid journal and valid timedot at the same
time, so guessing the format of stdin is unreliable, and some tests
are failing. See following commit.
2020-03-01 14:06:29 -08:00