Remove duplicate test.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Ensure that the preferred version has the right type.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Ensure CSV downgrades don't corrupt data.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Allow command-line upgrades and downgrades.

This allows for easier testing of conversions.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Remove editor-specific comments.

If Vim can autodetect that a file is a Python file, so can Emacs.  Also, not
all Vim users will want to use folding, so remove that comment as well.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Ensure upgrades work if no version is provided.

A previous fix to ensure database upgrades worked correctly broke if a
version was not provided.  This also caused a unit test to fail.  Fix this
by checking for None before converting the value into the proper type.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Add automatic record filtering.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Ensure that records() always returns a list.

A lot of the code stores the items for later, and using an iterator will
result in unhappiness when the data can't be iterated over more than once.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Use new filter logic where possible.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Merge branch 'master' into peter