[Python-checkins] CVS: python/dist/src/Lib fileinput.py,1.8,1.9

Neil Schemenauer nascheme@users.sourceforge.net
Tue, 26 Mar 2002 12:28:42 -0800


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv9764

Modified Files:
	fileinput.py 
Log Message:
Implement iterator protocol.


Index: fileinput.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/fileinput.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** fileinput.py	24 Oct 2001 20:33:34 -0000	1.8
--- fileinput.py	26 Mar 2002 20:28:40 -0000	1.9
***************
*** 167,171 ****
          self._files = ()
  
!     def __getitem__(self, i):
          try:
              line = self._buffer[self._bufindex]
--- 167,174 ----
          self._files = ()
  
!     def __iter__(self):
!         return self
! 
!     def next(self):
          try:
              line = self._buffer[self._bufindex]
***************
*** 177,186 ****
              self._filelineno += 1
              return line
-         if i != self._lineno:
-             raise RuntimeError, "accessing lines out of order"
          line = self.readline()
          if not line:
!             raise IndexError, "end of input reached"
          return line
  
      def nextfile(self):
--- 180,195 ----
              self._filelineno += 1
              return line
          line = self.readline()
          if not line:
!             raise StopIteration
          return line
+         
+     def __getitem__(self, i):
+         if i != self._lineno:
+             raise RuntimeError, "accessing lines out of order"
+         try:
+             return self.next()
+         except StopIteration:
+             raise IndexError, "end of input reached"
  
      def nextfile(self):