Skip to content

Commit ca4ea65

Browse files
committed
Safer gilda term construction
1 parent a2da824 commit ca4ea65

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

src/pyobo/gilda_utils.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -147,17 +147,21 @@ def _fast_term(
147147
name: str,
148148
status: str,
149149
organism: Optional[str] = None,
150-
) -> gilda.term.Term:
151-
return gilda.term.Term(
152-
norm_text=normalize(text),
153-
text=text,
154-
db=prefix,
155-
id=identifier,
156-
entry_name=name,
157-
status=status,
158-
source=prefix,
159-
organism=organism,
160-
)
150+
) -> Optional[gilda.term.Term]:
151+
try:
152+
term = gilda.term.Term(
153+
norm_text=normalize(text),
154+
text=text,
155+
db=prefix,
156+
id=identifier,
157+
entry_name=name,
158+
status=status,
159+
source=prefix,
160+
organism=organism,
161+
)
162+
except ValueError:
163+
return None
164+
return term
161165

162166

163167
def get_gilda_terms(
@@ -184,14 +188,16 @@ def get_gilda_terms(
184188
for identifier, name in it:
185189
if identifier in obsoletes:
186190
continue
187-
yield _fast_term(
191+
term = _fast_term(
188192
text=name,
189193
prefix=prefix,
190194
identifier=identifier,
191195
name=name,
192196
status="name",
193197
organism=id_to_species.get(identifier),
194198
)
199+
if term is not None:
200+
yield term
195201

196202
id_to_synonyms = get_id_synonyms_mapping(prefix, version=version)
197203
if id_to_synonyms:
@@ -209,14 +215,16 @@ def get_gilda_terms(
209215
for synonym in synonyms:
210216
if not synonym:
211217
continue
212-
yield _fast_term(
218+
term = _fast_term(
213219
text=synonym,
214220
prefix=prefix,
215221
identifier=identifier,
216222
name=name,
217223
status="synonym",
218224
organism=id_to_species.get(identifier),
219225
)
226+
if term is not None:
227+
yield term
220228

221229
if identifiers_are_names:
222230
it = tqdm(
@@ -229,11 +237,13 @@ def get_gilda_terms(
229237
for identifier in it:
230238
if identifier in obsoletes:
231239
continue
232-
yield _fast_term(
240+
term = _fast_term(
233241
text=identifier,
234242
prefix=prefix,
235243
identifier=identifier,
236244
name=identifier,
237245
status="name",
238246
organism=id_to_species.get(identifier),
239247
)
248+
if term is not None:
249+
yield term

0 commit comments

Comments
 (0)