From 83c6fed6c8caf762a8ce216df62de8a2425c3e60 Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Tue, 21 Jan 2014 21:09:53 -0800 Subject: [PATCH] type-based formatting: tolerate null values in DB --- beets/library.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/beets/library.py b/beets/library.py index 3c4b6893a..761ed72cf 100644 --- a/beets/library.py +++ b/beets/library.py @@ -81,12 +81,12 @@ class SingletonQuery(dbcore.Query): ID_TYPE = Type('INTEGER PRIMARY KEY', dbcore.query.NumericQuery, unicode) INT_TYPE = Type('INTEGER', dbcore.query.NumericQuery, unicode) FLOAT_TYPE = Type('REAL', dbcore.query.NumericQuery, - lambda n: u'{0:.1f}'.format(n)) + lambda n: u'{0:.1f}'.format(n or 0.0)) DATE_TYPE = Type( 'REAL', dbcore.query.NumericQuery, lambda d: time.strftime(beets.config['time_format'].get(unicode), - time.localtime(d)) + time.localtime(d or 0)) ) STRING_TYPE = Type('TEXT', dbcore.query.SubstringQuery, unicode) BOOL_TYPE = Type('INTEGER', dbcore.query.BooleanQuery, unicode) @@ -94,11 +94,11 @@ PATH_TYPE = Type('BLOB', PathQuery, util.displayable_path) def _padded_int(digits): return Type('INTEGER', dbcore.query.NumericQuery, - lambda n: u'{0:0{1}d}'.format(n, digits)) + lambda n: u'{0:0{1}d}'.format(n or 0, digits)) def _scaled_int(suffix=u'', unit=1000): return Type('INTEGER', dbcore.query.NumericQuery, - lambda n: u'{0}{1}'.format(n // unit, suffix)) + lambda n: u'{0}{1}'.format((n or 0) // unit, suffix)) # Fields in the "items" database table; all the metadata available for # items in the library. These are used directly in SQL; they are