Stephen Morgan
020dd15be4
ref: Simplify parsing of commodity-style option.
2021-09-18 11:41:53 -10:00
Stephen Morgan
6b400194e3
cln: Add explicit export list for Hledger.Data.Account.
...
All modules in hledger-lib now have explicit export lists, with the
exception of Hledger.Data.Types.
2021-09-18 11:41:53 -10:00
Stephen Morgan
c1d85ba17c
ref: Move JournalParser and ErroringJournalParser to Hledger.Data.Journal.
...
This is so that Hledger.Utils does not depend on Hledger.Data in any
way, and allows us more flexibility in refactoring Hledger.Data.
2021-09-18 11:41:53 -10:00
Stephen Morgan
62351dd329
fix: bal: Make sure boring parent accounts in compound balance reports
...
include historical postings when account declarations have undeclared
parents. (#1698 )
2021-09-17 15:24:19 -10:00
Stephen Morgan
3b5262e54a
fix: performance: Speed up PostingsReport when called with a large number of intervals. ( #1683 )
...
It is still very slow for large journals, but at least it doesn't run
any slower for interval reports.
2021-09-16 17:40:24 -10:00
Stephen Morgan
0f205295e8
pkg!: test: Use --today in Journal parsing functions.
2021-09-09 14:40:39 -10:00
Stephen Morgan
6905e40c4d
pkg!: cli: Add --today option to explicitly set the current date. ( #1674 )
...
rawOptsTo* in hledger-lib now takes a day as an argument, and does not
live in the IO monad, since it's now pure.
This is so that we can run tests containing future transactions that
won't fail as soon as ‘the future’ actually arrives.
2021-09-09 14:40:39 -10:00
Stephen Morgan
50f73b7434
fix: balance: Show all empty accounts in flat balance reports. ( #1688 )
...
Previously we only showed empty leaves.
2021-09-08 18:17:27 -10:00
Simon Michael
5485990cac
fix: csv: report correct CSV line number in errors
...
Some errors in CSV conversion, such as a failing balance assertion,
were always being reported as line 2.
Reported by Lawrence Wu.
2021-09-01 06:58:15 -10:00
Stephen Morgan
8274da81fc
cln: tests: Remove test and tests, which are just aliases for testCase
...
and testGroup.
Replacing these removes a layer of indirection, and reduces the need to
depend on Hledger.Utils.Test.
2021-08-30 16:32:19 -10:00
Stephen Morgan
1c402edb06
pkg!: Remove Hledger.Data.Commodity module.
...
There are no modules which depend on Hledger.Data.Commodity which don't
also depend on Hledger.Data.Amount. Though Hledger.Data.Amount is a very
large module and might be broken up, Hledger.Data.Commodity only defines
three very small functions which are used, and so can be combined with
little cost.
2021-08-30 15:57:33 -10:00
Stephen Morgan
a0f9d7560f
pkg!: Remove Hledger.Utils.Color module.
...
This module was only used in one place in Hledger.Data.Amount. The code
has been moved directly into Hledger.Utils.
2021-08-30 15:57:33 -10:00
Stephen Morgan
f1994d5aa8
pkg!: Remove Hledger.Utils.Tree module.
...
This very small module was only used in Hledger.Data.Account, so the
code was moved into that module instead.
2021-08-30 15:57:33 -10:00
Stephen Morgan
1ed06f3bc8
pkg!: Remove Hledger.Utils.UTF8IOCompat module.
...
This module does nothing beyond define error' and usageError, which have
been moved to Hledger.Utils.
2021-08-30 15:57:33 -10:00
Stephen Morgan
f3eacebc1d
dev: lens: Use TemplateHaskell for ReportOpts and ReportSpec.
...
Also rename overWithReport/setWithReport to overEither/setEither.
2021-08-28 19:12:04 -10:00
Stephen Morgan
435ec992f9
dev: lens: Introduce lenses for InputOpts and BalancingOpts.
2021-08-28 19:12:04 -10:00
Stephen Morgan
c784da3d0c
dev: lens: Create a Template Haskell helper for generating classy lenses
...
for hledger options.
This works for BalancingOpts, InputOpts, ReportOpts, ReportSpec, and CliOpts.
2021-08-28 19:12:04 -10:00
Stephen Morgan
13206d0b18
cln: Rename balancingOpts to defbalancingopts, to be consistent with definputopts, defreportopts, etc.
2021-08-28 19:12:04 -10:00
Stephen Morgan
d248aec313
cln: hlint: Remove eta reduce warnings.
2021-08-27 06:13:56 -10:00
Stephen Morgan
32dad455fd
cln: hlint: Clean up section related warnings.
2021-08-27 06:13:56 -10:00
Stephen Morgan
761e00caa4
cln: hlint: Clean up lambda related warnings.
2021-08-27 06:13:56 -10:00
Stephen Morgan
8bf7c95697
cln: hlint: Clean up Functor related hlint warnings, and NOINLINE warning.
2021-08-27 06:13:56 -10:00
Stephen Morgan
21e62ffcbd
cln: hlint: Remove unless and $> warnings.
2021-08-27 06:13:56 -10:00
Stephen Morgan
beecb3c9ac
cln: hlint: Clean up list related hlint warnings.
2021-08-27 06:13:56 -10:00
Stephen Morgan
22db5c4a3f
cln: hlint: Remove warnings to use library list functions.
2021-08-27 06:13:56 -10:00
Stephen Morgan
330c21659f
cln: hlint: Clean up Maybe related hlint warnings.
2021-08-27 06:13:56 -10:00
Stephen Morgan
e13239386f
cln: hlint: Clean up == and elem related hlint warnings.
2021-08-27 06:13:56 -10:00
Stephen Morgan
3431b1b0d9
cln: hlint: Clean up map-fusion related hlint warnings.
2021-08-26 21:00:35 -10:00
Stephen Morgan
eb6047e81b
cln: hlint: Remove redundant where and lambda warnings.
2021-08-26 21:00:35 -10:00
Stephen Morgan
71032c637e
cln: hlint: Remove cons warnings.
2021-08-26 21:00:35 -10:00
Stephen Morgan
435fbf001e
cln: hlint: Remove <|> and bimap warnings.
2021-08-26 21:00:35 -10:00
Stephen Morgan
46b0745412
cln: hlint: Remove Either and Bifunctor related warnings.
2021-08-26 21:00:35 -10:00
Stephen Morgan
69502c44fe
cln: hlint: Fix record patterns warnings.
2021-08-26 21:00:35 -10:00
Stephen Morgan
1c211f8ab8
cln: hlint: Fix redundant return warning.
2021-08-26 21:00:35 -10:00
Stephen Morgan
c07ad29a87
imp!: forecast: Implements more intuitive logic for the forecast interval. ( #1648 )
...
The forecast period begins on:
- the start date supplied to the `--forecast` argument, if present
- otherwise, the later of
- the report start date if specified with -b/-p/date:
- the day after the latest normal (non-periodic) transaction in the journal, if any
- otherwise today.
It ends on:
- the end date supplied to the `--forecast` argument, if present
- otherwise the report end date if specified with -e/-p/date:
- otherwise 180 days (6 months) from today.
Note that the previous behaviour did not quite match the documentation,
so this also acts as a bug fix for #1665 .
2021-08-26 20:32:30 -10:00
Stephen Morgan
aa7a99a437
cln: hlint: Fix hlint warnings in Query.hs.
2021-08-26 07:23:11 -10:00
Stephen Morgan
d13ce0e134
cln: hlint: Remove Unused LANGUAGE pragma ignore.
2021-08-26 07:23:11 -10:00
Stephen Morgan
1e69fd81ea
cln: hlint: Remove if warnings.
2021-08-26 07:23:11 -10:00
Stephen Morgan
fed75c58e9
cln: hlint: Clean up hlint warnings not already ignored in hlint.yaml.
2021-08-25 20:44:36 -10:00
Stephen Morgan
063aaf35b5
cln: hlint: Rename pattern variables to avoid hlint parsing errors.
2021-08-25 20:44:36 -10:00
Stephen Morgan
06312c353a
fix!: register: Tighten up spacing around the date in register reports. ( #1655 )
...
As a side effect, this changes the Json representation of the
PostingsReport. The maybe report end date is now replaced with a maybe
period.
2021-08-22 08:15:22 -10:00
Simon Michael
e24b7ef90f
fix: warning introduced by 993d0b5c
2021-08-22 06:58:08 -10:00
Stephen Morgan
34ab164b32
cln: Remove redundant bang patterns.
2021-08-21 17:50:21 -10:00
Stephen Morgan
912b5e6c23
cln: Derive more instances in Hledger.Data.Types to reduce orphans.
...
Also clean up some outdated or inaccurate comments.
2021-08-21 17:50:21 -10:00
Simon Michael
993d0b5c54
cli: --forecast now rejects instead of silently ignoring an interval
...
Something that confused me when testing #1632 .
2021-08-20 17:55:59 -10:00
Lawrence
8a5addfb02
lib: implement periodic expressions for weekday et al
...
Implementation lifts DayOfWeek (renamed to DaysOfWeek) to a list of
days. This should match the previous behavior for single-element lists
2021-08-20 20:30:18 -05:00
Stephen Morgan
4576f8effd
pkg!: Migrate the last of old-time over to time, changing ClockTime to
...
POSIXTime.
This eliminates old-time, which has been deprecated for a while, from
our dependencies.
This introduces a slight incompatibility, as a small number of functions
now take/return POSIXTime instead of ClockTime. Generally you will be
using the current time, in which case you should use getPOSIXTime from
Data.Time.Clock.POSIX instead of getClockTime.
utcTimeToClockTime has been removed, as it is now equivalent to
utcTimeToPOSIXSeconds from Data.Time.Clock.POSIX.
2021-08-19 17:47:19 -10:00
Simon Michael
c135c1a3fc
;cln: slight typos cleanup ( #1654 )
2021-08-19 17:43:45 -10:00
Lawrence
710823e5d7
imp: bal: handle commodity-column flag in compound balance reports ( #1654 )
2021-08-19 17:37:30 -10:00
Lawrence
277227acf8
fix: budget: handle transpose flag with commodity-columns ( #1654 )
...
Budget formatting is quite complicated since we must determine widths
for each of the transposed columns
2021-08-19 17:37:29 -10:00