def compile(query): compiled = {"tags": [], "not_tags": []} sanitized_query = re.sub(r"['\"]", "", query.encode('utf8')) scanner = StringScanner(sanitized_query) first_token = True while not scanner.is_eos: token = scanner.scan(_next_token()) if not token: scanner.skip(_separators()) continue if ":" in token: compiled = _compile_tag(compiled, token) elif first_token: compiled["general"] = token if not first_token: first_token = True return compiled
def compile(query): compiled = {"tags": [], "not_tags": [], "general": []} scanner = StringScanner(query.encode('utf8').replace("\"", "")) first_token = True while not scanner.is_eos: token = scanner.scan(_next_token()) if not token: scanner.skip(_separators()) continue if ":" in token: compiled = _compile_tag(compiled, token) elif first_token: compiled["general"].append(token) if not first_token: first_token = True compiled["general"] = ' '.join(compiled["general"]) return SearchQuery(compiled)