Hi,
I just baked micro release 2.1.3.
(The next one will probably be 2.2, which will remove nosetests regression testing support, and some of the older ingest mixins (I have built better ones), so it might break some importers.)
* Version: 2.1.3
2018-10-04
- Fixed #323: Escape strings in printer.
- Minor bug fix for beancount.prices.price on null result.
2018-09-19
- Removed TRUNCATE(), after realizing ROOT() can already do the same thing.
2018-09-18
- Added TRUNCATE() function to SQL shell for Vikas Rawal.
2018-09-03
- Added a parameter to the cmptest assertions to disable real booking and
allow a weak local form of booking conversion that allows interpolation.
(I'm using this in another project to assert some incomplete transactions.)
2018-08-30
- Made assertions on entries off of the TestCase class, as free functions (so
that they can be used in another project).
2018-08-26
- Fixed tests for pipeline running pytest (somehow the curses functions fail,
probably due to better environment isolation from pytest).
- Implementation of beancount.ingest.regression_pytest, a pytest replacement
for beancount.ingest.regression, which was for nose. This is simpler and
better and more straightforward (no conditionals; all regression files must
have all accompanying expect files and all must pass). See the module
docstring for new instructions on how to use this.
This should not break the older tests, as I haven't changed the older
support. It (beancount.ingest.regression) will be removed eventually.
(This completes porting Beancount to use pytest instead of nosetests.)
2018-08-25
- Today we're switching to pytest as the official test runner. All the tests
pass, and it even runs faster. It's about time!
- Removed all references and workaround to nose.
2018-08-23
- Oops... removing forgotten trace in bean-web.
- Fixed #325: Implemented support for including encrypted files (for Milind Kamble
and using some of this changes).
2018-08-17
- Added 'issuer' column to the export script. I'm going to use this to produce
a deaggregated list of exposure to individual stocks from a list of ETFs.
2018-08-25
- Upgrade requirement to bison-3.0.5 for development.
2018-08-12
- After many years of using something like it to track my investment portfolio
using a Google Sheets doc, I cleaned up, rewrote and move the asset list
exporting script to beancount.projects.export and deleted the old version
under experiments/upload.
2018-08-05
- Fixed #322: Adjustments to StopIteration treatment from within generators
were breaking bean-example generation code.
- Implemented a new plugin which asserts that on accounts with 'NONE' booking
method reducing postings' cost basis is within the vicinity of the average
cost basis in the account. This allows you to approximate the 'AVERAGE'
booking method avoid too much cost basis leakage until it's implemented
properly.
2018-08-02
- Created a new 'commodity_attr' plugin to asset the presence and validity
(in a set, like an enum) of metadata attributes on Commodity directives.
I export my holdings joined to a table of per-Commodity attributes and I've
made a mistake this week that ended up showing up as an overestimated
portfolio value on my portfolio tracking Google Sheets doc.
2018-07-31
- Fixed bug in new ingest() function found as I refactored my importers.
- Fixed bug with the pipeline making sure to set the CWD of the subprocess
when we run an import test.
- Fixed bug with previous commit containing stray 'string' reference. (My
environment has autoimports by default.)
- Implemented a beancount.ingest.scripts_utils.ingest() function that will act
as a main program, so you can write your own importer scripts from top to
bottom without having to rely on bean-identiy, bean-extract or bean-file.
The purpose of this change was to allow the user to insert an optional
argument 'detect_duplicates_func' in order to implement their own duplicates
detection. See discussion under
your duplicates detector, just call ingest at the end of your importer
script, like this:
my_importers = [ ... ]
ingest(my_importers, my_duplicates_func)
I could have chosen to add a "hook" option and such to Beancount, but I
preferred moving the whole import framework one level closer to code. I also
like that it's not just an imported module; it's really just your script,
with three subcommands. You could add more custom import-level stuff in
there. The ingest() function is a main program, and commands like
bean-extract myimporters.py ~/Downloads --reverse -e myledger.beancount
are invoked similarly by calling the Python script directly, like this:
./myimporters.py -d ~/Downloads extract --reverse -e myledger.beancount
These two should be equivalent.
The older way of doing things--that is, calling bean-identify, bean-extract
and bean-file--are still supported regardless of whether you've inserted a
call to ingest() in your importers configuration or not. This is made to
work via a rather labyrinthine trampoline of functions calls (in particular,
getting the arguments setup right was surprisingly tricky).
I'm still debating whether this should be "the new way", or just for those
wishing to build their own duplicate detection heuristic. Feedback (on the
list) would be interesting.
2018-07-29
- Updated to flex-2.6.4.
2018-07-28
- Added a utility to import modules by dotted string name.
2018-07-19
* Fixed #319: Incorrect version number from 2.1.2-devel to 2.1.3-devel.
2018-07-28
- Added automated unit test for calling identify() from the importers test
suite, expecting True, always.
2018-05-31
- Created a new plugin: "fill_account" to automatically insert a posting with
a default account name where there's a single posting. Will use this while
traveling as a lot of the expenses come from cash; this should significantly
shorten such files.
- Changed template for version number from {date|short} to {date(date, "%s%)}
as per discussion on #304 (thanks to Jason Chu for looking up the detail for
this).
2018-05-29
- Refactored the call to find duplicates in imported files so that it can be
called only once with all the results from all the importers. This should
eventually allow a user-provided function that can merge entries between
importers. Existing behavior should be unaffected (though there may be a
small delay until everything gets printed out; all the importers are invoked
before any output is written). See #298.
2018-05-28
- Fixed bug with tempdir being a symlink on Mac, which was making one test
fail.
- Fixed unit tests which failed due to timestamps getting rendered with an
offset on a Mac while on a train in Japan.
- Render tags and links on Document directive.
- Minor bug fix: don't fail on rendering a MISSING instnace.
- In 'divert_expenses' plugin, allow limiting diversions to one posting only.
- Fixed unit test for git checkouts. This should fix the Travis-CI build.