New eggs which contain the NiceReaderWrapper, and removed it from Gops. bx.intervals.io.NiceReaderWrapper. Enjoy.

This commit is contained in:
Ian Schenck
2007-08-03 14:58:15 +00:00
parent 6998d3a83e
commit 0641ac060e
@@ -24,35 +24,6 @@ def parse_cols_arg( cols ):
else:
return BED_DEFAULT_COLS
class NiceReaderWrapper( GenomicIntervalReader ):
def __init__( self, reader, **kwargs ):
GenomicIntervalReader.__init__( self, reader, **kwargs )
self.outstream = kwargs.get("outstream", None)
self.print_delegate = kwargs.get("print_delegate", None)
self.skipped = 0
self.skipped_lines = []
self.input_wrapper = iter( self.input )
self.input_iter = self.iterwrapper()
def __iter__( self ):
return self
def next( self ):
while 1:
try:
nextitem = GenomicIntervalReader.next( self )
return nextitem
except ParseError, e:
if self.outstream:
if self.print_delegate and hasattr(self.print_delegate,"__call__"):
self.print_delegate( self.outstream, e, self )
self.skipped += 1
# no reason to stuff an entire bad file into memmory
if self.skipped < 10:
self.skipped_lines.append( (self.linenum, self.current_line) )
def iterwrapper( self ):
while 1:
self.current_line = self.input_wrapper.next()
yield self.current_line
def default_printer( stream, exc, obj ):
print >> stream, "%d: %s" % ( obj.linenum, obj.current_line )
print >> stream, "\tError: %s" % ( str(exc) )