hledger-lib 1.29 → 1.29.1
raw patch · 13 files changed
+68/−18 lines, 13 filesdep +base-compatdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: base-compat
Dependency ranges changed: base
API changes (from Hackage documentation)
+ Hledger.Utils.String: strip1By :: (Char -> Bool) -> String -> String
+ Hledger.Utils.String: strip1Char :: Char -> Char -> String -> String
+ Hledger.Utils.String: stripBy :: (Char -> Bool) -> String -> String
- Hledger.Data.Balancing: balancingOpts :: HasBalancingOpts c_a3wnJ => Lens' c_a3wnJ BalancingOpts
+ Hledger.Data.Balancing: balancingOpts :: HasBalancingOpts c_a3wt6 => Lens' c_a3wt6 BalancingOpts
- Hledger.Data.Balancing: class HasBalancingOpts c_a3wnJ
+ Hledger.Data.Balancing: class HasBalancingOpts c_a3wt6
- Hledger.Data.Balancing: commodity_styles :: HasBalancingOpts c_a3wnJ => Lens' c_a3wnJ (Maybe (Map CommoditySymbol AmountStyle))
+ Hledger.Data.Balancing: commodity_styles :: HasBalancingOpts c_a3wt6 => Lens' c_a3wt6 (Maybe (Map CommoditySymbol AmountStyle))
- Hledger.Data.Balancing: ignore_assertions :: HasBalancingOpts c_a3wnJ => Lens' c_a3wnJ Bool
+ Hledger.Data.Balancing: ignore_assertions :: HasBalancingOpts c_a3wt6 => Lens' c_a3wt6 Bool
- Hledger.Data.Balancing: infer_balancing_costs :: HasBalancingOpts c_a3wnJ => Lens' c_a3wnJ Bool
+ Hledger.Data.Balancing: infer_balancing_costs :: HasBalancingOpts c_a3wt6 => Lens' c_a3wt6 Bool
- Hledger.Read.Common: aliases :: HasInputOpts c_a3KrM => Lens' c_a3KrM [String]
+ Hledger.Read.Common: aliases :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 [String]
- Hledger.Read.Common: anon__ :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.Common: anon__ :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.Common: auto__ :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.Common: auto__ :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.Common: balancingopts :: HasInputOpts c_a3KrM => Lens' c_a3KrM BalancingOpts
+ Hledger.Read.Common: balancingopts :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 BalancingOpts
- Hledger.Read.Common: class HasInputOpts c_a3KrM
+ Hledger.Read.Common: class HasInputOpts c_a3Kx9
- Hledger.Read.Common: forecast :: HasInputOpts c_a3KrM => Lens' c_a3KrM (Maybe DateSpan)
+ Hledger.Read.Common: forecast :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 (Maybe DateSpan)
- Hledger.Read.Common: infer_costs :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.Common: infer_costs :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.Common: infer_equity :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.Common: infer_equity :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.Common: inputOpts :: HasInputOpts c_a3KrM => Lens' c_a3KrM InputOpts
+ Hledger.Read.Common: inputOpts :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 InputOpts
- Hledger.Read.Common: ioDay :: HasInputOpts c_a3KrM => Lens' c_a3KrM Day
+ Hledger.Read.Common: ioDay :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Day
- Hledger.Read.Common: mformat :: HasInputOpts c_a3KrM => Lens' c_a3KrM (Maybe StorageFormat)
+ Hledger.Read.Common: mformat :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 (Maybe StorageFormat)
- Hledger.Read.Common: mrules_file :: HasInputOpts c_a3KrM => Lens' c_a3KrM (Maybe FilePath)
+ Hledger.Read.Common: mrules_file :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 (Maybe FilePath)
- Hledger.Read.Common: new__ :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.Common: new__ :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.Common: new_save :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.Common: new_save :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.Common: pivot :: HasInputOpts c_a3KrM => Lens' c_a3KrM String
+ Hledger.Read.Common: pivot :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 String
- Hledger.Read.Common: reportspan :: HasInputOpts c_a3KrM => Lens' c_a3KrM DateSpan
+ Hledger.Read.Common: reportspan :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 DateSpan
- Hledger.Read.Common: strict :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.Common: strict :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.InputOptions: aliases :: HasInputOpts c_a3KrM => Lens' c_a3KrM [String]
+ Hledger.Read.InputOptions: aliases :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 [String]
- Hledger.Read.InputOptions: anon__ :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.InputOptions: anon__ :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.InputOptions: auto__ :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.InputOptions: auto__ :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.InputOptions: balancingopts :: HasInputOpts c_a3KrM => Lens' c_a3KrM BalancingOpts
+ Hledger.Read.InputOptions: balancingopts :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 BalancingOpts
- Hledger.Read.InputOptions: class HasInputOpts c_a3KrM
+ Hledger.Read.InputOptions: class HasInputOpts c_a3Kx9
- Hledger.Read.InputOptions: forecast :: HasInputOpts c_a3KrM => Lens' c_a3KrM (Maybe DateSpan)
+ Hledger.Read.InputOptions: forecast :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 (Maybe DateSpan)
- Hledger.Read.InputOptions: infer_costs :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.InputOptions: infer_costs :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.InputOptions: infer_equity :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.InputOptions: infer_equity :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.InputOptions: inputOpts :: HasInputOpts c_a3KrM => Lens' c_a3KrM InputOpts
+ Hledger.Read.InputOptions: inputOpts :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 InputOpts
- Hledger.Read.InputOptions: ioDay :: HasInputOpts c_a3KrM => Lens' c_a3KrM Day
+ Hledger.Read.InputOptions: ioDay :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Day
- Hledger.Read.InputOptions: mformat :: HasInputOpts c_a3KrM => Lens' c_a3KrM (Maybe StorageFormat)
+ Hledger.Read.InputOptions: mformat :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 (Maybe StorageFormat)
- Hledger.Read.InputOptions: mrules_file :: HasInputOpts c_a3KrM => Lens' c_a3KrM (Maybe FilePath)
+ Hledger.Read.InputOptions: mrules_file :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 (Maybe FilePath)
- Hledger.Read.InputOptions: new__ :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.InputOptions: new__ :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.InputOptions: new_save :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.InputOptions: new_save :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Read.InputOptions: pivot :: HasInputOpts c_a3KrM => Lens' c_a3KrM String
+ Hledger.Read.InputOptions: pivot :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 String
- Hledger.Read.InputOptions: reportspan :: HasInputOpts c_a3KrM => Lens' c_a3KrM DateSpan
+ Hledger.Read.InputOptions: reportspan :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 DateSpan
- Hledger.Read.InputOptions: strict :: HasInputOpts c_a3KrM => Lens' c_a3KrM Bool
+ Hledger.Read.InputOptions: strict :: HasInputOpts c_a3Kx9 => Lens' c_a3Kx9 Bool
- Hledger.Reports.ReportOptions: accountlistmode :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 AccountListMode
+ Hledger.Reports.ReportOptions: accountlistmode :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo AccountListMode
- Hledger.Reports.ReportOptions: average :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: average :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: balanceaccum :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 BalanceAccumulation
+ Hledger.Reports.ReportOptions: balanceaccum :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo BalanceAccumulation
- Hledger.Reports.ReportOptions: balancecalc :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 BalanceCalculation
+ Hledger.Reports.ReportOptions: balancecalc :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo BalanceCalculation
- Hledger.Reports.ReportOptions: budgetpat :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 (Maybe Text)
+ Hledger.Reports.ReportOptions: budgetpat :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo (Maybe Text)
- Hledger.Reports.ReportOptions: class HasReportOptsNoUpdate c_a3Sg1
+ Hledger.Reports.ReportOptions: class HasReportOptsNoUpdate c_a3Slo
- Hledger.Reports.ReportOptions: class HasReportSpec c_a3TdQ
+ Hledger.Reports.ReportOptions: class HasReportSpec c_a3Tjd
- Hledger.Reports.ReportOptions: color__ :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: color__ :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: conversionop :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 (Maybe ConversionOp)
+ Hledger.Reports.ReportOptions: conversionop :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo (Maybe ConversionOp)
- Hledger.Reports.ReportOptions: date2NoUpdate :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: date2NoUpdate :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: declared :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: declared :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: depthNoUpdate :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 (Maybe Int)
+ Hledger.Reports.ReportOptions: depthNoUpdate :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo (Maybe Int)
- Hledger.Reports.ReportOptions: drop__ :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Int
+ Hledger.Reports.ReportOptions: drop__ :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Int
- Hledger.Reports.ReportOptions: empty__ :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: empty__ :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: format :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 StringFormat
+ Hledger.Reports.ReportOptions: format :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo StringFormat
- Hledger.Reports.ReportOptions: infer_prices :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: infer_prices :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: interval :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Interval
+ Hledger.Reports.ReportOptions: interval :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Interval
- Hledger.Reports.ReportOptions: invert :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: invert :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: layout :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Layout
+ Hledger.Reports.ReportOptions: layout :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Layout
- Hledger.Reports.ReportOptions: no_elide :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: no_elide :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: no_total :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: no_total :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: normalbalance :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 (Maybe NormalSign)
+ Hledger.Reports.ReportOptions: normalbalance :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo (Maybe NormalSign)
- Hledger.Reports.ReportOptions: percent :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: percent :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: periodNoUpdate :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Period
+ Hledger.Reports.ReportOptions: periodNoUpdate :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Period
- Hledger.Reports.ReportOptions: pretty :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: pretty :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: querystringNoUpdate :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 [Text]
+ Hledger.Reports.ReportOptions: querystringNoUpdate :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo [Text]
- Hledger.Reports.ReportOptions: realNoUpdate :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: realNoUpdate :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: related :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: related :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: reportOptsNoUpdate :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 ReportOpts
+ Hledger.Reports.ReportOptions: reportOptsNoUpdate :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo ReportOpts
- Hledger.Reports.ReportOptions: reportSpec :: HasReportSpec c_a3TdQ => Lens' c_a3TdQ ReportSpec
+ Hledger.Reports.ReportOptions: reportSpec :: HasReportSpec c_a3Tjd => Lens' c_a3Tjd ReportSpec
- Hledger.Reports.ReportOptions: row_total :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: row_total :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: rsDay :: HasReportSpec c_a3TdQ => Lens' c_a3TdQ Day
+ Hledger.Reports.ReportOptions: rsDay :: HasReportSpec c_a3Tjd => Lens' c_a3Tjd Day
- Hledger.Reports.ReportOptions: rsQuery :: HasReportSpec c_a3TdQ => Lens' c_a3TdQ Query
+ Hledger.Reports.ReportOptions: rsQuery :: HasReportSpec c_a3Tjd => Lens' c_a3Tjd Query
- Hledger.Reports.ReportOptions: rsQueryOpts :: HasReportSpec c_a3TdQ => Lens' c_a3TdQ [QueryOpt]
+ Hledger.Reports.ReportOptions: rsQueryOpts :: HasReportSpec c_a3Tjd => Lens' c_a3Tjd [QueryOpt]
- Hledger.Reports.ReportOptions: rsReportOpts :: HasReportSpec c_a3TdQ => Lens' c_a3TdQ ReportOpts
+ Hledger.Reports.ReportOptions: rsReportOpts :: HasReportSpec c_a3Tjd => Lens' c_a3Tjd ReportOpts
- Hledger.Reports.ReportOptions: show_costs :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: show_costs :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: sort_amount :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: sort_amount :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: statusesNoUpdate :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 [Status]
+ Hledger.Reports.ReportOptions: statusesNoUpdate :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo [Status]
- Hledger.Reports.ReportOptions: transpose__ :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: transpose__ :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: txn_dates :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 Bool
+ Hledger.Reports.ReportOptions: txn_dates :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo Bool
- Hledger.Reports.ReportOptions: value :: HasReportOptsNoUpdate c_a3Sg1 => Lens' c_a3Sg1 (Maybe ValuationType)
+ Hledger.Reports.ReportOptions: value :: HasReportOptsNoUpdate c_a3Slo => Lens' c_a3Slo (Maybe ValuationType)
Files
- CHANGES.md +11/−0
- Hledger/Data/Amount.hs +2/−1
- Hledger/Data/Balancing.hs +4/−1
- Hledger/Data/Dates.hs +3/−2
- Hledger/Data/TransactionModifier.hs +2/−1
- Hledger/Read.hs +2/−1
- Hledger/Read/Common.hs +5/−2
- Hledger/Read/CsvReader.hs +2/−1
- Hledger/Reports/ReportOptions.hs +2/−1
- Hledger/Utils/String.hs +23/−1
- Hledger/Utils/Test.hs +2/−1
- Text/Megaparsec/Custom.hs +2/−1
- hledger-lib.cabal +8/−5
CHANGES.md view
@@ -9,6 +9,17 @@ Internal/api/developer-ish changes in the hledger-lib (and hledger) packages. For user-visible changes, see the hledger package changelog. +# 1.29.1 2023-03-16++- Hledger.Utils.String:++ added:+ strip1Char+ stripBy+ strip1By++- Allow building with GHC 9.6.1; add base-compat (#2011)+ # 1.29 2023-03-11 - added terminal colour detection helpers:
Hledger/Data/Amount.hs view
@@ -144,7 +144,8 @@ tests_Amount ) where -import Control.Applicative (liftA2)+import Prelude hiding (Applicative(..))+import Control.Applicative (Applicative(..)) import Control.Monad (foldM) import Data.Char (isDigit) import Data.Decimal (DecimalRaw(..), decimalPlaces, normalizeDecimal, roundTo)
Hledger/Data/Balancing.hs view
@@ -26,13 +26,16 @@ ) where +import Control.Monad (forM, forM_, when, unless) import Control.Monad.Except (ExceptT(..), runExceptT, throwError) import "extra" Control.Monad.Extra (whenM)-import Control.Monad.Reader as R+import Control.Monad.Reader as R (ReaderT, reader, runReaderT, ask, asks) import Control.Monad.ST (ST, runST)+import Control.Monad.Trans.Class (lift) import Data.Array.ST (STArray, getElems, newListArray, writeArray) import Data.Foldable (asum) import Data.Function ((&))+import "base-compat" Data.Functor.Compat (void) import qualified Data.HashTable.Class as H (toList) import qualified Data.HashTable.ST.Cuckoo as H import Data.List (partition, sortOn)
Hledger/Data/Dates.hs view
@@ -82,10 +82,11 @@ , intervalBoundaryBefore) where -import qualified Control.Monad.Fail as Fail (MonadFail, fail)-import Control.Applicative (liftA2)+import Prelude hiding (Applicative(..))+import Control.Applicative (Applicative(..)) import Control.Applicative.Permutations import Control.Monad (guard, unless)+import qualified Control.Monad.Fail as Fail (MonadFail, fail) import Data.Char (digitToInt, isDigit, ord) import Data.Default (def) import Data.Foldable (asum)
Hledger/Data/TransactionModifier.hs view
@@ -12,7 +12,8 @@ ) where -import Control.Applicative ((<|>), liftA2)+import Prelude hiding (Applicative(..))+import Control.Applicative (Applicative(..), (<|>)) import qualified Data.Map as M import Data.Maybe (catMaybes) import qualified Data.Text as T
Hledger/Read.hs view
@@ -53,7 +53,8 @@ --- ** imports import qualified Control.Exception as C import Control.Monad (unless, when)-import "mtl" Control.Monad.Except (ExceptT(..), runExceptT, liftIO, MonadIO)+import "mtl" Control.Monad.Except (ExceptT(..), runExceptT)+import Control.Monad.IO.Class (MonadIO, liftIO) import Data.Default (def) import Data.Foldable (asum) import Data.List (group, sort, sortBy)
Hledger/Read/Common.hs view
@@ -119,15 +119,18 @@ --- ** imports import Control.Applicative.Permutations (runPermutation, toPermutationWithDefault)+import Control.Monad (foldM, liftM2, when, unless, (>=>), (<=<)) import qualified Control.Monad.Fail as Fail (fail) import Control.Monad.Except (ExceptT(..), liftEither, withExceptT)-import Control.Monad.State.Strict hiding (fail)+import Control.Monad.IO.Class (MonadIO, liftIO)+import Control.Monad.State.Strict (MonadState, evalStateT, modify', get, put)+import Control.Monad.Trans.Class (lift) import Data.Bifunctor (bimap, second) import Data.Char (digitToInt, isDigit, isSpace) import Data.Decimal (DecimalRaw (Decimal), Decimal) import Data.Either (lefts, rights) import Data.Function ((&))-import Data.Functor ((<&>), ($>))+import Data.Functor ((<&>), ($>), void) import Data.List (find, genericReplicate, union) import Data.List.NonEmpty (NonEmpty(..)) import Data.Maybe (catMaybes, fromMaybe, isJust, listToMaybe)
Hledger/Read/CsvReader.hs view
@@ -35,7 +35,8 @@ where --- ** imports-import Control.Applicative (liftA2)+import Prelude hiding (Applicative(..))+import Control.Applicative (Applicative(..)) import Control.Monad (unless, when, void) import Control.Monad.Except (ExceptT(..), liftEither, throwError) import qualified Control.Monad.Fail as Fail
Hledger/Reports/ReportOptions.hs view
@@ -64,7 +64,8 @@ ) where -import Control.Applicative (Const(..), (<|>), liftA2)+import Prelude hiding (Applicative(..))+import Control.Applicative (Applicative(..), Const(..), (<|>)) import Control.Monad ((<=<), guard, join) import Data.Char (toLower) import Data.Either (fromRight)
Hledger/Utils/String.hs view
@@ -20,6 +20,9 @@ strip, lstrip, rstrip,+ strip1Char,+ stripBy,+ strip1By, chomp, chomp1, singleline,@@ -35,7 +38,7 @@ import Data.Char (isSpace, toLower, toUpper)-import Data.List (intercalate)+import Data.List (intercalate, dropWhileEnd) import qualified Data.Text as T import Text.Megaparsec ((<|>), between, many, noneOf, sepBy) import Text.Megaparsec.Char (char)@@ -68,6 +71,25 @@ -- | Remove trailing whitespace. rstrip :: String -> String rstrip = reverse . lstrip . reverse++-- | Strip the given starting and ending character+-- from the start and end of a string if both are present.+strip1Char :: Char -> Char -> String -> String+strip1Char b e s = case s of+ (c:cs) | c==b, not $ null cs, last cs==e -> init cs+ _ -> s++-- | Strip a run of zero or more characters matching the predicate+-- from the start and end of a string.+stripBy :: (Char -> Bool) -> String -> String+stripBy f = dropWhileEnd f . dropWhile f++-- | Strip a single balanced enclosing pair of a character matching the predicate+-- from the start and end of a string.+strip1By :: (Char -> Bool) -> String -> String+strip1By f s = case s of+ (c:cs) | f c, not $ null cs, last cs==c -> init cs+ _ -> s -- | Remove all trailing newlines/carriage returns. chomp :: String -> String
Hledger/Utils/Test.hs view
@@ -20,7 +20,8 @@ ) where -import Control.Monad.Except (ExceptT(..), liftEither, runExceptT, withExceptT, unless)+import Control.Monad (unless)+import Control.Monad.Except (ExceptT(..), liftEither, runExceptT, withExceptT) import Control.Monad.State.Strict (StateT, evalStateT, execStateT) import Data.Default (Default(..)) import Data.List (isInfixOf)
Text/Megaparsec/Custom.hs view
@@ -50,8 +50,9 @@ ) where -import Control.Monad.Except+import Control.Monad.Except (ExceptT, MonadError, catchError, throwError) import Control.Monad.State.Strict (StateT, evalStateT)+import Control.Monad.Trans.Class (lift) import qualified Data.List.NonEmpty as NE import Data.Monoid (Alt(..)) import qualified Data.Set as S
hledger-lib.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: hledger-lib-version: 1.29+version: 1.29.1 synopsis: A reusable library providing the core functionality of hledger description: A reusable library containing hledger's core functionality. This is used by most hledger* packages so that they support the same@@ -27,7 +27,7 @@ license-file: LICENSE build-type: Simple tested-with:- GHC==8.10.7, GHC==9.0.2, GHC==9.2.4+ GHC==8.10.7, GHC==9.0.2, GHC==9.2.7, GHC==9.4.4 extra-source-files: CHANGES.md README.md@@ -104,7 +104,8 @@ , aeson-pretty , ansi-terminal >=0.9 , array- , base >=4.14 && <4.18+ , base >=4.14 && <4.19+ , base-compat , blaze-markup >=0.5.1 , bytestring , call-stack@@ -160,7 +161,8 @@ , aeson-pretty , ansi-terminal >=0.9 , array- , base >=4.14 && <4.18+ , base >=4.14 && <4.19+ , base-compat , blaze-markup >=0.5.1 , bytestring , call-stack@@ -219,7 +221,8 @@ , aeson-pretty , ansi-terminal >=0.9 , array- , base >=4.14 && <4.18+ , base >=4.14 && <4.19+ , base-compat , blaze-markup >=0.5.1 , bytestring , call-stack