Commit Graph

17546 Commits

Author SHA1 Message Date
Guido van Rossum 213c7a6aa5 Mondo changes to the iterator stuff, without changing how Python code
sees it (test_iter.py is unchanged).

- Added a tp_iternext slot, which calls the iterator's next() method;
  this is much faster for built-in iterators over built-in types
  such as lists and dicts, speeding up pybench's ForLoop with about
  25% compared to Python 2.1.  (Now there's a good argument for
  iterators. ;-)

- Renamed the built-in sequence iterator SeqIter, affecting the C API
  functions for it.  (This frees up the PyIter prefix for generic
  iterator operations.)

- Added PyIter_Check(obj), which checks that obj's type has a
  tp_iternext slot and that the proper feature flag is set.

- Added PyIter_Next(obj) which calls the tp_iternext slot.  It has a
  somewhat complex return condition due to the need for speed: when it
  returns NULL, it may not have set an exception condition, meaning
  the iterator is exhausted; when the exception StopIteration is set
  (or a derived exception class), it means the same thing; any other
  exception means some other error occurred.
2001-04-23 14:08:49 +00:00
Guido van Rossum 8b3d6ca3df At the suggestion of Peter Funk, document 'key in dict' and 'key not
in dict' after has_key(), with a \versionadded{2.2} note.
2001-04-23 13:22:59 +00:00
Fred Drake 34b48e844e Update publish-to-SourceForge scripts to automatically determine if the
branch is the head (development) branch or a maintenance brach, and use
the appropriate target directory for each.
2001-04-22 06:20:31 +00:00
Fred Drake 82f93c693d Only document <file>.xreadlines() once; added version annotation.
This closes SF bug #417943.
2001-04-22 01:56:51 +00:00
Neil Schemenauer f8b71c5984 Process Setup* files with makesetup in the same order as the makefile. 2001-04-21 17:41:16 +00:00
Guido van Rossum 8b48cf9016 Add test suite for iterators. 2001-04-21 13:33:54 +00:00
Guido van Rossum 65967259f2 Oops, forgot to merge this from the iter-branch to the trunk.
This adds "for line in file" iteration, as promised.
2001-04-21 13:20:18 +00:00
Tim Peters a3f98d6bac Give UserDict new __contains__ and __iter__ methods. 2001-04-21 09:13:15 +00:00
Fred Drake e99b97e58a encode(): Handle Latin-1 input characters better. 2001-04-21 06:01:53 +00:00
Fred Drake bda05564de Add support for <memberline/> (needs markup improvement!).
Update <versionadded/> to recent addition of optional explanatory text;
make the explanation text take the same attribute name for both
<versionadded/> and <versionchanged/>.
2001-04-21 06:00:51 +00:00
Fred Drake 4cacec5393 Fix a number of minor markup errors. 2001-04-21 05:56:06 +00:00
Fred Drake 056a71da76 The (fairly recent) \textasciicircum is not supported by LaTeX2HTML; add
support for it here.
2001-04-21 05:48:07 +00:00
Tim Peters 7f00deb032 SF bug #417508: 'hypot' not found with Borland C++Build. 2001-04-21 03:20:47 +00:00
Tim Peters cf96de052f SF but #417587: compiler warnings compiling 2.1.
Repaired *some* of the SGI compiler warnings Sjoerd Mullender reported.
2001-04-21 02:46:11 +00:00
Tim Peters 9dfe4cdfa4 Teach Windows about new iterobject.c. 2001-04-20 21:21:28 +00:00
Guido van Rossum 05311481d4 Adding iterobject.[ch], which were accidentally not added. Sorry\! 2001-04-20 21:06:46 +00:00
Guido van Rossum 59d1d2b434 Iterators phase 1. This comprises:
new slot tp_iter in type object, plus new flag Py_TPFLAGS_HAVE_ITER
new C API PyObject_GetIter(), calls tp_iter
new builtin iter(), with two forms: iter(obj), and iter(function, sentinel)
new internal object types iterobject and calliterobject
new exception StopIteration
new opcodes for "for" loops, GET_ITER and FOR_ITER (also supported by dis.py)
new magic number for .pyc files
new special method for instances: __iter__() returns an iterator
iteration over dictionaries: "for x in dict" iterates over the keys
iteration over files: "for x in file" iterates over lines

TODO:

documentation
test suite
decide whether to use a different way to spell iter(function, sentinal)
decide whether "for key in dict" is a good idea
use iterators in map/filter/reduce, min/max, and elsewhere (in/not in?)
speed tuning (make next() a slot tp_next???)
2001-04-20 19:13:02 +00:00
Jeremy Hylton 12e73bb2f0 dispatcher.__repr__() was unprepared to handle the address for a Unix
domain socket.  Fix that and make the error message for failures a
little more helpful by including the class name.
2001-04-20 19:04:55 +00:00
Guido van Rossum 55ad67d74d Oops. Removed dictiter_new decl that wasn't supposed to go in yet. 2001-04-20 16:52:06 +00:00
Guido van Rossum 0dbb4fba4c Implement, test and document "key in dict" and "key not in dict".
I know some people don't like this -- if it's really controversial,
I'll take it out again.  (If it's only Alex Martelli who doesn't like
it, that doesn't count as "real controversial" though. :-)

That's why this is a separate checkin from the iterators stuff I'm
about to check in next.
2001-04-20 16:50:40 +00:00
Tim Peters 78fe5308b4 CVS patch 416248: 2.1c1 unicodeobject: unused vrbl cleanup, from Mark Favas. 2001-04-19 21:55:14 +00:00
Jeremy Hylton b8a93215c2 Revert previous checkin, which caused test_unicodedata to fail. 2001-04-19 16:43:49 +00:00
Fred Drake bd7f818c50 Weak*Dictionary: Added docstrings to the classes.
Weak*Dictionary.update():  No longer create a temporary list to hold the
    things that will be stuffed into the underlying dictionary.  This had
    been done so that if any of the objects used as the weakly-held value
    was not weakly-referencable, no updates would take place (TypeError
    would be raised).  With this change, TypeError will still be raised
    but a partial update could occur.  This is more like other .update()
    implementations.

Thoughout, use of the name "ref" as a local variable has been removed.  The
original use of the name occurred when the function to create a weak
reference was called "new"; the overloaded use of the name could be
confusing for someone reading the code.  "ref" used as a variable name
has been replaced with "wr" (for 'weak reference').
2001-04-19 16:26:06 +00:00
Fred Drake 1aec3a16f3 Add versioning notes: many of the signatures changed to allow the time
used to be omitted (meaning use the current time) as of Python 2.1.
Users who need cross-version portability need to know things like this.
2001-04-19 04:55:23 +00:00
Tim Peters 52709e321c Move Windows stuff to 2.2, so CVS builds won't interfere with 2.1
installations.
2001-04-18 21:12:25 +00:00
Fred Drake bc524c4e9f Cut-&-paste-o noted by Wolfgang Teschner: decompressobj() returns
*DE*compression objects, not compression objects!
2001-04-18 20:16:51 +00:00
Fred Drake 223ac0a498 Remove BrowserControl module; this had been left in for Python 1.5.2
support.
2001-04-18 18:43:34 +00:00
Fred Drake 6e06531d92 Remove legacy support for the BrowserControl module; the webbrowser
module has been included since Python 2.0, and that is the preferred
interface.
2001-04-18 18:42:48 +00:00
Fred Drake 895aa9da4c Suggestion from Keith Briggs: refer to RE objects consistently instead of
introducing a new term ("regex") without defining it.
2001-04-18 17:26:20 +00:00
Martin v. Löwis da3dc5b892 Patch #416953: Cache ASCII characters to speed up ASCII decoding. 2001-04-18 12:49:15 +00:00
Fred Drake f3848322ff Sync version number with the current CVS version.
(Note that the docs are also being maintained on the 2.1.1 maintenance
 branch, so users interested only in corrections and clarifications
 can get that.)
2001-04-18 05:22:24 +00:00
Fred Drake 3151f44d49 Add description of the "explanation" optional parameter added to the
\versionadded macro.

Note: this should not be merged into the 2.1 maintenance branch.
2001-04-18 05:19:06 +00:00
Fred Drake 4c6f17a537 Make a number of small clarifications and correct a whole bunch of typos,
all reported by Bruce Smith.
2001-04-18 05:12:47 +00:00
Fred Drake 635a7cfcbb Sync version number with the current CVS version.
(Note that the docs are also being maintained on the 2.1.1 maintenance
 branch, so users interested only in corrections and clarifications
 can get that.)
2001-04-18 05:02:01 +00:00
Guido van Rossum 6db412be44 Bump the version number in more places 2001-04-18 04:37:57 +00:00
Guido van Rossum 879a186348 Change the version to 2.2a0. This may look strange, but indicates
it's 2.2 before the first alpha release.
2001-04-18 04:31:01 +00:00
Barry Warsaw 2720d380e9 update_yourself(): Removed unused local variable reported by
PyChecker.
2001-04-18 03:53:29 +00:00
Barry Warsaw 31c2dae39c __init__(): Removed unused local variable reported by PyChecker. 2001-04-18 03:52:54 +00:00
Barry Warsaw 741eae0b31 StripWidget.__init__(), update_yourself(): Removed some unused local
variables reported by PyChecker.

__togglegentype(): PyChecker accurately reported that the variable
__gentypevar was unused -- actually this whole method is currently
unused so comment it out.
2001-04-18 03:51:55 +00:00
Barry Warsaw 6a5522677a Helpwin.__init__(): Removed an unused local variable (via import)
reported by PyChecker.
2001-04-18 03:50:07 +00:00
Barry Warsaw cc8a60cdf6 Bump the version to 1.1 2001-04-18 03:49:00 +00:00
Barry Warsaw 6330b52327 There have been a few new Python releases <wink> in the 2 years since
this tool was last touched!  Update some of the introductory material
and bump the version to 1.1.
2001-04-18 03:48:41 +00:00
Fred Drake 293f77af6f Add note about the version in which GetoptError was added -- this can
bite people interested in 1.5.2 compatibility.
2001-04-18 03:18:57 +00:00
Fred Drake c2b29d0fee Added support for optional explanation parameter to the \versionadded
macro.

Refactored do_cmd_versionadded() and do_cmd_versionchanged() to do most
of the work in a helper function, with the do_cmd_*() wrappers just supplying
a portion of the replacement text.
2001-04-18 03:11:04 +00:00
Fred Drake fdfb05bb0b \versionadded: Add support for including an explanatory note along with
the versioning information, similar to \versionchanged.
2001-04-18 03:08:54 +00:00
Jeremy Hylton 12b6457e24 Fix compileall.py so that it fails on SyntaxErrors
The changes cause compilation failures in any file in the Python
installation lib directory to cause the install to fail.  It looks
like compileall.py intended to behave this way, but a change to
py_compile.py and a separate bug defeated it.

Fixes SF bug #412436

This change affects the test suite, which contains several files that
contain intentional errors.  The solution is to extend compileall.py
with the ability to skip compilation of selected files.

NB compileall.py is changed so that compile_dir() returns success only
if all recursive calls to compile_dir() also check success.
2001-04-18 01:20:21 +00:00
Jeremy Hylton 3090694068 Fix compileall.py so that it fails on SyntaxErrors
The changes cause compilation failures in any file in the Python
installation lib directory to cause the install to fail.  It looks
like compileall.py intended to behave this way, but a change to
py_compile.py and a separate bug defeated it.

Fixes SF bug #412436

This change affects the test suite, which contains several files that
contain intentional errors.  The solution is to extend compileall.py
with the ability to skip compilation of selected files.

In the test suite, rename nocaret.py and test_future[3..7].py to start
with badsyntax_nocaret.py and badsyntax_future[3..7].py.  Update the
makefile to skip compilation of these files.  Update the tests to use
the name names for imports.

NB compileall.py is changed so that compile_dir() returns success only
if all recursive calls to compile_dir() also check success.
2001-04-18 01:19:28 +00:00
Eric S. Raymond bc41957d2b Unused variable (caught by PyChecker) removed. 2001-04-17 17:20:19 +00:00
cvs2svn 2fb17ba2fa This commit was manufactured by cvs2svn to create tag 'release21'. 2001-04-16 18:46:45 +00:00
Guido van Rossum ffe13be84d Noted what's new in 2.1 (final).
Hopefully this is the last checkin for 2.1!
2001-04-16 18:46:45 +00:00