2020 "get_id_to_alts" ,
2121 "get_primary_curie" ,
2222 "get_primary_identifier" ,
23+ "get_primary_reference" ,
2324]
2425
2526logger = logging .getLogger (__name__ )
@@ -61,13 +62,13 @@ def get_alts_to_id(prefix: str, **kwargs: Unpack[GetOntologyKwargs]) -> Mapping[
6162 }
6263
6364
64- def get_primary_curie (
65+ def get_primary_reference (
6566 prefix : str | curies .Reference | curies .ReferenceTuple ,
6667 identifier : str | None = None ,
6768 / ,
6869 ** kwargs : Unpack [GetOntologyKwargs ],
69- ) -> str | None :
70- """Get the primary curie for an entity."""
70+ ) -> curies . ReferenceTuple | None :
71+ """Get the primary reference for an entity."""
7172 reference = _get_pi (prefix , identifier )
7273 try :
7374 primary_identifier = get_primary_identifier (reference , ** kwargs )
@@ -76,7 +77,20 @@ def get_primary_curie(
7677 raise
7778 # this happens on invalid prefix. maybe revise?
7879 return None
79- return f"{ reference .prefix } :{ primary_identifier } "
80+ return curies .ReferenceTuple (reference .prefix , primary_identifier )
81+
82+
83+ def get_primary_curie (
84+ prefix : str | curies .Reference | curies .ReferenceTuple ,
85+ identifier : str | None = None ,
86+ / ,
87+ ** kwargs : Unpack [GetOntologyKwargs ],
88+ ) -> str | None :
89+ """Get the primary curie for an entity."""
90+ reference = get_primary_reference (prefix , identifier , ** kwargs )
91+ if reference is None :
92+ return None
93+ return reference .curie
8094
8195
8296def get_primary_identifier (
0 commit comments