def filter(self, context): complete_str = context["complete_str"] if context["ignorecase"]: complete_str = complete_str.lower() p = re.compile(fuzzy_escape(complete_str, context["camelcase"])) if context["ignorecase"]: return [x for x in context["candidates"] if p.match(x["word"].lower())] else: return [x for x in context["candidates"] if p.match(x["word"])]
def filter(self, context): complete_str = context['complete_str'] if context['ignorecase']: complete_str = complete_str.lower() p = re.compile(fuzzy_escape(complete_str, context['camelcase'])) if context['ignorecase']: return [ x for x in context['candidates'] if p.search(x['word'].lower()) ] else: return [x for x in context['candidates'] if p.search(x['word'])]
def filter(self, context): complete_str = context['complete_str'] if context['ignorecase']: complete_str = complete_str.lower() p = re.compile(fuzzy_escape(complete_str, context['camelcase'])) if context['ignorecase']: return [x for x in context['candidates'] if p.search(x['word'].lower())] else: return [x for x in context['candidates'] if p.search(x['word'])]
def filter(self, context: UserContext) -> Candidates: complete_str = context['complete_str'] if context['ignorecase']: complete_str = complete_str.lower() if not complete_str: return list(context['candidates']) results = [] for candidate in context['candidates']: title = candidate['_data'].title p = re.compile(fuzzy_escape(complete_str, context['camelcase'])) if context['ignorecase']: if p.search(title.lower()): results.append(candidate) else: if p.search(title): results.append(candidate) return results
def filter(self, context): complete_str = context['complete_str'] if context['ignorecase']: complete_str = complete_str.lower() if context['is_sorted']: begin = binary_search_begin( context['candidates'], complete_str[0]) end = binary_search_end( context['candidates'], complete_str[0]) if begin < 0 or end < 0: return [] candidates = context['candidates'][begin:end+1] else: candidates = context['candidates'] p = re.compile(fuzzy_escape(complete_str, context['camelcase'])) if context['ignorecase']: return [x for x in candidates if p.match(x['word'].lower())] else: return [x for x in candidates if p.match(x['word'])]
def filter(self, context): complete_str = context['complete_str'] if context['ignorecase']: complete_str = complete_str.lower() if not complete_str: return context['candidates'] if context['is_sorted']: begin = binary_search_begin( context['candidates'], complete_str[0]) end = binary_search_end( context['candidates'], complete_str[0]) if begin < 0 or end < 0: return [] candidates = context['candidates'][begin:end+1] else: candidates = context['candidates'] p = re.compile(fuzzy_escape(complete_str, context['camelcase'])) if context['ignorecase']: return [x for x in candidates if p.match(x['word'].lower())] else: return [x for x in candidates if p.match(x['word'])]
def test_fuzzy_escapse(self): eq_(fuzzy_escape('foo', 0), 'f[^f]*o[^o]*o[^o]*') eq_(fuzzy_escape('foo', 1), 'f[^f]*o[^o]*o[^o]*') eq_(fuzzy_escape('Foo', 1), 'F[^F]*[oO].*[oO].*')
def test_fuzzy_escapse(): assert util.fuzzy_escape('foo', 0) == 'f[^f]*o[^o]*o[^o]*' assert util.fuzzy_escape('foo', 1) == 'f[^f]*o[^o]*o[^o]*' assert util.fuzzy_escape('Foo', 1) == 'F[^F]*[oO].*[oO].*'
def test_fuzzy_escapse(self): eq_(fuzzy_escape('foo', 0), 'f.*o.*o.*') eq_(fuzzy_escape('foo', 1), 'f.*o.*o.*') eq_(fuzzy_escape('Foo', 1), 'F.*[oO].*[oO].*')