@@ -247,6 +247,7 @@ def lexical_index_to_sssom(
247247 ruleset : MappingRuleCollection = None ,
248248 meta : Optional [Dict [str , t .Any ]] = None ,
249249 prefix_map : Union [None , Converter , t .Mapping [str , str ]] = None ,
250+ extended_prefix_map : t .Iterable [Dict [str , t .Any ]] = None ,
250251 subjects : Collection [CURIE ] = None ,
251252 objects : Collection [CURIE ] = None ,
252253 symmetric : bool = False ,
@@ -265,6 +266,9 @@ def lexical_index_to_sssom(
265266 :param ensure_strict_prefixes: If true, prefixes & mappings in SSSOM MappingSetDataFrame will be filtred.
266267 :return: SSSOM MappingSetDataFrame object.
267268 """
269+ if prefix_map and extended_prefix_map :
270+ raise ValueError ("Can only pass prefix_map or extended_prefix_map, but not both." )
271+
268272 mappings = []
269273 logging .info ("Converting lexical index to SSSOM" )
270274 if subjects :
@@ -313,7 +317,11 @@ def lexical_index_to_sssom(
313317
314318 converter = curies .chain (
315319 [
316- Converter .from_prefix_map ((meta or {}).pop (CURIE_MAP , {})),
320+ Converter .from_extended_prefix_map (extended_prefix_map )
321+ if extended_prefix_map
322+ else Converter .from_prefix_map (prefix_map )
323+ if prefix_map
324+ else Converter .from_prefix_map ((meta or {}).pop (CURIE_MAP , {})),
317325 ensure_converter (prefix_map , use_defaults = False ),
318326 oi .converter ,
319327 ]
0 commit comments