66import subprocess
77from collections .abc import Callable , Mapping
88from functools import lru_cache
9- from typing import Any , TypeVar
9+ from typing import TypeVar
1010
1111import curies
1212import pandas as pd
4949logger = logging .getLogger (__name__ )
5050
5151
52- def get_name_by_curie (curie : str , ** kwargs : Any ) -> str | None :
52+ def get_name_by_curie (
53+ curie : str ,
54+ / ,
55+ * ,
56+ upgrade_identifier : bool | None = None ,
57+ ** kwargs : Unpack [GetOntologyKwargs ],
58+ ) -> str | None :
5359 """Get the name for a CURIE, if possible."""
54- return get_name (curie , ** kwargs )
60+ return get_name (curie , upgrade_identifier = upgrade_identifier , ** kwargs )
5561
5662
5763X = TypeVar ("X" )
@@ -63,6 +69,8 @@ def get_name_by_curie(curie: str, **kwargs: Any) -> str | None:
6369def _help_get (
6470 f : Callable [[str , Unpack [GetOntologyKwargs ]], Mapping [str , X ]],
6571 reference : Reference ,
72+ * ,
73+ upgrade_identifier : bool | None = None ,
6674 ** kwargs : Unpack [GetOntologyKwargs ],
6775) -> X | None :
6876 """Get the result for an entity based on a mapping maker function ``f``."""
@@ -87,19 +95,32 @@ def _help_get(
8795 NO_BUILD_PREFIXES .add (reference .prefix )
8896 return None
8997
90- primary_id = get_primary_identifier (reference , ** kwargs )
91- return mapping .get (primary_id )
98+ if upgrade_identifier is None :
99+ if reference .identifier in mapping :
100+ return mapping [reference .identifier ]
101+ else :
102+ primary_id = get_primary_identifier (reference , ** kwargs )
103+ return mapping .get (primary_id )
104+ elif upgrade_identifier is True :
105+ primary_id = get_primary_identifier (reference , ** kwargs )
106+ return mapping .get (primary_id )
107+ else :
108+ return mapping .get (reference .identifier )
92109
93110
94111def get_name (
95112 prefix : str | curies .Reference | curies .ReferenceTuple ,
96113 identifier : str | None = None ,
97114 / ,
115+ * ,
116+ upgrade_identifier : bool | None = None ,
98117 ** kwargs : Unpack [GetOntologyKwargs ],
99118) -> str | None :
100119 """Get the name for an entity."""
101120 reference = _get_pi (prefix , identifier )
102- return _help_get (get_id_name_mapping , reference , ** kwargs )
121+ return _help_get (
122+ get_id_name_mapping , reference , upgrade_identifier = upgrade_identifier , ** kwargs
123+ )
103124
104125
105126@lru_cache
0 commit comments