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