Source code for hed.models.basic_search_util

"""
Utilities to support HED searches based on strings.
"""
from hed.models.hed_string import HedString
from hed.models.hed_tag import HedTag


[docs]def convert_query(search_query, schema): """Converts the given basic search query into a hed_string Parameters: search_query(str): The basic search query to convert. schema(HedSchema): The schema to use to convert tags Returns: long_query(str): The converted search query, in long form. """ input_tags = HedString.split_hed_string(search_query) output_string = "" skippable_prefix = ("@", "~") skippable_suffix = ("*", ) for is_hed_tag, (startpos, endpos) in input_tags: input_tag = search_query[startpos:endpos] add_suffix = "" if is_hed_tag: if input_tag.startswith(skippable_prefix): output_string += input_tag[:1] input_tag = input_tag[1:] if input_tag.endswith(skippable_suffix): add_suffix = input_tag[-1:] input_tag = input_tag[:-1] output_string += HedTag(input_tag, schema).long_tag output_string += add_suffix else: output_string += input_tag return output_string