Source code for pyhpo.parser.generics

"""
Generic functions required for handling HPOTerms
They used to be part of HPOTerm, but refactored out to
have a leander HPOTerm class
"""
from typing import Iterator


[docs]def id_from_string(hpo_string: str) -> int: """ Formats the HPO-type Term-ID into an integer id Parameters ---------- hpo_string: HPO term ID. (e.g.: HP:000001) Returns ------- int Integer representation of provided HPO ID (e.g.: 1) """ idx = hpo_string.split('!')[0].strip() return int(idx.split(':')[1].strip())
[docs]def remove_outcommented_rows( fh: Iterator[str], ignorechar: str = '#' ) -> Iterator[str]: """ Removes all rows from a filereader object that start with a comment character Parameters ---------- fh: any object which supports the iterator protocol and returns a string each time its __next__() method is called — file objects and list objects are both suitable ignorechar: All lines starting with this character(s) will be ignored Yields ------ row: str One row of the ``fh`` iterator """ len_check = len(ignorechar) for row in fh: if row[0:len_check] != ignorechar: yield row