Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy.util.ucsc
"""
Utilities for dealing with UCSC data.
"""
[docs]class UCSCOutWrapper:
    """File-like object that throws an exception if it encounters the UCSC limit error lines"""
[docs]    def __init__(self, other):
        self.other = iter(other)
        # Need one line of lookahead to be sure we are hitting the limit message
        self.lookahead = None
    def __iter__(self):
        return self
    def __next__(self):
        if self.lookahead is None:
            line = next(self.other)
        else:
            line = self.lookahead
            self.lookahead = None
        if line.startswith("----------"):
            next_line = next(self.other)
            if next_line.startswith("Reached output limit"):
                raise UCSCLimitException(next_line.strip())
            else:
                self.lookahead = next_line
        return line