cpython/Include
Guido van Rossum 7a6e95948c SF patch 580331 by Oren Tirosh: make file objects their own iterator.
For a file f, iter(f) now returns f (unless f is closed), and f.next()
is similar to f.readline() when EOF is not reached; however, f.next()
uses a readahead buffer that messes up the file position, so mixing
f.next() and f.readline() (or other methods) doesn't work right.
Calling f.seek() drops the readahead buffer, but other operations
don't.

The real purpose of this change is to reduce the confusion between
objects and their iterators.  By making a file its own iterator, it's
made clearer that using the iterator modifies the file object's state
(in particular the current position).

A nice side effect is that this speeds up "for line in f:" by not
having to use the xreadlines module.  The f.xreadlines() method is
still supported for backwards compatibility, though it is the same as
iter(f) now.

(I made some cosmetic changes to Oren's code, and added a test for
"file closed" to file_iternext() and file_iter().)
2002-08-06 15:55:28 +00:00
..
Python.h Define _XOPEN_SOURCE and _GNU_SOURCE in pyconfig.h, to have them 2002-07-20 08:51:52 +00:00
abstract.h Patch #552433: Special-case tuples. Avoid sub-type checking for lists. 2002-05-08 08:44:21 +00:00
bitset.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
boolobject.h Patch #551008: DL_IMPORT PyBool_FromLong. 2002-05-02 20:23:27 +00:00
bufferobject.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
cStringIO.h Remove function definition from cStringIO.h. 2002-08-05 18:20:01 +00:00
cellobject.h Cells are not VAR objects. 2002-02-28 23:46:34 +00:00
ceval.h Merge of descr-branch back into trunk. 2001-08-02 04:15:00 +00:00
classobject.h PyMethodObject(): Update the comment about im_class based upon a 2001-12-07 21:54:33 +00:00
cobject.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
codecs.h Changing the CNRI copyright notice according to CNRI's instructions. 2000-08-03 16:24:25 +00:00
compile.h Removed more hair in support of future-generator stmts. 2002-04-12 01:20:10 +00:00
complexobject.h Again perhaps the end of [#460020] bug or feature: unicode() and subclasses. 2001-09-12 19:12:49 +00:00
descrobject.h Patch #536908: Add missing #include guards/extern "C". 2002-03-30 08:57:12 +00:00
dictobject.h Get rid of USE_CACHE_ALIGNED. It has no function anymore. 2002-04-11 20:41:18 +00:00
enumobject.h - New builtin function enumerate(x), from PEP 279. Example: 2002-04-26 19:40:56 +00:00
errcode.h Patch #534304: Implement phase 1 of PEP 263. 2002-08-04 17:29:52 +00:00
eval.h Merge of descr-branch back into trunk. 2001-08-02 04:15:00 +00:00
fileobject.h SF patch 580331 by Oren Tirosh: make file objects their own iterator. 2002-08-06 15:55:28 +00:00
floatobject.h More for SF bug [#460020] bug or feature: unicode() and subclasses 2001-09-10 21:28:20 +00:00
frameobject.h SF patch # 580411, move frame macros from frameobject.h into ceval.c 2002-07-14 00:27:26 +00:00
funcobject.h Merge of descr-branch back into trunk. 2001-08-02 04:15:00 +00:00
graminit.h Patch #534304: Implement phase 1 of PEP 263. 2002-08-04 17:29:52 +00:00
grammar.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
import.h Excise DL_IMPORT/EXPORT from object.h, and related files. This patch 2002-07-29 13:42:14 +00:00
intobject.h Add the 'bool' type and its values 'False' and 'True', as described in 2002-04-03 22:41:51 +00:00
intrcheck.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
iterobject.h Patch #536908: Add missing #include guards/extern "C". 2002-03-30 08:57:12 +00:00
listobject.h Introduced the oddly-missing PyList_CheckExact(), and used it to replace 2001-10-05 20:41:38 +00:00
longintrepr.h For clarity, change _longobject to build directly from PyObject_VAR_HEAD 2002-03-02 04:33:09 +00:00
longobject.h HAVE_LIMITS_H -- raise #error if not defined; limits.h is std C 2002-07-12 05:01:20 +00:00
marshal.h It's unclear whether PyMarshal_XXX() are part of the public or private API. 2001-01-28 00:27:39 +00:00
metagrammar.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
methodobject.h Introduce two new flag bits that can be set in a PyMethodDef method 2002-03-28 05:33:33 +00:00
modsupport.h PyArg_UnpackTuple(): New argument unpacking function suggested by Jim 2001-10-23 21:09:29 +00:00
moduleobject.h SF bug [#460467] file objects should be subclassable. 2001-09-13 05:38:56 +00:00
node.h Use an assert() for the REQ() macro instead of making up our own 2001-10-15 17:23:13 +00:00
object.h Excise DL_IMPORT/EXPORT from object.h, and related files. This patch 2002-07-29 13:42:14 +00:00
objimpl.h Removed WITH_CYCLE_GC #ifdef-ery. Holes: 2002-07-07 03:59:34 +00:00
opcode.h The opcode FOR_LOOP no longer exists. 2002-06-13 17:59:51 +00:00
osdefs.h OS/2 EMX port changes (Include part of patch #450267): 2002-02-26 11:20:01 +00:00
parsetok.h Fix SF Bug 564931: compile() traceback must include filename. 2002-07-09 09:23:27 +00:00
patchlevel.h Change the version string from "2.2+" to "2.3a0". disutils peels off 2002-02-02 00:08:15 +00:00
pgenheaders.h Moving pymalloc along. 2002-04-22 02:33:27 +00:00
py_curses.h Patch #477752: Drop old-style getargs from curses. 2002-01-17 23:08:27 +00:00
pydebug.h Excise DL_IMPORT/EXPORT from object.h, and related files. This patch 2002-07-29 13:42:14 +00:00
pyerrors.h New functions for extension writers on Windows: 2002-07-29 14:27:41 +00:00
pyfpe.h Some patches to Lee Busby's fpectl mods that accidentally didn't make it 1997-10-20 23:50:01 +00:00
pygetopt.h Move our own getopt() implementation to _PyOS_GetOpt(), and use it 2000-11-03 08:18:37 +00:00
pymactoolbox.h Added one call to Py_Main(), for OSX framework builds only, that will get the 2002-08-02 14:11:24 +00:00
pymem.h Moving pymalloc along. 2002-04-28 04:11:46 +00:00
pyport.h Excise DL_IMPORT/EXPORT from object.h, and related files. This patch 2002-07-29 13:42:14 +00:00
pystate.h Add a low-level API to access interpreters, for David Beazley. 2001-07-19 12:19:27 +00:00
pythonrun.h Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype 2002-08-02 02:27:13 +00:00
pythread.h Remove the unused & broken PyThread_*_sema() functions and related constants. 2002-01-19 22:02:55 +00:00
rangeobject.h Re-add 'advanced' xrange features, adding DeprecationWarnings as discussed 2001-07-09 12:30:54 +00:00
sliceobject.h This is my nearly two year old patch 2002-06-11 10:55:12 +00:00
stringobject.h - A new type object, 'string', is added. This is a common base type 2002-05-24 19:01:59 +00:00
structmember.h Fix SF bug #486144: Uninitialized __slot__ vrbl is None. 2001-12-04 16:23:42 +00:00
structseq.h SF patch #462296: Add attributes to os.stat results; by Nick Mathewson. 2001-10-18 20:34:25 +00:00
symtable.h Remove st_nested_scopes from struct symtable, 2001-08-11 21:51:24 +00:00
sysmodule.h Add function attributes that allow GCC to check the arguments of printf-like 2001-10-23 02:21:22 +00:00
token.h Implement PEP 238 in its (almost) full glory. 2001-08-08 05:00:18 +00:00
traceback.h [Bug #528914] PyTraceBack_Store/Fetch were deleted in 1997, but their 2002-03-19 16:02:35 +00:00
tupleobject.h More on SF bug [#460020] bug or feature: unicode() and subclasses. 2001-09-10 23:37:46 +00:00
ucnhash.h refactored the unicodeobject/ucnhash interface, to hide the 2001-01-19 09:45:02 +00:00
unicodeobject.h Fix for bug [ 561796 ] string.find causes lazy error 2002-05-29 11:33:13 +00:00
weakrefobject.h Remove bogus declaration. 2001-10-05 22:06:45 +00:00