[Python-checkins] CVS: python/dist/src/Lib StringIO.py,1.14,1.15

Fred L. Drake python-dev@python.org
Wed, 13 Dec 2000 12:23:14 -0800


Update of /cvsroot/python/python/dist/src/Lib
In directory slayer.i.sourceforge.net:/tmp/cvs-serv2954

Modified Files:
	StringIO.py 
Log Message:

Untabify!  (Barry, this is gonna cost you a bottle of wine! ;)


Index: StringIO.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/StringIO.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** StringIO.py	2000/12/12 23:16:51	1.14
--- StringIO.py	2000/12/13 20:23:11	1.15
***************
*** 39,164 ****
  class StringIO:
      def __init__(self, buf = ''):
! 	self.buf = buf
! 	self.len = len(buf)
! 	self.buflist = []
! 	self.pos = 0
! 	self.closed = 0
! 	self.softspace = 0
  
      def close(self):
! 	if not self.closed:
! 	    self.closed = 1
! 	    del self.buf, self.pos
  
      def isatty(self):
! 	if self.closed:
! 	    raise ValueError, "I/O operation on closed file"
! 	return 0
  
      def seek(self, pos, mode = 0):
! 	if self.closed:
! 	    raise ValueError, "I/O operation on closed file"
! 	if self.buflist:
! 	    self.buf += EMPTYSTRING.join(self.buflist)
! 	    self.buflist = []
! 	if mode == 1:
! 	    pos += self.pos
! 	elif mode == 2:
! 	    pos += self.len
! 	self.pos = max(0, pos)
  
      def tell(self):
! 	if self.closed:
! 	    raise ValueError, "I/O operation on closed file"
! 	return self.pos
  
      def read(self, n = -1):
! 	if self.closed:
! 	    raise ValueError, "I/O operation on closed file"
! 	if self.buflist:
! 	    self.buf += EMPTYSTRING.join(self.buflist)
! 	    self.buflist = []
! 	if n < 0:
! 	    newpos = self.len
! 	else:
! 	    newpos = min(self.pos+n, self.len)
! 	r = self.buf[self.pos:newpos]
! 	self.pos = newpos
! 	return r
  
      def readline(self, length=None):
! 	if self.closed:
! 	    raise ValueError, "I/O operation on closed file"
! 	if self.buflist:
! 	    self.buf += EMPTYSTRING.join(self.buflist)
! 	    self.buflist = []
! 	i = self.buf.find('\n', self.pos)
! 	if i < 0:
! 	    newpos = self.len
! 	else:
! 	    newpos = i+1
! 	if length is not None:
! 	    if self.pos + length < newpos:
! 		newpos = self.pos + length
! 	r = self.buf[self.pos:newpos]
! 	self.pos = newpos
! 	return r
  
      def readlines(self, sizehint = 0):
! 	total = 0
! 	lines = []
! 	line = self.readline()
! 	while line:
! 	    lines.append(line)
! 	    total += len(line)
! 	    if 0 < sizehint <= total:
! 		break
! 	    line = self.readline()
! 	return lines
  
      def truncate(self, size=None):
! 	if self.closed:
! 	    raise ValueError, "I/O operation on closed file"
! 	if size is None:
! 	    size = self.pos
! 	elif size < 0:
! 	    raise IOError(EINVAL, "Negative size not allowed")
! 	elif size < self.pos:
! 	    self.pos = size
! 	self.buf = self.getvalue()[:size]
  
      def write(self, s):
! 	if self.closed:
! 	    raise ValueError, "I/O operation on closed file"
! 	if not s: return
! 	if self.pos > self.len:
! 	    self.buflist.append('\0'*(self.pos - self.len))
! 	    self.len = self.pos
! 	newpos = self.pos + len(s)
! 	if self.pos < self.len:
! 	    if self.buflist:
! 		self.buf += EMPTYSTRING.join(self.buflist)
! 		self.buflist = []
! 	    self.buflist = [self.buf[:self.pos], s, self.buf[newpos:]]
! 	    self.buf = ''
! 	    if newpos > self.len:
! 		self.len = newpos
! 	else:
! 	    self.buflist.append(s)
! 	    self.len = newpos
! 	self.pos = newpos
  
      def writelines(self, list):
! 	self.write(EMPTYSTRING.join(list))
  
      def flush(self):
! 	if self.closed:
! 	    raise ValueError, "I/O operation on closed file"
  
      def getvalue(self):
! 	if self.buflist:
! 	    self.buf += EMPTYSTRING.join(self.buflist)
! 	    self.buflist = []
! 	return self.buf
  
  
--- 39,164 ----
  class StringIO:
      def __init__(self, buf = ''):
!         self.buf = buf
!         self.len = len(buf)
!         self.buflist = []
!         self.pos = 0
!         self.closed = 0
!         self.softspace = 0
  
      def close(self):
!         if not self.closed:
!             self.closed = 1
!             del self.buf, self.pos
  
      def isatty(self):
!         if self.closed:
!             raise ValueError, "I/O operation on closed file"
!         return 0
  
      def seek(self, pos, mode = 0):
!         if self.closed:
!             raise ValueError, "I/O operation on closed file"
!         if self.buflist:
!             self.buf += EMPTYSTRING.join(self.buflist)
!             self.buflist = []
!         if mode == 1:
!             pos += self.pos
!         elif mode == 2:
!             pos += self.len
!         self.pos = max(0, pos)
  
      def tell(self):
!         if self.closed:
!             raise ValueError, "I/O operation on closed file"
!         return self.pos
  
      def read(self, n = -1):
!         if self.closed:
!             raise ValueError, "I/O operation on closed file"
!         if self.buflist:
!             self.buf += EMPTYSTRING.join(self.buflist)
!             self.buflist = []
!         if n < 0:
!             newpos = self.len
!         else:
!             newpos = min(self.pos+n, self.len)
!         r = self.buf[self.pos:newpos]
!         self.pos = newpos
!         return r
  
      def readline(self, length=None):
!         if self.closed:
!             raise ValueError, "I/O operation on closed file"
!         if self.buflist:
!             self.buf += EMPTYSTRING.join(self.buflist)
!             self.buflist = []
!         i = self.buf.find('\n', self.pos)
!         if i < 0:
!             newpos = self.len
!         else:
!             newpos = i+1
!         if length is not None:
!             if self.pos + length < newpos:
!                 newpos = self.pos + length
!         r = self.buf[self.pos:newpos]
!         self.pos = newpos
!         return r
  
      def readlines(self, sizehint = 0):
!         total = 0
!         lines = []
!         line = self.readline()
!         while line:
!             lines.append(line)
!             total += len(line)
!             if 0 < sizehint <= total:
!                 break
!             line = self.readline()
!         return lines
  
      def truncate(self, size=None):
!         if self.closed:
!             raise ValueError, "I/O operation on closed file"
!         if size is None:
!             size = self.pos
!         elif size < 0:
!             raise IOError(EINVAL, "Negative size not allowed")
!         elif size < self.pos:
!             self.pos = size
!         self.buf = self.getvalue()[:size]
  
      def write(self, s):
!         if self.closed:
!             raise ValueError, "I/O operation on closed file"
!         if not s: return
!         if self.pos > self.len:
!             self.buflist.append('\0'*(self.pos - self.len))
!             self.len = self.pos
!         newpos = self.pos + len(s)
!         if self.pos < self.len:
!             if self.buflist:
!                 self.buf += EMPTYSTRING.join(self.buflist)
!                 self.buflist = []
!             self.buflist = [self.buf[:self.pos], s, self.buf[newpos:]]
!             self.buf = ''
!             if newpos > self.len:
!                 self.len = newpos
!         else:
!             self.buflist.append(s)
!             self.len = newpos
!         self.pos = newpos
  
      def writelines(self, list):
!         self.write(EMPTYSTRING.join(list))
  
      def flush(self):
!         if self.closed:
!             raise ValueError, "I/O operation on closed file"
  
      def getvalue(self):
!         if self.buflist:
!             self.buf += EMPTYSTRING.join(self.buflist)
!             self.buflist = []
!         return self.buf
  
  
***************
*** 168,182 ****
      import sys
      if sys.argv[1:]:
! 	file = sys.argv[1]
      else:
! 	file = '/etc/passwd'
      lines = open(file, 'r').readlines()
      text = open(file, 'r').read()
      f = StringIO()
      for line in lines[:-2]:
! 	f.write(line)
      f.writelines(lines[-2:])
      if f.getvalue() != text:
! 	raise RuntimeError, 'write failed'
      length = f.tell()
      print 'File length =', length
--- 168,182 ----
      import sys
      if sys.argv[1:]:
!         file = sys.argv[1]
      else:
!         file = '/etc/passwd'
      lines = open(file, 'r').readlines()
      text = open(file, 'r').read()
      f = StringIO()
      for line in lines[:-2]:
!         f.write(line)
      f.writelines(lines[-2:])
      if f.getvalue() != text:
!         raise RuntimeError, 'write failed'
      length = f.tell()
      print 'File length =', length
***************
*** 191,195 ****
      line2 = f.read(len(line))
      if line != line2:
! 	raise RuntimeError, 'bad result after seek back'
      f.seek(len(line2), 1)
      list = f.readlines()
--- 191,195 ----
      line2 = f.read(len(line))
      if line != line2:
!         raise RuntimeError, 'bad result after seek back'
      f.seek(len(line2), 1)
      list = f.readlines()
***************
*** 198,206 ****
      line2 = f.read()
      if line != line2:
! 	raise RuntimeError, 'bad result after seek back from EOF'
      print 'Read', len(list), 'more lines'
      print 'File length =', f.tell()
      if f.tell() != length:
! 	raise RuntimeError, 'bad length'
      f.close()
  
--- 198,206 ----
      line2 = f.read()
      if line != line2:
!         raise RuntimeError, 'bad result after seek back from EOF'
      print 'Read', len(list), 'more lines'
      print 'File length =', f.tell()
      if f.tell() != length:
!         raise RuntimeError, 'bad length'
      f.close()