summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Added an --unrealized option, for use with bal -VJohn Wiegley2009-11-195-15/+74
| | | | | | When this option is on, then in balance report which show market values, any gains or losses in value will be balanced into a pair of accounts called Equity:Unrealized Gains and Equity:Unrealized Losses.
* Fixed a debug stringJohn Wiegley2009-11-191-2/+1
|
* Don't auto-sort transactions for the balance reportJohn Wiegley2009-11-191-4/+0
|
* Changed several pointers to references in filtersJohn Wiegley2009-11-193-50/+48
|
* Renamed bool controlling running total calculationsJohn Wiegley2009-11-183-6/+6
| | | | | | It used to be "account_wise", since it only happens for non-account-wise reports. Now it's called just "calc_running_total", so anyone can request it.
* Decompile all amount expressions for accounts reportsJohn Wiegley2009-11-181-0/+6
| | | | | This happens after running through all the post handlers, before running any of the account handlers.
* It's OK for a report query to be emptyJohn Wiegley2009-11-182-28/+20
| | | | It's always possible the user only specified a display predicate.
* Whitespace fixJohn Wiegley2009-11-181-2/+1
|
* Changed only_preliminaries to for_accounts_reportJohn Wiegley2009-11-182-5/+5
|
* Added an ACCOUNT_GENERATED flagJohn Wiegley2009-11-181-3/+4
|
* Allow ! and - operators on sequence valuesJohn Wiegley2009-11-181-0/+14
|
* Wasn't serializing date_range_t::end_inclusive memberJohn Wiegley2009-11-181-0/+1
|
* Guarded some debug codeJohn Wiegley2009-11-181-0/+2
|
* The new period parser is passing all testsJohn Wiegley2009-11-188-146/+214
|
* The new period parser is implemented, but untestedJohn Wiegley2009-11-183-629/+883
|
* Added a "range" member to date_interval_tJohn Wiegley2009-11-182-30/+34
| | | | | | This is used to define the beginning/ending ranges of the time period, before it becomes fixed (by calling stabilize()) and then sets the values of start and end.
* Added several new types for working with dates and rangesJohn Wiegley2009-11-172-0/+615
| | | | | | | | | | | | | | | | | | | | | | | | date_specifier_t :: This is like a plain date_t, except it knows what wasn't specified. For example, if 2008/06 is parsed, it becomes date_specifier_t which knows that no day was given. If you ask for the begin() date of the specifier, it will be 2008/06/01; the end() date (which is exclusive) will be 2008/07/01. date_range_t :: A date range is a range of two specifiers, either of which (but not both) may be omitted. This makes it possible to represent expressions like "from june to july", where no day or year is given. The exact dates will be inferred by using the current year, and fixing the range from YEAR/06/01 to YEAR/07/01. That is, the range goes from the begin() of one date specifier to the begin() of the other. date_specifier_or_range_t :: A variadic type that can be either a date_specifier_t or a date_range_t. It's just a wrapper to represent the fact that ranges can be implicit via specifiers (such as, "in june"), or explicit via ranges ("since 2008").
* Moved date_interval_t::duration_t to date_duration_tJohn Wiegley2009-11-172-108/+106
|
* Added a date_traits_t typeJohn Wiegley2009-11-172-26/+68
|
* Renamed date_interval_t::end to finishJohn Wiegley2009-11-176-52/+52
|
* Some reformatting in query.hJohn Wiegley2009-11-171-35/+37
|
* Added ledger::string(Iter, Iter) constructorJohn Wiegley2009-11-171-0/+5
|
* Fixed several time and date duration type usesJohn Wiegley2009-11-172-9/+16
|
* Made the account and tag directives more rationalJohn Wiegley2009-11-151-69/+81
| | | | | Now you must specify "account / end account", and "tag / end tag". For backwards compatability, plain "end" is the same as "end account".
* Corrected parsing of the 'expr' report query termJohn Wiegley2009-11-152-10/+14
|
* Made the transaction date parser a bit more strictJohn Wiegley2009-11-151-10/+13
|
* Made the amount_t::bigint_t refcount holder 32-bitsJohn Wiegley2009-11-141-6/+2
| | | | It was overflowing on a full register report of just 3M of data.
* Changed a use of balance_error to amount_errorJohn Wiegley2009-11-141-1/+1
|
* Added another catch handler for Python exceptionsJohn Wiegley2009-11-141-0/+4
|
* Fixed an internal reference issue with PythonJohn Wiegley2009-11-142-13/+29
|
* Removed post_t::xdata_t::ptr, which is not usedJohn Wiegley2009-11-141-4/+1
|
* Memoize results from the fast predicate matcherJohn Wiegley2009-11-142-1/+18
| | | | | This gains another 15% for the parser, again with a very simple change that has no impact if the fast predicate matcher fails to work.
* Spot optimization for simple automated xact exprsJohn Wiegley2009-11-142-5/+70
| | | | | | This reduces parsing time in the optimized build by 25%, and was a safe, easy patch. If the "quick predicate evaluator" fails, we disable it from that point on go back to what the standard code does.
* Removed the virtual marker on several filter methodsJohn Wiegley2009-11-141-4/+4
|
* Added historical support for single-letter valexprsJohn Wiegley2009-11-144-3/+90
|
* Optimization in the formatting of string valuesJohn Wiegley2009-11-142-3/+9
|
* Break up multiple commodities in equity reportJohn Wiegley2009-11-142-11/+18
|
* Don't bold the payee for virtual or temporary xactsJohn Wiegley2009-11-131-1/+1
|
* Stylistic change: assert(0) -> assert(false)John Wiegley2009-11-136-11/+11
|
* Fixed some debug outputJohn Wiegley2009-11-131-0/+5
|
* --data shouldn't modify the underlying itemJohn Wiegley2009-11-122-7/+1
|
* Move a typedef in utils.hJohn Wiegley2009-11-121-4/+4
|
* Added a Journal.collect method to PythonJohn Wiegley2009-11-121-0/+106
| | | | | | | | | | | | | | | | | | | | This lets you run standard report queries against a Ledger journal and get back a collection of postings, for example: import ledger journal = ledger.Journal("sample.dat") posts = journal.collect("-M assets") for post in posts: print post.account However, this code is not really working yet for a large variety of reasons, having to do with object life-time, shallow copying, and lack of reference counting where it should be. For instance, calling ledger.Journal().collect() fails because the temporary journal object is destroyed and the collection now has a host of bad pointers. Using "for post in journal.collect()" fails too with other bad pointers. And the whole lot of it crashes on exit at the moment.
* Removed unnecessary codeJohn Wiegley2009-11-121-1/+1
|
* Set call policies for accessing post.xdata.accountJohn Wiegley2009-11-121-2/+4
|
* Added a collect_posts handlerJohn Wiegley2009-11-121-0/+29
|
* Reordered the export_ calls in pyinterp.ccJohn Wiegley2009-11-121-6/+6
|
* Reorganized a bit of the reporting codeJohn Wiegley2009-11-122-48/+55
|
* Added has_xdata() methods for journal_t and xact_tJohn Wiegley2009-11-128-2/+45
|
* Made ~post_t virtualJohn Wiegley2009-11-121-1/+1
|