From c8f8bd3c32be7c69518d17461a7b730649fa57b0 Mon Sep 17 00:00:00 2001 From: Joe Flack Date: Fri, 19 Jan 2024 18:30:24 -0500 Subject: [PATCH] - Update: lexical_index_to_sssom(): Added param for extended prefix map --- src/oaklib/utilities/lexical/lexical_indexer.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/oaklib/utilities/lexical/lexical_indexer.py b/src/oaklib/utilities/lexical/lexical_indexer.py index e3e196524..feda790c1 100644 --- a/src/oaklib/utilities/lexical/lexical_indexer.py +++ b/src/oaklib/utilities/lexical/lexical_indexer.py @@ -247,6 +247,7 @@ def lexical_index_to_sssom( ruleset: MappingRuleCollection = None, meta: Optional[Dict[str, t.Any]] = None, prefix_map: Union[None, Converter, t.Mapping[str, str]] = None, + extended_prefix_map: t.Iterable[Dict[str, t.Any]] = None, subjects: Collection[CURIE] = None, objects: Collection[CURIE] = None, symmetric: bool = False, @@ -265,6 +266,9 @@ def lexical_index_to_sssom( :param ensure_strict_prefixes: If true, prefixes & mappings in SSSOM MappingSetDataFrame will be filtred. :return: SSSOM MappingSetDataFrame object. """ + if prefix_map and extended_prefix_map: + raise ValueError("Can only pass prefix_map or extended_prefix_map, but not both.") + mappings = [] logging.info("Converting lexical index to SSSOM") if subjects: @@ -313,7 +317,11 @@ def lexical_index_to_sssom( converter = curies.chain( [ - Converter.from_prefix_map((meta or {}).pop(CURIE_MAP, {})), + Converter.from_extended_prefix_map(extended_prefix_map) + if extended_prefix_map + else Converter.from_prefix_map(prefix_map) + if prefix_map + else Converter.from_prefix_map((meta or {}).pop(CURIE_MAP, {})), ensure_converter(prefix_map, use_defaults=False), oi.converter, ]