hledger-lib 1.15.1 → 1.15.2
raw patch · 20 files changed
+288/−289 lines, 20 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Hledger.Data.Posting: postingApplyValuation :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Day -> Bool -> Posting -> ValuationType -> Posting
+ Hledger.Data.Posting: postingApplyValuation :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Maybe Day -> Day -> Bool -> Posting -> ValuationType -> Posting
- Hledger.Data.Valuation: mixedAmountApplyValuation :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Day -> Bool -> ValuationType -> MixedAmount -> MixedAmount
+ Hledger.Data.Valuation: mixedAmountApplyValuation :: PriceOracle -> Map CommoditySymbol AmountStyle -> Day -> Maybe Day -> Day -> Bool -> ValuationType -> MixedAmount -> MixedAmount
Files
- CHANGES.md +8/−1
- Hledger/Data/Posting.hs +12/−11
- Hledger/Data/Valuation.hs +42/−16
- Hledger/Reports/BalanceReport.hs +9/−10
- Hledger/Reports/EntriesReport.hs +9/−20
- Hledger/Reports/MultiBalanceReport.hs +13/−29
- Hledger/Reports/PostingsReport.hs +37/−44
- hledger-lib.cabal +2/−2
- hledger_csv.5 +1/−1
- hledger_csv.info +32/−32
- hledger_csv.txt +1/−1
- hledger_journal.5 +1/−1
- hledger_journal.info +110/−110
- hledger_journal.txt +1/−1
- hledger_timeclock.5 +1/−1
- hledger_timeclock.info +2/−2
- hledger_timeclock.txt +1/−1
- hledger_timedot.5 +1/−1
- hledger_timedot.info +4/−4
- hledger_timedot.txt +1/−1
CHANGES.md view
@@ -1,7 +1,14 @@ Internal/api/developer-ish changes in the hledger-lib (and hledger) packages. For user-visible changes, see the hledger package changelog. -# 16a3c96d+# 1.15.2 2019-09-05++Changes:++- postingApplyValuation, mixedAmountApplyValuation, amountApplyValuation+ take an argument, the report end date if one was specified.++# 1.15.1 2019-09-02 - fix failing doctests
Hledger/Data/Posting.hs view
@@ -331,19 +331,20 @@ | otherwise = a aliasReplace (RegexAlias re repl) a = T.pack $ regexReplaceCIMemo re repl $ T.unpack a -- XXX --- Apply a specified valuation to this posting's amount, using the provided--- price oracle, commodity styles, period-end/current dates, and whether--- this is for a multiperiod report or not.-postingApplyValuation :: PriceOracle -> M.Map CommoditySymbol AmountStyle -> Day -> Day -> Bool -> Posting -> ValuationType -> Posting-postingApplyValuation priceoracle styles periodend today ismultiperiod p v =+-- | Apply a specified valuation to this posting's amount, using the+-- provided price oracle, commodity styles, reference dates, and+-- whether this is for a multiperiod report or not. See+-- amountApplyValuation.+postingApplyValuation :: PriceOracle -> M.Map CommoditySymbol AmountStyle -> Day -> Maybe Day -> Day -> Bool -> Posting -> ValuationType -> Posting+postingApplyValuation priceoracle styles periodlast mreportlast today ismultiperiod p v = case v of AtCost Nothing -> postingToCost styles p- AtCost mc -> postingValueAtDate priceoracle styles mc periodend $ postingToCost styles p- AtEnd mc -> postingValueAtDate priceoracle styles mc periodend p- AtNow mc -> postingValueAtDate priceoracle styles mc today p- AtDefault mc | ismultiperiod -> postingValueAtDate priceoracle styles mc periodend p- AtDefault mc -> postingValueAtDate priceoracle styles mc today p- AtDate d mc -> postingValueAtDate priceoracle styles mc d p+ AtCost mc -> postingValueAtDate priceoracle styles mc periodlast $ postingToCost styles p+ AtEnd mc -> postingValueAtDate priceoracle styles mc periodlast p+ AtNow mc -> postingValueAtDate priceoracle styles mc today p+ AtDefault mc | ismultiperiod -> postingValueAtDate priceoracle styles mc periodlast p+ AtDefault mc -> postingValueAtDate priceoracle styles mc (fromMaybe today mreportlast) p+ AtDate d mc -> postingValueAtDate priceoracle styles mc d p -- | Convert this posting's amount to cost, and apply the appropriate amount styles. postingToCost :: M.Map CommoditySymbol AmountStyle -> Posting -> Posting
Hledger/Data/Valuation.hs view
@@ -97,26 +97,52 @@ ------------------------------------------------------------------------------ -- Valuation --- | Apply a specified valuation to this mixed amount, using the provided--- price oracle, commodity styles, period-end/current dates,--- and whether this is for a multiperiod report or not.-mixedAmountApplyValuation :: PriceOracle -> M.Map CommoditySymbol AmountStyle -> Day -> Day -> Bool -> ValuationType -> MixedAmount -> MixedAmount-mixedAmountApplyValuation priceoracle styles periodend today ismultiperiod v (Mixed as) =- Mixed $ map (amountApplyValuation priceoracle styles periodend today ismultiperiod v) as+-- | Apply a specified valuation to this mixed amount, using the+-- provided price oracle, commodity styles, reference dates, and+-- whether this is for a multiperiod report or not.+-- See amountApplyValuation.+mixedAmountApplyValuation :: PriceOracle -> M.Map CommoditySymbol AmountStyle -> Day -> Maybe Day -> Day -> Bool -> ValuationType -> MixedAmount -> MixedAmount+mixedAmountApplyValuation priceoracle styles periodlast mreportlast today ismultiperiod v (Mixed as) =+ Mixed $ map (amountApplyValuation priceoracle styles periodlast mreportlast today ismultiperiod v) as -- | Apply a specified valuation to this amount, using the provided--- price oracle, commodity styles, period-end/current dates,--- and whether this is for a multiperiod report or not.-amountApplyValuation :: PriceOracle -> M.Map CommoditySymbol AmountStyle -> Day -> Day -> Bool -> ValuationType -> Amount -> Amount-amountApplyValuation priceoracle styles periodend today ismultiperiod v a =+-- price oracle, reference dates, and whether this is for a+-- multiperiod report or not. Also fix up its display style using the+-- provided commodity styles.+--+-- When the valuation requires converting to another commodity, a+-- valuation (conversion) date is chosen based on the valuation type,+-- the provided reference dates, and whether this is for a+-- single-period or multi-period report. It will be one of:+--+-- - a fixed date specified by the ValuationType itself+-- (--value=DATE).+-- +-- - the provided "period end" date - this is typically the last day+-- of a subperiod (--value=end with a multi-period report), or of+-- the specified report period or the journal (--value=end with a+-- single-period report).+--+-- - the provided "report end" date - the last day of the specified+-- report period, if any (-V/-X with a report end date).+--+-- - the provided "today" date - (--value=now, or -V/X with no report+-- end date).+-- +-- This is all a bit complicated. See the reference doc at+-- https://hledger.org/hledger.html#effect-of-value-on-reports+-- (hledger_options.m4.md "Effect of --value on reports"), and #1083.+--+amountApplyValuation :: PriceOracle -> M.Map CommoditySymbol AmountStyle -> Day -> Maybe Day -> Day -> Bool -> ValuationType -> Amount -> Amount+amountApplyValuation priceoracle styles periodlast mreportlast today ismultiperiod v a = case v of AtCost Nothing -> amountToCost styles a- AtCost mc -> amountValueAtDate priceoracle styles mc periodend $ amountToCost styles a- AtEnd mc -> amountValueAtDate priceoracle styles mc periodend a- AtNow mc -> amountValueAtDate priceoracle styles mc today a- AtDefault mc | ismultiperiod -> amountValueAtDate priceoracle styles mc periodend a- AtDefault mc -> amountValueAtDate priceoracle styles mc today a- AtDate d mc -> amountValueAtDate priceoracle styles mc d a+ AtCost mc -> amountValueAtDate priceoracle styles mc periodlast $ amountToCost styles a+ AtEnd mc -> amountValueAtDate priceoracle styles mc periodlast a+ AtNow mc -> amountValueAtDate priceoracle styles mc today a+ AtDefault mc | ismultiperiod -> amountValueAtDate priceoracle styles mc periodlast a+ AtDefault mc -> amountValueAtDate priceoracle styles mc (fromMaybe today mreportlast) a+ AtDate d mc -> amountValueAtDate priceoracle styles mc d a -- | Find the market value of each component amount in the given -- commodity, or its default valuation commodity, at the given
Hledger/Reports/BalanceReport.hs view
@@ -71,25 +71,24 @@ -- dbg1 = const id -- exclude from debug output dbg1 s = let p = "balanceReport" in Hledger.Utils.dbg1 (p++" "++s) -- add prefix in debug output - today = fromMaybe (error' "balanceReport: ReportOpts today_ is unset so could not satisfy --value=now") today_- multiperiod = interval_ /= NoInterval- styles = journalCommodityStyles j- -- Get all the summed accounts & balances, according to the query, as an account tree. -- If doing cost valuation, amounts will be converted to cost first. accttree = ledgerRootAccount $ ledgerFromJournal q $ journalSelectingAmountFromOpts ropts j - -- For other kinds of valuation, convert the summed amounts to value.- priceoracle = journalPriceOracle j- valuedaccttree = mapAccounts valueaccount accttree+ -- For other kinds of valuation, convert the summed amounts to value,+ -- per hledger_options.m4.md "Effect of --value on reports".+ valuedaccttree = mapAccounts avalue accttree where- valueaccount a@Account{..} = a{aebalance=val aebalance, aibalance=val aibalance}+ avalue a@Account{..} = a{aebalance=bvalue aebalance, aibalance=bvalue aibalance} where- val = maybe id (mixedAmountApplyValuation priceoracle styles periodlastday today multiperiod) value_+ bvalue = maybe id (mixedAmountApplyValuation (journalPriceOracle j) (journalCommodityStyles j) periodlast mreportlast today multiperiod) value_ where- periodlastday =+ periodlast = fromMaybe (error' "balanceReport: expected a non-empty journal") $ -- XXX shouldn't happen reportPeriodOrJournalLastDay ropts j+ mreportlast = reportPeriodLastDay ropts+ today = fromMaybe (error' "balanceReport: could not pick a valuation date, ReportOpts today_ is unset") today_+ multiperiod = interval_ /= NoInterval -- Modify this tree for display - depth limit, boring parents, zeroes - and convert to a list. displayaccts :: [Account]
Hledger/Reports/EntriesReport.hs view
@@ -14,11 +14,9 @@ ) where -import Control.Applicative ((<|>)) import Data.List import Data.Maybe import Data.Ord-import Data.Time.Calendar (Day, addDays) import Hledger.Data import Hledger.Query@@ -35,28 +33,19 @@ -- | Select transactions for an entries report. entriesReport :: ReportOpts -> Query -> Journal -> EntriesReport entriesReport ropts@ReportOpts{..} q j@Journal{..} =- sortBy (comparing datefn) $ filter (q `matchesTransaction`) $ map tvalue jtxns+ sortBy (comparing getdate) $ filter (q `matchesTransaction`) $ map tvalue jtxns where- datefn = transactionDateFn ropts- styles = journalCommodityStyles j+ getdate = transactionDateFn ropts+ -- We may be converting posting amounts to value, per hledger_options.m4.md "Effect of --value on reports". tvalue t@Transaction{..} = t{tpostings=map pvalue tpostings}- priceoracle = journalPriceOracle j- pvalue p = maybe p (postingApplyValuation priceoracle styles end today False p) value_ where- today = fromMaybe (error' "erValue: ReportOpts today_ is unset so could not satisfy --value=now") today_- end = fromMaybe (postingDate p) mperiodorjournallastday+ pvalue p = maybe p+ (postingApplyValuation (journalPriceOracle j) (journalCommodityStyles j) periodlast mreportlast today False p)+ value_ where- mperiodorjournallastday = mperiodlastday <|> journalEndDate False j- where- -- The last day of the report period.- -- Will be Nothing if no report period is specified, or also- -- if ReportOpts does not have today_ set, since we need that- -- to get the report period robustly.- mperiodlastday :: Maybe Day = do- t <- today_- let q = queryFromOpts t ropts- qend <- queryEndDate False q- return $ addDays (-1) qend+ periodlast = fromMaybe today $ reportPeriodOrJournalLastDay ropts j+ mreportlast = reportPeriodLastDay ropts+ today = fromMaybe (error' "erValue: could not pick a valuation date, ReportOpts today_ is unset") today_ -- should not happen tests_EntriesReport = tests "EntriesReport" [ tests "entriesReport" [
Hledger/Reports/MultiBalanceReport.hs view
@@ -245,9 +245,6 @@ -- 6. Build the report rows. -- One row per account, with account name info, row amounts, row total and row average.- -- Row amounts are converted to value if that has been requested.- -- Row total/average are always simply the sum/average of the row amounts.- multiperiod = interval_ /= NoInterval rows :: [MultiBalanceReportRow] = dbg1 "rows" $ [(a, accountLeafName a, accountNameLevel a, valuedrowbals, rowtot, rowavg)@@ -259,38 +256,25 @@ PeriodChange -> changes CumulativeChange -> drop 1 $ scanl (+) 0 changes HistoricalBalance -> drop 1 $ scanl (+) (startingBalanceFor a) changes- -- The row amounts valued according to --value if needed.- , let val end = maybe id (mixedAmountApplyValuation priceoracle styles end today multiperiod) value_- , let valuedrowbals = dbg1 "valuedrowbals" $ [val periodlastday amt | (amt,periodlastday) <- zip rowbals lastdays]- -- The total and average for the row, and their values.+ -- We may be converting amounts to value, per hledger_options.m4.md "Effect of --value on reports".+ , let valuedrowbals = dbg1 "valuedrowbals" $ [avalue periodlastday amt | (amt,periodlastday) <- zip rowbals lastdays]+ -- The total and average for the row.+ -- These are always simply the sum/average of the displayed row amounts. -- Total for a cumulative/historical report is always zero. , let rowtot = if balancetype_==PeriodChange then sum valuedrowbals else 0 , let rowavg = averageMixedAmounts valuedrowbals , empty_ || depth == 0 || any (not . isZeroMixedAmount) valuedrowbals ] where- -- Some things needed if doing valuation.- -- Here's the current intended effect of --value on each part of the report:- -- -H/--historical starting balances:- -- cost: summed cost of previous postings- -- end: historical starting balances valued at day before report start- -- date: historical starting balances valued at date- -- table cells:- -- cost: summed costs of postings- -- end: summed postings, valued at subperiod end- -- date: summed postings, valued at date- -- column totals:- -- cost: summed column amounts- -- end: summed column amounts- -- date: summed column amounts- -- row totals & averages, grand total & average:- -- cost: summed/averaged row amounts- -- end: summed/averaged row amounts- -- date: summed/averaged row amounts- today = fromMaybe (error' "multiBalanceReport: ReportOpts today_ is unset so could not satisfy --value=now") today_ -- XXX shouldn't error if not needed, eg valuation type is AtDate- -- Market prices, commodity display styles.- styles = journalCommodityStyles j- -- The last day of each column subperiod.+ avalue periodlast =+ maybe id (mixedAmountApplyValuation priceoracle styles periodlast mreportlast today multiperiod) value_+ where+ -- Some things needed if doing valuation.+ styles = journalCommodityStyles j+ mreportlast = reportPeriodLastDay ropts+ today = fromMaybe (error' "multiBalanceReport: could not pick a valuation date, ReportOpts today_ is unset") today_ -- XXX shouldn't happen+ multiperiod = interval_ /= NoInterval+ -- The last day of each column's subperiod. lastdays = map ((maybe (error' "multiBalanceReport: expected all spans to have an end date") -- XXX should not happen
Hledger/Reports/PostingsReport.hs view
@@ -70,67 +70,60 @@ postingsReport ropts@ReportOpts{..} q j@Journal{..} = (totallabel, items) where- reportspan = adjustReportDates ropts q j- whichdate = whichDateFromOpts ropts- depth = queryDepth q- styles = journalCommodityStyles j+ reportspan = adjustReportDates ropts q j+ whichdate = whichDateFromOpts ropts+ depth = queryDepth q+ styles = journalCommodityStyles j+ priceoracle = journalPriceOracle j+ multiperiod = interval_ /= NoInterval+ today = fromMaybe (error' "postingsReport: could not pick a valuation date, ReportOpts today_ is unset") today_ -- postings to be included in the report, and similarly-matched postings before the report start date (precedingps, reportps) = matchedPostingsBeforeAndDuring ropts q j reportspan - -- We may be converting amounts to value.- -- Currently this is done as follows (keep synced with hledger_options.m4.md):- -- register -M --value- -- cost: value each posting at cost, then summarise ; value -H starting balance at cost- -- end: value each summary posting at period end ; value -H starting balance at day before report start- -- date: value each summary posting at date ; value -H starting balance at date- -- register --value- -- cost: value each posting at cost ; value -H starting balance at cost- -- end: value each posting at report end ; value -H starting balance at day before report start- -- date: value each posting at date ; value -H starting balance at date- --- -- In all cases, the running total/average is calculated from the above numbers.- -- "Day before report start" is a bit arbitrary.- today =- fromMaybe (error' "postingsReport: ReportOpts today_ is unset so could not satisfy --value=now")- today_- reportperiodlastday =- fromMaybe (error' "postingsReport: expected a non-empty journal") $ -- XXX shouldn't happen- reportPeriodOrJournalLastDay ropts j- multiperiod = interval_ /= NoInterval- showempty = empty_ || average_- priceoracle = journalPriceOracle j- pvalue p end = maybe p (postingApplyValuation priceoracle styles end today multiperiod p) value_- -- Postings, or summary postings with their subperiod's end date, to be displayed. displayps :: [(Posting, Maybe Day)] | multiperiod = let summaryps = summarisePostingsByInterval interval_ whichdate depth showempty reportspan reportps in [(pvalue p lastday, Just periodend) | (p, periodend) <- summaryps, let lastday = addDays (-1) periodend] | otherwise =- [(pvalue p reportperiodlastday, Nothing) | p <- reportps]+ [(pvalue p reportorjournallast, Nothing) | p <- reportps]+ where+ showempty = empty_ || average_+ -- We may be converting posting amounts to value, per hledger_options.m4.md "Effect of --value on reports".+ pvalue p periodlast = maybe p (postingApplyValuation priceoracle styles periodlast mreportlast today multiperiod p) value_+ where+ mreportlast = reportPeriodLastDay ropts+ reportorjournallast =+ fromMaybe (error' "postingsReport: expected a non-empty journal") $ -- XXX shouldn't happen+ reportPeriodOrJournalLastDay ropts j - -- posting report items ready for display- items = dbg1 "postingsReport items" $ postingsReportItems displayps (nullposting,Nothing) whichdate depth startbalvalued runningcalc startnum+ -- Posting report items ready for display.+ items =+ dbg1 "postingsReport items" $+ postingsReportItems displayps (nullposting,Nothing) whichdate depth startbal runningcalc startnum where+ -- In historical mode we'll need a starting balance, which we+ -- may be converting to value per hledger_options.m4.md "Effect+ -- of --value on reports".+ -- XXX balance report doesn't value starting balance.. should this ? historical = balancetype_ == HistoricalBalance- precedingsum = sumPostings precedingps- precedingavg | null precedingps = 0- | otherwise = divideMixedAmount (fromIntegral $ length precedingps) precedingsum- startbal | average_ = if historical then precedingavg else 0- | otherwise = if historical then precedingsum else 0- -- For --value=end/now/DATE, convert the initial running total/average to value.- startbalvalued = val startbal+ startbal | average_ = if historical then bvalue precedingavg else 0+ | otherwise = if historical then bvalue precedingsum else 0 where- val = maybe id (mixedAmountApplyValuation priceoracle styles daybeforereportstart today multiperiod) value_+ precedingsum = sumPostings precedingps+ precedingavg | null precedingps = 0+ | otherwise = divideMixedAmount (fromIntegral $ length precedingps) precedingsum+ bvalue = maybe id (mixedAmountApplyValuation priceoracle styles daybeforereportstart Nothing today multiperiod) value_+ -- XXX constrain valuation type to AtDate daybeforereportstart here ? where- daybeforereportstart = maybe- (error' "postingsReport: expected a non-empty journal") -- XXX shouldn't happen- (addDays (-1))- $ reportPeriodOrJournalStart ropts j+ daybeforereportstart =+ maybe (error' "postingsReport: expected a non-empty journal") -- XXX shouldn't happen+ (addDays (-1))+ $ reportPeriodOrJournalStart ropts j - startnum = if historical then length precedingps + 1 else 1 runningcalc = registerRunningCalculationFn ropts+ startnum = if historical then length precedingps + 1 else 1 -- | Based on the given report options, return a function that does the appropriate -- running calculation for the register report, ie a running average or running total.
hledger-lib.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: f27fe6795990dd3740ec4ca8e421ad8faaf22945809a16448fcf4d5ac0174165+-- hash: 567ed725b211714a0f6db5e17a68d670789c7e603020b42d6b8f18e7af5ceb63 name: hledger-lib-version: 1.15.1+version: 1.15.2 synopsis: Core data types, parsers and functionality for the hledger accounting tools description: This is a reusable library containing hledger's core functionality. .
hledger_csv.5 view
@@ -1,5 +1,5 @@ -.TH "hledger_csv" "5" "August 2019" "hledger 1.15" "hledger User Manuals"+.TH "hledger_csv" "5" "September 2019" "hledger 1.15.2" "hledger User Manuals"
hledger_csv.info view
@@ -3,8 +3,8 @@ File: hledger_csv.info, Node: Top, Next: CSV RULES, Up: (dir) -hledger_csv(5) hledger 1.15-***************************+hledger_csv(5) hledger 1.15.2+***************************** hledger can read CSV (comma-separated value) files as if they were journal files, automatically converting each CSV record into a@@ -350,35 +350,35 @@ Tag Table: Node: Top72-Node: CSV RULES2161-Ref: #csv-rules2269-Node: skip2532-Ref: #skip2626-Node: date-format2798-Ref: #date-format2925-Node: field list3475-Ref: #field-list3612-Node: field assignment4342-Ref: #field-assignment4497-Node: conditional block5121-Ref: #conditional-block5275-Node: include6171-Ref: #include6301-Node: newest-first6532-Ref: #newest-first6646-Node: CSV TIPS7057-Ref: #csv-tips7151-Node: CSV ordering7295-Ref: #csv-ordering7413-Node: CSV accounts7594-Ref: #csv-accounts7732-Node: CSV amounts7986-Ref: #csv-amounts8144-Node: CSV balance assertions/assignments9224-Ref: #csv-balance-assertionsassignments9442-Node: Reading multiple CSV files9763-Ref: #reading-multiple-csv-files9963-Node: Valid CSV10237-Ref: #valid-csv10360+Node: CSV RULES2165+Ref: #csv-rules2273+Node: skip2536+Ref: #skip2630+Node: date-format2802+Ref: #date-format2929+Node: field list3479+Ref: #field-list3616+Node: field assignment4346+Ref: #field-assignment4501+Node: conditional block5125+Ref: #conditional-block5279+Node: include6175+Ref: #include6305+Node: newest-first6536+Ref: #newest-first6650+Node: CSV TIPS7061+Ref: #csv-tips7155+Node: CSV ordering7299+Ref: #csv-ordering7417+Node: CSV accounts7598+Ref: #csv-accounts7736+Node: CSV amounts7990+Ref: #csv-amounts8148+Node: CSV balance assertions/assignments9228+Ref: #csv-balance-assertionsassignments9446+Node: Reading multiple CSV files9767+Ref: #reading-multiple-csv-files9967+Node: Valid CSV10241+Ref: #valid-csv10364 End Tag Table
hledger_csv.txt view
@@ -276,4 +276,4 @@ -hledger 1.15 August 2019 hledger_csv(5)+hledger 1.15.2 September 2019 hledger_csv(5)
hledger_journal.5 view
@@ -1,6 +1,6 @@ .\"t -.TH "hledger_journal" "5" "August 2019" "hledger 1.15" "hledger User Manuals"+.TH "hledger_journal" "5" "September 2019" "hledger 1.15.2" "hledger User Manuals"
hledger_journal.info view
@@ -4,8 +4,8 @@ File: hledger_journal.info, Node: Top, Next: FILE FORMAT, Up: (dir) -hledger_journal(5) hledger 1.15-*******************************+hledger_journal(5) hledger 1.15.2+********************************* hledger's usual data source is a plain text file containing journal entries in hledger journal format. This file represents a standard@@ -1668,113 +1668,113 @@ Tag Table: Node: Top76-Node: FILE FORMAT2352-Ref: #file-format2476-Node: Transactions2779-Ref: #transactions2900-Node: Postings3584-Ref: #postings3711-Node: Dates4706-Ref: #dates4821-Node: Simple dates4886-Ref: #simple-dates5012-Node: Secondary dates5378-Ref: #secondary-dates5532-Node: Posting dates7095-Ref: #posting-dates7224-Node: Status8596-Ref: #status8716-Node: Description10424-Ref: #description10562-Node: Payee and note10882-Ref: #payee-and-note10996-Node: Account names11331-Ref: #account-names11474-Node: Amounts11961-Ref: #amounts12097-Node: Virtual Postings15114-Ref: #virtual-postings15273-Node: Balance Assertions16493-Ref: #balance-assertions16668-Node: Assertions and ordering17627-Ref: #assertions-and-ordering17813-Node: Assertions and included files18513-Ref: #assertions-and-included-files18754-Node: Assertions and multiple -f options19087-Ref: #assertions-and-multiple--f-options19341-Node: Assertions and commodities19473-Ref: #assertions-and-commodities19703-Node: Assertions and prices20859-Ref: #assertions-and-prices21071-Node: Assertions and subaccounts21511-Ref: #assertions-and-subaccounts21738-Node: Assertions and virtual postings22062-Ref: #assertions-and-virtual-postings22302-Node: Assertions and precision22444-Ref: #assertions-and-precision22635-Node: Balance Assignments22902-Ref: #balance-assignments23083-Node: Balance assignments and prices24248-Ref: #balance-assignments-and-prices24420-Node: Transaction prices24644-Ref: #transaction-prices24813-Node: Comments27079-Ref: #comments27213-Node: Tags28383-Ref: #tags28501-Node: Directives29894-Ref: #directives30037-Node: Comment blocks35645-Ref: #comment-blocks35790-Node: Including other files35966-Ref: #including-other-files36146-Node: Default year36554-Ref: #default-year36723-Node: Declaring commodities37130-Ref: #declaring-commodities37313-Node: Default commodity38742-Ref: #default-commodity38918-Node: Market prices39552-Ref: #market-prices39717-Node: Declaring accounts40558-Ref: #declaring-accounts40734-Node: Account comments41659-Ref: #account-comments41822-Node: Account subdirectives42217-Ref: #account-subdirectives42412-Node: Account types42725-Ref: #account-types42909-Node: Account display order44551-Ref: #account-display-order44721-Node: Rewriting accounts45850-Ref: #rewriting-accounts46035-Node: Basic aliases46771-Ref: #basic-aliases46917-Node: Regex aliases47621-Ref: #regex-aliases47793-Node: Combining aliases48511-Ref: #combining-aliases48689-Node: end aliases49965-Ref: #end-aliases50113-Node: Default parent account50214-Ref: #default-parent-account50380-Node: Periodic transactions51264-Ref: #periodic-transactions51462-Node: Two spaces after the period expression52588-Ref: #two-spaces-after-the-period-expression52833-Node: Forecasting with periodic transactions53318-Ref: #forecasting-with-periodic-transactions53608-Node: Budgeting with periodic transactions55634-Ref: #budgeting-with-periodic-transactions55873-Node: Auto postings / transaction modifiers56332-Ref: #auto-postings-transaction-modifiers56543-Node: Auto postings and dates58772-Ref: #auto-postings-and-dates59029-Node: Auto postings and transaction balancing / inferred amounts / balance assertions59204-Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions59579-Node: Auto posting tags59957-Ref: #auto-posting-tags60196-Node: EDITOR SUPPORT60861-Ref: #editor-support60979+Node: FILE FORMAT2356+Ref: #file-format2480+Node: Transactions2783+Ref: #transactions2904+Node: Postings3588+Ref: #postings3715+Node: Dates4710+Ref: #dates4825+Node: Simple dates4890+Ref: #simple-dates5016+Node: Secondary dates5382+Ref: #secondary-dates5536+Node: Posting dates7099+Ref: #posting-dates7228+Node: Status8600+Ref: #status8720+Node: Description10428+Ref: #description10566+Node: Payee and note10886+Ref: #payee-and-note11000+Node: Account names11335+Ref: #account-names11478+Node: Amounts11965+Ref: #amounts12101+Node: Virtual Postings15118+Ref: #virtual-postings15277+Node: Balance Assertions16497+Ref: #balance-assertions16672+Node: Assertions and ordering17631+Ref: #assertions-and-ordering17817+Node: Assertions and included files18517+Ref: #assertions-and-included-files18758+Node: Assertions and multiple -f options19091+Ref: #assertions-and-multiple--f-options19345+Node: Assertions and commodities19477+Ref: #assertions-and-commodities19707+Node: Assertions and prices20863+Ref: #assertions-and-prices21075+Node: Assertions and subaccounts21515+Ref: #assertions-and-subaccounts21742+Node: Assertions and virtual postings22066+Ref: #assertions-and-virtual-postings22306+Node: Assertions and precision22448+Ref: #assertions-and-precision22639+Node: Balance Assignments22906+Ref: #balance-assignments23087+Node: Balance assignments and prices24252+Ref: #balance-assignments-and-prices24424+Node: Transaction prices24648+Ref: #transaction-prices24817+Node: Comments27083+Ref: #comments27217+Node: Tags28387+Ref: #tags28505+Node: Directives29898+Ref: #directives30041+Node: Comment blocks35649+Ref: #comment-blocks35794+Node: Including other files35970+Ref: #including-other-files36150+Node: Default year36558+Ref: #default-year36727+Node: Declaring commodities37134+Ref: #declaring-commodities37317+Node: Default commodity38746+Ref: #default-commodity38922+Node: Market prices39556+Ref: #market-prices39721+Node: Declaring accounts40562+Ref: #declaring-accounts40738+Node: Account comments41663+Ref: #account-comments41826+Node: Account subdirectives42221+Ref: #account-subdirectives42416+Node: Account types42729+Ref: #account-types42913+Node: Account display order44555+Ref: #account-display-order44725+Node: Rewriting accounts45854+Ref: #rewriting-accounts46039+Node: Basic aliases46775+Ref: #basic-aliases46921+Node: Regex aliases47625+Ref: #regex-aliases47797+Node: Combining aliases48515+Ref: #combining-aliases48693+Node: end aliases49969+Ref: #end-aliases50117+Node: Default parent account50218+Ref: #default-parent-account50384+Node: Periodic transactions51268+Ref: #periodic-transactions51466+Node: Two spaces after the period expression52592+Ref: #two-spaces-after-the-period-expression52837+Node: Forecasting with periodic transactions53322+Ref: #forecasting-with-periodic-transactions53612+Node: Budgeting with periodic transactions55638+Ref: #budgeting-with-periodic-transactions55877+Node: Auto postings / transaction modifiers56336+Ref: #auto-postings-transaction-modifiers56547+Node: Auto postings and dates58776+Ref: #auto-postings-and-dates59033+Node: Auto postings and transaction balancing / inferred amounts / balance assertions59208+Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions59583+Node: Auto posting tags59961+Ref: #auto-posting-tags60200+Node: EDITOR SUPPORT60865+Ref: #editor-support60983 End Tag Table
hledger_journal.txt view
@@ -1362,4 +1362,4 @@ -hledger 1.15 August 2019 hledger_journal(5)+hledger 1.15.2 September 2019 hledger_journal(5)
hledger_timeclock.5 view
@@ -1,5 +1,5 @@ -.TH "hledger_timeclock" "5" "August 2019" "hledger 1.15" "hledger User Manuals"+.TH "hledger_timeclock" "5" "September 2019" "hledger 1.15.2" "hledger User Manuals"
hledger_timeclock.info view
@@ -4,8 +4,8 @@ File: hledger_timeclock.info, Node: Top, Up: (dir) -hledger_timeclock(5) hledger 1.15-*********************************+hledger_timeclock(5) hledger 1.15.2+*********************************** hledger can read timeclock files. As with Ledger, these are (a subset of) timeclock.el's format, containing clock-in and clock-out entries as
hledger_timeclock.txt view
@@ -78,4 +78,4 @@ -hledger 1.15 August 2019 hledger_timeclock(5)+hledger 1.15.2 September 2019 hledger_timeclock(5)
hledger_timedot.5 view
@@ -1,5 +1,5 @@ -.TH "hledger_timedot" "5" "August 2019" "hledger 1.15" "hledger User Manuals"+.TH "hledger_timedot" "5" "September 2019" "hledger 1.15.2" "hledger User Manuals"
hledger_timedot.info view
@@ -4,8 +4,8 @@ File: hledger_timedot.info, Node: Top, Next: FILE FORMAT, Up: (dir) -hledger_timedot(5) hledger 1.15-*******************************+hledger_timedot(5) hledger 1.15.2+********************************* Timedot is a plain text format for logging dated, categorised quantities (of time, usually), supported by hledger. It is convenient for@@ -111,7 +111,7 @@ Tag Table: Node: Top76-Node: FILE FORMAT808-Ref: #file-format909+Node: FILE FORMAT812+Ref: #file-format913 End Tag Table
hledger_timedot.txt view
@@ -124,4 +124,4 @@ -hledger 1.15 August 2019 hledger_timedot(5)+hledger 1.15.2 September 2019 hledger_timedot(5)