Simon Michael
b9d33a4294
bs: just declaring a Cash account no longer hides Asset accounts
...
Since Cash is also an Asset, declaring an account as Cash also disabled the fallback regexp for Asset accounts.
2021-02-13 08:09:45 -08:00
Simon Michael
50bfc26ca7
;lib: commentAddTagNextLine was broken
...
It would not add the tag when a comment already existed.
This affected hledger-print-location.hs and probably
the generated-transaction: tag in periodic transactions.
2021-02-12 13:56:02 -08:00
Simon Michael
d865ec5d65
lib: refactor: more consistent amount precision helpers
...
Hledger.Data.Amount:
renamed:
setAmountPrecision -> amountSetPrecision
setFullPrecision -> amountSetFullPrecision
setMixedAmountPrecision -> mixedAmountSetPrecision
added:
mixedAmountSetFullPrecision
2021-02-05 16:09:49 -08:00
Simon Michael
d5ed8090fa
;lib: document AmountPrecision
2021-02-05 16:09:49 -08:00
Simon Michael
37e49ada70
cli: rename --infer-value to --infer-market-price
...
For clarity; infer-value was too vague. The old spelling remains
supported for compatibility, but is now deprecated.
When typing, --infer-market or even --infer (for now) is sufficient.
2021-02-05 15:16:39 -08:00
Simon Michael
2a4170dd3b
ui: transaction: show all decimal places (like print, cf #931 )
...
On the accounts screen and register screen we round amounts according
to commodity styles, but when you drill down to a transaction you
probably want to see the unrounded amounts.
2021-02-04 08:13:55 -08:00
Simon Michael
f52117120b
lib: refactor: rename journal/transaction mapping helpers
...
Hledger.Data.Journal:
changed:
mapJournalTransactions -> journalMapTransactions
mapJournalPostings -> journalMapPostings
removed:
mapTransactionPostings
Hledger.Data.Transaction:
added:
transactionMapPostings
2021-02-04 08:13:55 -08:00
Simon Michael
6101368954
print: always show all decimal places ( #931 )
...
Ensures parseable and more sensible-looking output in more cases, and behaves more like Ledger's print.
There is still an issue with adding trailing zeroes, which would be nice to prevent.
2021-02-04 08:13:55 -08:00
Simon Michael
0274b30742
print: don't add decimal places in assertion/assignment amounts either ( #1465 )
2021-02-04 06:46:09 -08:00
Simon Michael
201f967411
print: show all decimal places in assertion/assignment amounts ( #1465 )
...
Overriding the commodity style, per https://hledger.org/hledger.html#commodity-display-style .
2021-02-03 18:11:44 -08:00
Stephen Morgan
b619b68f71
doc: Remove references to --value=cost, replacing them with --cost.
...
Since this is option is now just an alias for -B/--cost, and since it
may be removed soon, we make it undocumented, though it will still
behave as before. --value=cost,COMM is unsupported as well.
2021-01-28 13:57:48 -08:00
Stephen Morgan
c9eb7d1bcf
lib,cli,ui: Separate costing from valuation; each can now be specified
...
independently.
You can now combine costing and valuation, for example "--cost
--value=then" will first convert to costs, and then value according to
the "--value=then" strategy. Any valuation strategy can be used with or
without costing.
If multiple valuation and costing strategies are specified on the
command line, then if any of them include costing
(-B/--cost/--value=cost) then amounts will be converted to cost, and for
valuation strategy the rightmost will be used.
--value=cost is deprecated, but still supported and is equivalent to
--cost/-B. --value=cost,COMM is no longer supported, but this behaviour can be
achieved with "--cost --value=then,COMM".
2021-01-28 13:57:48 -08:00
Stephen Morgan
130739e3ef
lib,cli,ui: Introduce *ApplyCostValuation functions, which perform both
...
costing and valuation.
This currently is given a dummy NoCost argument and is equivalent to
"maybe id (*ApplyValuation ...)", but provides a constant interface so
that internal behaviour can be changed freely.
2021-01-28 13:57:48 -08:00
Stephen Morgan
9881ec9652
lib: Use mapMixedAmount more, decreasing reliance on internal representation of Mixed.
2021-01-28 13:57:48 -08:00
Stephen Morgan
9cf5015958
lib: bal --value=end without --historical should not report on fluctuation in value of historical postings.
2021-01-28 13:57:48 -08:00
Simon Michael
bf328e4e3c
lib: matchesDescription, matchesPayeeWIP
2021-01-17 16:37:38 -08:00
Simon Michael
422329fbfa
lib: journalPayeesUsed, journalPayeesDeclaredOrUsed
2021-01-17 16:37:38 -08:00
Simon Michael
db9b034037
lib: Journal: avoid a build failure if monad-extras is installed
2021-01-17 16:37:38 -08:00
Stephen Morgan
5d664fc528
lib: Expose textConcatBottomPadded.
2021-01-15 12:56:48 -08:00
Stephen Morgan
217bfc5e74
lib: Rename alignCell to textCell, minor cleanups.
2021-01-15 12:56:48 -08:00
Stephen Morgan
9ad0eef69b
lib: Update textConcatTopPadded to use Tabular.AsciiWide, same as concatTopPadded.
2021-01-15 12:56:48 -08:00
Stephen Morgan
2c2bd8b27e
lib: Refactor unlinesB to be cleaner and more efficient.
2021-01-15 12:56:48 -08:00
Simon Michael
e1e97f977e
;journal: hints for possible future work related to #1461
2021-01-13 18:15:10 -08:00
Simon Michael
034c317496
journal: allow commodity directive to set style of no-symbol commodity ( #1461 )
...
(cherry picked from commit c5571f6468ab11ffe3cd3f86a86f0b3253be10d1)
2021-01-13 17:57:18 -08:00
Stephen Morgan
2b545caae5
lib: Calculate value at posting date for register --value=then -M.
2021-01-12 18:20:21 -08:00
Stephen Morgan
b203822cd1
lib: Make sure to add a newline to the end of aregister report.
2021-01-10 20:50:46 -08:00
Simon Michael
c21b666130
csv: handle more sign variations, eg a sign by itself
...
simplifySign now covers a few more sign combinations that might arise.
And in particular, it strips a standalone sign with no number,
which simplifies sign flipping with amount-in/amount-out.
2021-01-07 10:06:38 -08:00
Simon Michael
4952ac22a1
;lib: valuation: improve --debug=2 output
2021-01-07 08:59:04 -08:00
Simon Michael
1ad919bc6d
lib: add level argument to fix traceAtWith
2021-01-07 08:57:25 -08:00
Stephen Morgan
c40db2b1eb
lib: Make sure AtEnd valuation behaviour is consistent between single- and multi-period reports ( #1424 ).
2021-01-05 14:42:09 -08:00
Stephen Morgan
83110e8820
lib,cli: Extend AtThen valuation to all report types.
...
Also adds a postingDate argument to amountApplyValuation, and re-orders
the ValuationType and (Transaction/Posting) arguments to
(transaction/posting)ApplyValuation, to be consistent with
amountApplyValuation.
2021-01-05 14:42:09 -08:00
Simon Michael
3d7d5c0db7
new price search that really finds the shortest path ( #1443 )
...
This one should also reliably prevent runaway searches in the event of more bugs, giving up after 1000 iterations.
2021-01-04 18:42:51 -08:00
Simon Michael
7c9303a15c
lib: valuation: simplify price search code
...
This version tries counting recursions instead of path length, but I
think they are the same.
2021-01-03 09:49:00 -08:00
Simon Michael
73678393b1
lib: valuation: don't hang when finding prices ( fixes #1439 )
...
Searching for prices during valuation no longer now properly excludes
price loops, avoiding near infinite looping with certain
configurations of market prices. Also we now always use a direct price
when available, rather than searching unnecessarily.
Price searching progress info, useful for troubleshooting, is now
displayed with --debug=2.
There could still be some corner cases we don't handle correctly. We
now give up with an error message if the searched price chains get too
long (> 1000). More importantly, we should also give up if the search
iterates too many times, but this is not done yet.
2021-01-02 07:13:07 -08:00
Stephen Morgan
7d3cf1747a
lib: Make consistent naming scheme for showMixedAmount* functions,
...
add conversion between old API and new API in the documentation.
2021-01-02 15:08:09 +11:00
Stephen Morgan
1f891a4145
doc: Fix some outdated documentation.
2021-01-02 15:08:09 +11:00
Stephen Morgan
e63138ef7d
lib,cli: Assorted fixes for older GHC.
2021-01-02 15:08:09 +11:00
Stephen Morgan
e4e533eb9f
lib,cli,ui: Replace some uses of String with Text, get rid of some unpacks, clean up showMixed options.
2021-01-02 15:08:09 +11:00
Stephen Morgan
07a7c3d3a8
lib: Use Text and Text builder only in postingAsLines.
2021-01-02 15:08:09 +11:00
Stephen Morgan
13c111da73
lib,cli,ui: Use WideBuilder for Tabular.AsciiWide.
...
Move WideBuilder to Text.WideString.
2021-01-02 15:08:09 +11:00
Stephen Morgan
b9c00dce61
lib,cli,ui: Implement all showMixed* functions in terms of DisplayAmountOpts and WideBuilder.
2021-01-02 15:08:09 +11:00
Stephen Morgan
0a686e220e
lib: Use AmountDisplayOpts for showAmount*, reducing need for many different named functions.
2021-01-02 15:08:09 +11:00
Stephen Morgan
c86e8a9794
lib: Implement showAmountHelper using AmountBuilder.
2021-01-02 15:08:09 +11:00
Stephen Morgan
5dedec83da
lib: showamountquantity shows directly, rather than parsing string output of show instance for Quantity.
2021-01-02 15:08:09 +11:00
Stephen Morgan
f998a791cf
lib: Remove unused optional width argument for StringFormat.
2021-01-02 15:08:09 +11:00
Stephen Morgan
462a13cad7
lib,cli: Use Text Builder for Balance commands.
2021-01-02 15:08:09 +11:00
Stephen Morgan
089564b04b
lib,cli: Use Text for CompoundPeriodicReport titles.
2021-01-02 15:08:09 +11:00
Stephen Morgan
541c4fc18c
lib,cli: Use Text for CSV values.
2021-01-02 15:08:09 +11:00
Stephen Morgan
e3ec01c3c6
lib,cli,ui: Use Text for showDate and related.
2021-01-02 15:08:09 +11:00
Stephen Morgan
74b296f865
lib,cli: Make showTransaction return Text rather than String.
2021-01-02 15:08:09 +11:00
Stephen Morgan
7e44b89bb4
lib: Remove unused label on TranspactionReport and AccountTransactionsReport.
2021-01-02 15:08:09 +11:00
Stephen Morgan
5752f1c5cb
lib,cli: Use Text Builder for Account Transaction Reports.
2021-01-02 15:08:09 +11:00
Stephen Morgan
12a6435c51
lib: Add wrap convenience function.
2021-01-02 15:08:09 +11:00
Stephen Morgan
646ee0bce5
cli: Using Text Builder for posting reports.
2021-01-02 15:08:09 +11:00
aragaer
2084b845e0
journal: Ignore AUTO commodity when strict checking
...
AUTO commodity is a placeholder for postings with missing amounts. It
should be ignored when doing a strict commodity check.
Fixes #1419
2020-12-31 09:54:23 -08:00
Simon Michael
8306420b61
check: also check "accounts"/"commodities" on demand
...
(cherry picked from commit 0c2bf54f2955e3a25fd0282acc42608f957abaea)
2020-12-31 08:33:36 -08:00
Simon Michael
31ea37a785
;check: accounts, commodities, payees, ordereddates: improve errors
...
Error messages for these four are now a bit fancier and more
consistent. But not yet optimised for machine readability.
Cf #1436 .
Added to hledger-lib: chomp1, linesPrepend[2].
2020-12-30 18:13:34 -08:00
Simon Michael
e59603a04a
;check errors: drop unwanted newline & "strict mode" prefix
2020-12-30 18:08:31 -08:00
Damien Cassou
b47d582583
;check: fixes
2020-12-30 18:08:31 -08:00
Simon Michael
3c232fbd7d
check: add "payees" check requiring payee declarations
2020-12-30 18:08:30 -08:00
Damien Cassou
e092b38631
;lib: add 'payee' directive
2020-12-30 18:08:30 -08:00
Stephen Morgan
a64d1aa6d0
bin: Update bin scripts for current hledger-lib.
...
(cherry picked from commit bc4aef17b7fa13ec0754b93325e1c5e5ee04f1e7)
2020-12-30 08:59:03 -08:00
Simon Michael
12447ffab7
;lib: restore list of hledger debug levels
2020-12-26 17:27:28 -08:00
Stephen Morgan
e406cebcce
lib: Remove unused AtDefault constructor for ValuationType.
2020-12-19 11:59:44 -08:00
Stephen Morgan
46093b8de7
lib,ui: For hledger-ui, do valuation for all valuation types, not just
...
AtCost and AtDefault.
Remove unused valuationTypeIs* functions.
2020-12-19 11:59:44 -08:00
Stephen Morgan
cdec0f9382
lib: Remove special handling of now-inaccessible AtDefault valuation constructor.
...
This simplifies all the *ApplyValuation functions, as they no longer
need mreportdate or multiperiod arguments.
2020-12-19 11:59:44 -08:00
Stephen Morgan
0c23619ae7
lib: Valuation has changed; and -V now acts like --value=end.
2020-12-19 11:59:44 -08:00
Stephen Morgan
8981b3e196
lib: Include empty columns in MultiBalanceReports.
...
This was previously done for CompoundBalanceReport and when --empty was
called; this makes the behaviour consistent.
2020-12-18 20:54:08 -08:00
Stephen Morgan
439eddc8b9
lib: Include price directives when calculating journal end date.
2020-12-16 19:04:33 -08:00
Simon Michael
9617d0dd81
;lib: multibalancereport sorting implementation notes ( #1414 , #1415 )
2020-12-14 09:36:34 -08:00
Stephen Morgan
92645cca14
lib: Sorting accounts by amount should also consider account name after amounts.
2020-12-14 06:48:47 -08:00
Simon Michael
349ffd7c0b
updateReportSpecFromOpts -> updateReportSpec[With]
2020-12-12 12:05:44 -08:00
Simon Michael
a10f9f4ea9
;lib: comment
2020-12-11 11:11:15 -08:00
Simon Michael
44d59eab23
;lib: Hledger.Utils.Debug: haddock
2020-12-09 13:55:55 -08:00
Simon Michael
51e3e9cbfa
;lib: Hledger.Utils.Debug: improve module haddock
2020-12-09 13:23:30 -08:00
Simon Michael
e33667f580
check: support quoted check name + args
...
A "hledger check" argument may now be a quoted string containing
the check name followed by space-separated arguments, for
checks which make use of those. This means the check command
can replicate "check-dates --unique" and (in principle)
"check-fancyassertions ASSERTIONS..". Eg:
hledger check "dates --unique"
I think it'll be better for checks to take no arguments or options,
so this is probably just a transitional feature for compatibility.
2020-11-29 20:48:31 -08:00
Simon Michael
8c23a16bf8
journal: strict mode also requires commodity declarations
2020-11-27 17:54:55 -08:00
Simon Michael
ec3ad14ae5
strict mode: -s/--strict requires posted accounts to be declared
2020-11-26 08:48:16 -08:00
Simon Michael
ea0d4901ab
lib: journalApplyAliases performance tweak
2020-11-25 21:06:31 -08:00
Simon Michael
0dc8eca68a
lib: remove partial code from journalApplyAliases etc.
2020-11-25 21:06:31 -08:00
Simon Michael
94b3f090be
csv, timedot, timeclock: respect --alias options ( fix #859 )
...
Command-line account aliases now also affect transactions read
from these formats (not just journal format).
lib: journalApplyAliases, transactionApplyAliases, postingApplyAliases
helpers have been added.
2020-11-24 09:17:01 -08:00
Simon Michael
9b9f2543d8
;lib: regexReplace: note the kind of RegexError still possible
2020-11-24 09:16:08 -08:00
Simon Michael
221a6d9001
lib: new more robust price lookup implementation, fixing #1402
2020-11-23 18:08:41 -08:00
Simon Michael
d60c1f764d
lib: partial valuation fix, more debug output for #1402
2020-11-22 13:10:31 -08:00
Simon Michael
654ab4243a
; comments
2020-11-20 16:45:40 -08:00
Simon Michael
4a74680a22
;lib: rename some budget report helpers
...
The new names are of course verbose, but more consistent and revealing.
2020-11-19 14:59:08 -08:00
Simon Michael
372c9724a8
bal: improve budget, MultiBalanceReport debug output
...
Comply with debug levels policy, clarify some labels.
2020-11-19 14:42:46 -08:00
Simon Michael
5bb9006b6c
bal: support CSV output for --budget reports ( #1155 )
2020-11-18 16:29:04 -08:00
Simon Michael
5d4a6cd47e
;csv: tweak CsvRules Show for consistency with others
2020-11-18 07:14:28 -08:00
Simon Michael
ec2a774b18
cli, lib: move functional tests into hledger/test/
2020-11-16 08:47:41 -08:00
Simon Michael
0ce9c352ec
add: don't let number style disturb the default ( Fixes #1378 )
2020-11-14 11:08:01 -08:00
Simon Michael
1f94aa1628
;lib: make file modification/reloading helpers more robust ( #1390 )
...
Work on hledger-web tests showed some bad behaviour, in particular
journalReloadIfNewer would always reload a journal read from a string
or stdout. This is now fixed, and an ugly read.show conversion has
been cleaned up.
Hledger.Cli.Utils API changes:
removed:
- journalSpecifiedFileIsNewer
- fileModificationTime
added:
- utcTimeToClockTime
changed:
- journalFileIsNewer now requires a file argument
2020-11-13 16:28:35 -08:00
Simon Michael
70f95e9f2c
;doc: journal: clarify that it's the first-seen digit group style
2020-11-10 09:29:04 -08:00
Simon Michael
8bdb28a991
csv, journal: infer style from first amount, as documented, not last
...
This has been broken since hledger 1.12 (!)
2020-11-10 08:58:28 -08:00
Simon Michael
f43c7e41d1
csv, journal: debug output
...
The prolific "assignment" output is now at level 9.
2020-11-10 08:39:32 -08:00
Simon Michael
a97daaf322
lib: replace pretty-show with pretty-simple
...
pretty-simple, already used in .ghci, will hopefully give nicer debug
output, including for values which don't have Read-able Show output.
This should mean that we can start removing custom string-like Show
instances that were a workaround for pretty-show.
We are using the latest version (4.0.0.0) to get compact output.
Here's some old pretty-show output:
CsvRules
{ rdirectives = [ ( "skip" , "1" ) ]
, rcsvfieldindexes = [ ( "date" , 1 ) , ( "amount" , 2 ) ]
, rassignments = [ ( "amount" , "%2" ) , ( "date" , "%1" ) ]
, rconditionalblocks = []
}
And the new pretty-simple output:
CsvRules
{ rdirectives=
[ ( "skip", "1" ) ]
, rcsvfieldindexes=
[ ( "date", 1 ), ( "amount", 2 ) ]
, rassignments=
[ ( "amount", "%2" ), ( "date", "%1" ) ]
, rconditionalblocks= []
}
Non-compact pretty-simple output would be:
CsvRules
{ rdirectives=
[
( "skip"
, "1B"
)
]
, rcsvfieldindexes=
[
( "date"
, 1
)
,
( "amount"
, 2
)
]
, rassignments=
[
( "amount"
, "%2"
)
,
( "date"
, "%1"
)
]
, rconditionalblocks=[]
}
Also:
- Account's Show instance no longer converts : to _ in account names
- drop unused pretty-show dependency from hledger, hledger-ui packages
- regenerate hledger-lib with the older hpack that's shipped in stack
2020-11-10 08:06:11 -08:00
Simon Michael
66af4962a1
;lib: drop a todo, seems ok
2020-11-09 17:14:38 -08:00
Simon Michael
bfb5c6ee2a
lib: global commodity display styles can be set in InputOpts or Journal, overriding all others
2020-11-09 17:14:37 -08:00
Simon Michael
0eddbe7a4b
;lib: reader cleanups
2020-11-09 17:14:37 -08:00
Stephen Morgan
74ce7be556
lib,ui: Make sure ReportSpec is updated when updating ReportOpts.
2020-11-09 16:30:15 -08:00