Minor refactoring of string comparison in query filters.

main
Olivier Mangin 7 years ago
parent c87b89bf10
commit cff028d345

@ -29,6 +29,9 @@ class QueryFilter(object):
def __call__(self, paper):
raise NotImplementedError
def _is_query_in(self, field_value):
return self.query in self._lower(field_value)
def _lower(self, s):
return s if self.case else s.lower()
@ -42,7 +45,7 @@ class FieldFilter(QueryFilter):
def __call__(self, paper):
return (self.field in paper.bibdata and
self.query in self._lower(paper.bibdata[self.field]))
self._is_query_in(paper.bibdata[self.field]))
class AuthorFilter(QueryFilter):
@ -52,14 +55,14 @@ class AuthorFilter(QueryFilter):
if 'author' not in paper.bibdata:
return False
else:
return any([self.query in self._lower(bibstruct.author_last(author))
return any([self._is_query_in(bibstruct.author_last(author))
for author in paper.bibdata['author']])
class TagFilter(QueryFilter):
def __call__(self, paper):
return any([self.query in self._lower(t) for t in paper.tags])
return any([self._is_query_in(t) for t in paper.tags])
class YearFilter(QueryFilter):

Loading…
Cancel
Save