[y      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr s t u v w x yz{|}~0*An option value from a command-line flag.   !" Command-line options we accept. #AParse the command-line arguments into options, command name, and G command arguments. Any dates in the options are converted to explicit  YYYYMM%DD format based on the current time. $EConvert any fuzzy dates within these option values to explicit ones,  based on today's date. %CFigure out the overall date span we should report on, based on any  beginend:period options provided. If there is a period option, the  others are ignored. &EFigure out the reporting interval, if any, specified by the options. 6 If there is a period option, the others are ignored. '2Get the value of the (last) depth option, if any. (>Get the value of the (last) drop option, if any, otherwise 0. )4Get the value of the (last) display option, if any. *4Get the value of the (last) baseurl option, if any. +1Get the value of the (last) port option, if any. ,1Get a maybe boolean representing the last cleared/uncleared option if any. Were we invoked as "hours" ? -NGet the journal file path from options, an environment variable, or a default .FGather filter pattern arguments into a list of account patterns and a A list of description patterns. We interpret pattern arguments as  follows: those prefixed with desc: are description patterns, all : others are account patterns; also patterns prefixed with not: are 9 negated. not: should come after desc: if both are used. /*Convert application options to the library' s generic filter specification. 7  !"#$%&'()*+,-./8"  !!!!!!!!!#$%&'()*+,-./0)  !!!!!!!!!  !"#$%&'()*+,-./ 0Parse the user'6s specified journal file and run a hledger command on  it, or throw an error. 1DGet a journal from the given string and options, or throw an error. 2ARe-read a journal from its data file, or return an error string. 3BRe-read a journal from its data file mostly, only if the file has D changed since last read (or if there is no file, ie data read from F stdin). The provided options are mostly ignored. Return a journal or F the error message while reading it, and a flag indicating whether it  was re-read or not. 4Has the journal'(s data file changed since last parsed ? 5)Get the last modified time of the journal's data file (or if there is no  file, the current time). 6?Attempt to open a web browser on the given url, all platforms. 7=Back up this file with a (incrementing) numbered suffix then I overwrite it with this new text, or give an error, but only if the text @ is different from the current file contents, and return a flag % indicating whether we did anything. 8>Back up this file with a (incrementing) numbered suffix, then 4 overwrite it with this new text, or give an error. KBack up this file with a (incrementing) numbered suffix, or give an error. VDoes the second file represent a backup of the first, and if so which version is it ? 012345678 012345687 0123456789KThe data for a single register report line item, representing one posting. :@A register report is a list of postings to an account or set of E accounts, with a running total. Postings may be actual postings, or 8 virtual postings aggregated over a reporting interval. ;Print a register report. <DRender a register report as plain text suitable for console output. 8Render one register report line item as plain text. Eg:   S date (10) description (20) account (22) amount (11) balance (12) R DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaaaaa AAAAAAAAAAA AAAAAAAAAAAA ! ^ displayed for first postings^  only, otherwise blank   >CGet a register report with the specified options for this journal. %Generate register report line items. ?Generate one register report line item, from a flag indicating I whether to include transaction info, a posting, and the current running  balance. KDate-sort and split a list of postings into three spans - postings matched L by the given display expression, and the preceding and following postings. BDoes this display expression allow this posting to be displayed ? . Raises an error if the display expression can' t be parsed. EParse a hledger display expression, which is a simple date test like  d>[DATE] or  d<=[DATE], and return a Posting-matching predicate. CConvert a list of postings into summary postings. Summary postings H are one per account per interval and aggregated to the specified depth  if any. DGiven a date span (representing a reporting interval) and a list of E postings within it: aggregate the postings so there is only one per  account, and adjust their date/%description so that they will render ! as a summary for this interval. DAs usual with date spans the end date is exclusive, but for display = purposes we show the previous day as end date, like ledger. BWhen a depth argument is present, postings to accounts of greater & depth are aggregated where possible. EThe showempty flag includes spans with no postings and also postings  with 0 amount. EClip the account names to the specified depth in a list of postings. Clip a posting''s account name to the specified depth. ?9:;<=>?:9;><=?9:;<>? @?Read transactions from the terminal, prompting for each field, K and append them to the journal file. If the journal came from stdin, this  command has no effect. A@Read a number of transactions from the command line, prompting, F validating, displaying and appending them to the journal file, until H end of input (then raise an EOF exception). Any command-line arguments " are used as the first transaction's description. BHRead a transaction from the command line, with history-aware prompting. CBRead postings from the command line until . is entered, using the : provided historical postings, if any, to guess defaults. DDPrompt for and read a string value, optionally with a default value D and a validator. A validator causes the prompt to repeat until the J input is valid. May also raise an EOF exception if control-d is pressed. E&Append this transaction to the journal's file. Also, to the journal's  transaction list, but we don'*t bother updating the other fields - this @ is enough to include new transactions in the history matching. FAppend data to the journal'(s file, ensuring proper separation from & any existing data; or if the file is -, dump it to stdout. G9Convert a string of journal data into a register report. H;Return a similarity measure, from 0 to 1, for two strings.  This is Simon White's letter pairs algorithm from  http:www.catalysoft.comarticlesStrikeAMatch.html ( with a modification for short strings. IJ @ABCDEFGHIJ @ABCDEFGHIJ @ABCDEFGHIJ KJThe data for a single balance report line item, representing one account. LNA balance report is a chart of accounts with balances, and their grand total. MPrint a balance report. NCRender a balance report as plain text suitable for console output. 3Render one balance report line item as plain text. OBGet a balance report with the specified options for this journal. ;Is the named account considered interesting for this ledger's balance report ? KLMNOLKMONKLMNOPQRSFA set of data definitions and account-matching patterns sufficient to Tconvert a particular CSV data file into meaningful journal transactions. See above. TUVWXYZ[\]^RRead the CSV file named as an argument and print equivalent journal transactions,  using/creating a .rules file. _:The highest (0-based) field index referenced in the field . definitions, or -1 if no fields are defined. `abcdeNReal independent parser choice, even when alternative matches share a prefix. fghi4Convert some date string with unknown format to YYYYMMDD. jDApply account matching rules to a transaction description to obtain 5 the most appropriate account and a new description. -PQRSTUVWXYZ[\]^_`abcdefghijSTUVWXYZ[\]RQP^_`abcdefghijPQRS TUVWXYZ[\]TUVWXYZ[\]^_`abcdefghijkDPrint a histogram of some statistic per reporting interval, such as  number of postings per day. lklklklmIThe data for a single journal report item, representing one transaction. nA journal report! is just a list of transactions. o/Print journal transactions in standard format. pqmnopqnmoqpmnopq r*Print various statistics for the journal. srsrsrs S9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstt uRun unit tests. vFunit tests, augmenting the ones defined in each module. Where that is E inconvenient due to import cycles or whatever, we define them here. w uvwuvwuvw xxxx !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aabcdefghijklmnopqrstuvwxyz{|}~   hledger-0.12Hledger.Cli.OptionsHledger.Cli.UtilsHledger.Cli.Commands.RegisterHledger.Cli.Commands.AddHledger.Cli.Commands.BalanceHledger.Cli.Commands.ConvertHledger.Cli.Commands.HistogramHledger.Cli.Commands.PrintHledger.Cli.Commands.StatsHledger.Cli.Commands.AllHledger.Cli.TestsHledger.Cli.MainHledger.Cli.VersionOptDebugVtyDebugBinaryFilenameVersionVerboseHelpAll HelpOptionsHelpPortBaseUrl YearlyOpt QuarterlyOpt MonthlyOpt WeeklyOptDailyOptSubTotalNoTotalDropFlatRealEmpty EffectiveDisplayDepth CostBasis UnClearedClearedPeriodEndBegin NoNewAcctsFilevalueoptionsparseArguments fixOptDatesdateSpanFromOptsintervalFromOpts depthFromOpts dropFromOptsdisplayExprFromOptsbaseUrlFromOpts portFromOptsusingTimeProgramNamejournalFilePathFromOptsparsePatternArgsoptsToFilterSpec withJournalDoreadJournalWithOpts journalReloadjournalReloadIfChangedjournalFileIsNewerjournalFileModificationTime openBrowserOnwriteFileWithBackupIfChangedwriteFileWithBackupRegisterReportItemRegisterReportregisterregisterReportAsTextshowPostingWithBalanceForVtyregisterReporttests_RegisteraddgetAndAddTransactionsgetTransaction getPostingsaskForjournalAddTransactionappendToJournalFileregisterFromStringcompareStringscompareDescriptionstransactionsSimilarToBalanceReportItem BalanceReportbalancebalanceReportAsText balanceReport CsvRecord AccountRule FieldPositionCsvRules dateField statusField codeFielddescriptionField amountField currencyField baseCurrency baseAccount accountRulesconvert maxFieldIndex rulesFileForinitialRulesFileContentparseCsvRulesFile parseCsvRules csvrulesfile definitions accountruleprintTxntransactionFromCsvRecord normaliseDateidentify histogram showHistogramJournalReportItem JournalReportprint'showTransactions journalReportstatsshowLedgerStatstests_Hledger_CommandsrunteststestsjournalWithAmountsmainversion patchlevelprogname timeprogname buildversionbinaryfilename versionstr versionmsg configflagshelp1help2optsWithConstructoroptsWithConstructorsoptValuesForConstructoroptValuesForConstructorsclearedValueFromOpts backUpFilesafeGetDirectoryContents backupNumberregisterReportItemAsTextgetitemsmkitempostingsMatchingDisplayExprdisplayExprMatchesdatedisplayexprsummarisePostingsByIntervalsummarisePostingsInDateSpandepthClipPostingsdepthClipPostingwordLetterPairs letterPairsbalanceReportItemAsTextexclusiveBalance isInterestingisInterestingFlatisInterestingIndented nullruleschoice' datefield codefield statusfielddescriptionfield amountfield currencyfield basecurrency baseaccount blanklines blankline commentchar commentlineblankorcommentlinematchreplacepatterncaseinsensitive tests_Convertbarchar printDayWithcountBarjournalReportAsTextdate1t1 samplejournalsamplejournalwithoptssample_journal_strdefaultyear_journal_strwrite_sample_journal entry2_str entry3_strperiodic_entry1_strperiodic_entry2_strperiodic_entry3_str journal1_str journal2_str journal3_str journal4_str journal5_str journal6_str journal7_strjournal7ledger7 journal8_strtimelogentry1_str timelogentry1timelogentry2_str timelogentry2a1a2a3