Warning
This document is for an in-development version 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