Skip to content

Commit 9dbd1fe

Browse files
committed
Encapsulate ROR primary label logic
1 parent 8132d39 commit 9dbd1fe

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

src/pyobo/sources/ror.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,17 @@ class Record(BaseModel):
190190
types: list[OrganizationType]
191191
admin: Admin
192192

193+
def get_preferred_label(self) -> str | None:
194+
"""Get the preferred label."""
195+
primary_name: str | None = None
196+
for name in self.names:
197+
if "ror_display" in name.types:
198+
primary_name = name.value
199+
if primary_name is None:
200+
return None
201+
primary_name = NAME_REMAPPING.get(primary_name, primary_name)
202+
return primary_name
203+
193204

194205
_description_prefix = {
195206
"education": "an educational organization",
@@ -222,16 +233,10 @@ def iterate_ror_terms(*, force: bool = False) -> Iterable[Term]:
222233
for record in tqdm(records, unit_scale=True, unit="record", desc=f"{PREFIX} v{_version}"):
223234
identifier = record.id.removeprefix("https://ror.org/")
224235

225-
primary_name: str | None = None
226-
for name in record.names:
227-
if "ror_display" in name.types:
228-
primary_name = name.value
229-
236+
primary_name = record.get_preferred_label()
230237
if primary_name is None:
231238
raise ValueError("should have got a primary name...")
232239

233-
primary_name = NAME_REMAPPING.get(primary_name, primary_name)
234-
235240
term = Term(
236241
reference=Reference(prefix=PREFIX, identifier=identifier, name=primary_name),
237242
type="Instance",

0 commit comments

Comments
 (0)