Mailing List Archive

CVS: python/dist/src/Lib fileinput.py,1.8,1.9
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):