This commit is contained in:
Kovid Goyal 2013-05-09 12:54:32 +05:30
parent db1a2dcac2
commit 876c0de8e7

View File

@ -33,7 +33,7 @@ class SavedSearchQueries(object):
opt_name = '' opt_name = ''
def __init__(self, db, _opt_name): def __init__(self, db, _opt_name):
self.opt_name = _opt_name; self.opt_name = _opt_name
if db is not None: if db is not None:
self.queries = db.prefs.get(self.opt_name, {}) self.queries = db.prefs.get(self.opt_name, {})
else: else:
@ -217,7 +217,7 @@ class Parser(object):
if self.token(advance=True) != ')': if self.token(advance=True) != ')':
raise ParseException(_('missing )')) raise ParseException(_('missing )'))
return res return res
if self.token_type() not in [ self.WORD, self.QUOTED_WORD ]: if self.token_type() not in (self.WORD, self.QUOTED_WORD):
raise ParseException(_('Invalid syntax. Expected a lookup name or a word')) raise ParseException(_('Invalid syntax. Expected a lookup name or a word'))
return self.base_token() return self.base_token()
@ -279,7 +279,6 @@ class SearchQueryParser(object):
* `(author:Asimov or author:Hardy) and not tag:read` [search for unread books by Asimov or Hardy] * `(author:Asimov or author:Hardy) and not tag:read` [search for unread books by Asimov or Hardy]
''' '''
@staticmethod @staticmethod
def run_tests(parser, result, tests): def run_tests(parser, result, tests):
failed = [] failed = []
@ -371,7 +370,7 @@ class SearchQueryParser(object):
return self._parse(saved_searches().lookup(query), candidates) return self._parse(saved_searches().lookup(query), candidates)
except ParseException as e: except ParseException as e:
raise e raise e
except: # convert all exceptions (e.g., missing key) to a parse error except: # convert all exceptions (e.g., missing key) to a parse error
import traceback import traceback
traceback.print_exc() traceback.print_exc()
raise ParseException(_('Unknown error in saved search: {0}').format(query)) raise ParseException(_('Unknown error in saved search: {0}').format(query))
@ -736,15 +735,13 @@ class Tester(SearchQueryParser):
return set([]) return set([])
query = query.lower() query = query.lower()
if candidates: if candidates:
return set(key for key, val in self.texts.items() \ return set(key for key, val in self.texts.items()
if key in candidates and query and query if key in candidates and query and query
in getattr(getter(val), 'lower', lambda : '')()) in getattr(getter(val), 'lower', lambda : '')())
else: else:
return set(key for key, val in self.texts.items() \ return set(key for key, val in self.texts.items()
if query and query in getattr(getter(val), 'lower', lambda : '')()) if query and query in getattr(getter(val), 'lower', lambda : '')())
def run_tests(self): def run_tests(self):
failed = [] failed = []
for query in self.tests.keys(): for query in self.tests.keys():