]> granicus.if.org Git - python/log
python
24 years ago<socket>.getsockopt() and <socket>.setsockopt() can only raise socket.error,
Fred Drake [Fri, 11 May 2001 18:28:54 +0000 (18:28 +0000)]
<socket>.getsockopt() and <socket>.setsockopt() can only raise socket.error,
so only catch that specific exception.

24 years agoCatch only the relevant exceptions instead of using a bare except clause.
Fred Drake [Fri, 11 May 2001 18:27:00 +0000 (18:27 +0000)]
Catch only the relevant exceptions instead of using a bare except clause.

24 years agoAdd some text to make the dircmp object section more readable, and move
Fred Drake [Fri, 11 May 2001 17:01:32 +0000 (17:01 +0000)]
Add some text to make the dircmp object section more readable, and move
some stuff around.

24 years agoInclude sys/modem.h if we have it; this is needed on HP-UX to provide
Fred Drake [Fri, 11 May 2001 16:14:17 +0000 (16:14 +0000)]
Include sys/modem.h if we have it; this is needed on HP-UX to provide
constants used by other macros from the headers.

Conditionalize VREPRINT and VDISCARD; these are not available on HP-UX.

This closes bug #417418.

24 years agothe usual...
Fred Drake [Fri, 11 May 2001 16:11:25 +0000 (16:11 +0000)]
the usual...

24 years agoAdd a check for sys/modem.h, needed by termios on HP-UX.
Fred Drake [Fri, 11 May 2001 16:10:56 +0000 (16:10 +0000)]
Add a check for sys/modem.h, needed by termios on HP-UX.

24 years ago--sigh--
Fred Drake [Fri, 11 May 2001 15:49:19 +0000 (15:49 +0000)]
--sigh--
Finish the last set of changes to these files so the conversion does not
break.

24 years agoMarkup adjustments to avoid getting junk in the index.
Fred Drake [Fri, 11 May 2001 15:46:45 +0000 (15:46 +0000)]
Markup adjustments to avoid getting junk in the index.

24 years agoVariant of SF patch 423181
Jeremy Hylton [Fri, 11 May 2001 14:48:41 +0000 (14:48 +0000)]
Variant of SF patch 423181

For rich comparisons, use instance_getattr2() when possible to avoid
the expense of setting an AttributeError.  Also intern the name_op[]
table and use the interned strings rather than creating a new string
and interning it each time through.

24 years agounlink() would normally be found in the "os" module, so use it from there.
Fred Drake [Fri, 11 May 2001 14:29:21 +0000 (14:29 +0000)]
unlink() would normally be found in the "os" module, so use it from there.

Remove unused import of "sys".

If the file TESTFN exists before we start, try to remove it.

Add spaces around the = in some assignments.

24 years agoCosmetic: code under "else" clause was missing indent.
Tim Peters [Fri, 11 May 2001 03:36:45 +0000 (03:36 +0000)]
Cosmetic:  code under "else" clause was missing indent.

24 years agoReplace "\begin{classdesc}{SomeClass}{\unspecified}" with
Fred Drake [Fri, 11 May 2001 01:08:13 +0000 (01:08 +0000)]
Replace "\begin{classdesc}{SomeClass}{\unspecified}" with
"\begin{classdesc*}{SomeClass}" -- the rendering of \unspecified was
identical to \moreargs, so this helps clarify things just a little.

24 years agoDocument the new classdesc* environment, and the previously undocumented
Fred Drake [Fri, 11 May 2001 01:01:12 +0000 (01:01 +0000)]
Document the new classdesc* environment, and the previously undocumented
excclassdesc environment.

24 years agoDefine a new environment, classdesc*, which can be used to document a
Fred Drake [Fri, 11 May 2001 01:00:30 +0000 (01:00 +0000)]
Define a new environment, classdesc*, which can be used to document a
class without providing any information about the constructor.  This
should be used for classes which only exist to act as containers rather
than as factories for instances.

24 years agoWrite a better synopsis for the Scrap module, and provide a link to
Fred Drake [Thu, 10 May 2001 22:37:38 +0000 (22:37 +0000)]
Write a better synopsis for the Scrap module, and provide a link to
useful documentation on the Scrap Manager.

24 years agoActually include a synopsis line for the ColorPicker module.
Fred Drake [Thu, 10 May 2001 22:36:13 +0000 (22:36 +0000)]
Actually include a synopsis line for the ColorPicker module.

24 years agoRestore dicts' tp_compare slot, and change dict_richcompare to say it
Tim Peters [Thu, 10 May 2001 21:45:19 +0000 (21:45 +0000)]
Restore dicts' tp_compare slot, and change dict_richcompare to say it
doesn't know how to do LE, LT, GE, GT.  dict_richcompare can't do the
latter any faster than dict_compare can.  More importantly, for
cmp(dict1, dict2), Python *first* tries rich compares with EQ, LT, and
GT one at a time, even if the tp_compare slot is defined, and
dict_richcompare called dict_compare for the latter two because
it couldn't do them itself.  The result was a lot of wasted calls to
dict_compare.  Now dict_richcompare gives up at once the times Python
calls it with LT and GT from try_rich_to_3way_compare(), and dict_compare
is called only once (when Python gets around to trying the tp_compare
slot).
Continued mystery:  despite that this cut the number of calls to
dict_compare approximately in half in test_mutants.py, the latter still
runs amazingly slowly.  Running under the debugger doesn't show excessive
activity in the dict comparison code anymore, so I'm guessing the culprit
is somewhere else -- but where?  Perhaps in the element (key/value)
comparison code?  We clearly spend a lot of time figuring out how to
compare things.

24 years agoMake test_mutants stronger by also adding random keys during comparisons.
Tim Peters [Thu, 10 May 2001 20:18:30 +0000 (20:18 +0000)]
Make test_mutants stronger by also adding random keys during comparisons.
A Mystery:  test_mutants ran amazingly slowly even before dictobject.c
"got fixed".  I don't have a clue as to why.  dict comparison was and
remains linear-time in the size of the dicts, and test_mutants only tries
100 dict pairs, of size averaging just 50.  So "it should" run in less than
an eyeblink; but it takes at least a second on this 800MHz box.

24 years agoChange test_mmap.py to use test_support.TESTFN instead of hardcoded "foo",
Tim Peters [Thu, 10 May 2001 20:03:04 +0000 (20:03 +0000)]
Change test_mmap.py to use test_support.TESTFN instead of hardcoded "foo",
and wrap the body in try/finally to ensure TESTFN gets cleaned up no
matter what.

24 years agoRepair typos in comments.
Tim Peters [Thu, 10 May 2001 19:40:30 +0000 (19:40 +0000)]
Repair typos in comments.

24 years agoRepair typo in comment.
Tim Peters [Thu, 10 May 2001 18:58:31 +0000 (18:58 +0000)]
Repair typo in comment.

24 years agoChange some text just a little to avoid font-lock hell.
Fred Drake [Thu, 10 May 2001 18:41:02 +0000 (18:41 +0000)]
Change some text just a little to avoid font-lock hell.

24 years agoFix typo in weakref.proxy() documentation.
Fred Drake [Thu, 10 May 2001 17:22:17 +0000 (17:22 +0000)]
Fix typo in weakref.proxy() documentation.
This closes SF bug #423087.

24 years agoExtend the weakref test suite to cover the complete mapping interface for
Fred Drake [Thu, 10 May 2001 17:16:38 +0000 (17:16 +0000)]
Extend the weakref test suite to cover the complete mapping interface for
both weakref.Weak*Dictionary classes.

This closes SF bug #416480.

24 years agoUpdate example to no longer use the FCNTL module.
Fred Drake [Thu, 10 May 2001 15:57:17 +0000 (15:57 +0000)]
Update example to no longer use the FCNTL module.

24 years agoFix the fcntl() docstring so the user is not mis-directed to the FCNTL
Fred Drake [Thu, 10 May 2001 15:54:32 +0000 (15:54 +0000)]
Fix the fcntl() docstring so the user is not mis-directed to the FCNTL
module for useful constants.

24 years agoDo no regenerate modules that should no longer be here.
Fred Drake [Thu, 10 May 2001 15:52:47 +0000 (15:52 +0000)]
Do no regenerate modules that should no longer be here.

24 years agoRemove all remaining uses of the FCNTL module from the standard library.
Fred Drake [Thu, 10 May 2001 15:33:31 +0000 (15:33 +0000)]
Remove all remaining uses of the FCNTL module from the standard library.

24 years agoFix typo reported by David Goodger. This closes SF patch #422383.
Fred Drake [Thu, 10 May 2001 15:09:36 +0000 (15:09 +0000)]
Fix typo reported by David Goodger.  This closes SF patch #422383.

24 years agoRemove all mentions of the strop module -- it has been pronounced Evil.
Fred Drake [Thu, 10 May 2001 15:05:03 +0000 (15:05 +0000)]
Remove all mentions of the strop module -- it has been pronounced Evil.
(The string "strop" is found in the rexec documentation, but that should
not be changed until strop is actually removed or rexec no longer allows
it.)

24 years agoAdded a note that test_longexp needs 400MB.
Jack Jansen [Thu, 10 May 2001 12:20:30 +0000 (12:20 +0000)]
Added a note that test_longexp needs 400MB.

24 years agoHas been dead so long that there's no use keeping it in the active bit of the repository.
Jack Jansen [Thu, 10 May 2001 12:17:03 +0000 (12:17 +0000)]
Has been dead so long that there's no use keeping it in the active bit of the repository.

24 years agoSF bug #422121 Insecurities in dict comparison.
Tim Peters [Thu, 10 May 2001 08:32:44 +0000 (08:32 +0000)]
SF bug #422121 Insecurities in dict comparison.
Fixed a half dozen ways in which general dict comparison could crash
Python (even cause Win98SE to reboot) in the presence of kay and/or
value comparison routines that mutate the dict during dict comparison.
Bugfix candidate.

24 years agoUpdate to reflect deprecation of the FCNTL module: The fcntl module does
Fred Drake [Thu, 10 May 2001 05:17:02 +0000 (05:17 +0000)]
Update to reflect deprecation of the FCNTL module:  The fcntl module does
*not* define O_RDWR; get that from the os module.

24 years agopatch 418489 from Andrew Dalke for string format bug
Steve Purcell [Thu, 10 May 2001 01:28:40 +0000 (01:28 +0000)]
patch 418489 from Andrew Dalke for string format bug

24 years agoGuido has Spoken. Restore strop.replace()'s treatment of a 0 count as
Tim Peters [Thu, 10 May 2001 01:23:39 +0000 (01:23 +0000)]
Guido has Spoken.  Restore strop.replace()'s treatment of a 0 count as
meaning infinity -- but at least warn about it in the code!  I pissed
away a couple hours on this today, and don't wish the same on the next
in line.
Bugfix candidate.

24 years agoThe strop module and test_strop.py believe replace() with a 0 count
Tim Peters [Thu, 10 May 2001 00:59:45 +0000 (00:59 +0000)]
The strop module and test_strop.py believe replace() with a 0 count
means "replace everything".  But the string module, string.replace()
amd test_string.py believe a 0 count means "replace nothing".
"Nothing" wins, strop loses.
Bugfix candidate.

24 years agoHeh. I need a break. After this: stropmodule & stringobject were more
Tim Peters [Thu, 10 May 2001 00:32:57 +0000 (00:32 +0000)]
Heh.  I need a break.  After this:  stropmodule & stringobject were more
out of synch than I realized, and I managed to break replace's "count"
argument when it was 0.  All is well again.  Maybe.
Bugfix candidate.

24 years agoFudge. stropmodule and stringobject both had copies of the buggy
Tim Peters [Thu, 10 May 2001 00:05:33 +0000 (00:05 +0000)]
Fudge.  stropmodule and stringobject both had copies of the buggy
mymemXXX stuff, and they were already out of synch.  Fix the remaining
bugs in both and get them back in synch.
Bugfix release candidate.

24 years agoSF bug #422088: [OSF1 alpha] string.replace().
Tim Peters [Wed, 9 May 2001 23:00:26 +0000 (23:00 +0000)]
SF bug #422088: [OSF1 alpha] string.replace().
Platform blew up on "123".replace("123", "").  Michael Hudson pinned the
blame on platform malloc(0) returning NULL.
This is a candidate for all bugfix releases.

24 years agoMechanical changes for easier edits.
Tim Peters [Wed, 9 May 2001 22:15:03 +0000 (22:15 +0000)]
Mechanical changes for easier edits.

24 years agoRemove the old platform-specific FCNTL.py modules; these are no longer
Fred Drake [Wed, 9 May 2001 21:15:06 +0000 (21:15 +0000)]
Remove the old platform-specific FCNTL.py modules; these are no longer
needed now that fcntl exports the constants.

24 years agoAdd a new FCNTL.py backward compatibility module that issues a deprecation
Fred Drake [Wed, 9 May 2001 21:13:23 +0000 (21:13 +0000)]
Add a new FCNTL.py backward compatibility module that issues a deprecation
warning.  This is similar to the TERMIOS backward compatbility module.

24 years agoUpdate the tests for the fcntl module to check passing in file objects,
Fred Drake [Wed, 9 May 2001 21:11:59 +0000 (21:11 +0000)]
Update the tests for the fcntl module to check passing in file objects,
and using the constants defined there instead of FCNTL.

24 years agoUpdate the fcntl module documentation.
Fred Drake [Wed, 9 May 2001 21:09:57 +0000 (21:09 +0000)]
Update the fcntl module documentation.

24 years agoModify to allow file objects wherever file descriptors are needed.
Fred Drake [Wed, 9 May 2001 21:02:02 +0000 (21:02 +0000)]
Modify to allow file objects wherever file descriptors are needed.
This closes SF bug #231328.

Added all constants needed to use the functions defined in this module
that are not defined elsewhere (the O_* symbols are available in the
os module).  No additonal modules are needed to use this now.

24 years agofdconv(): Do not second guess the error condition returned by
Fred Drake [Wed, 9 May 2001 20:14:09 +0000 (20:14 +0000)]
fdconv():  Do not second guess the error condition returned by
    PyObject_AsFileDescriptor() -- it does the same thing everywhere, so
    use it the same way everyone else does so that exceptions are
    consistent.  This means we have less code here, and we do not need to
    resort to hackish ways of getting the Python-visible function name to
    fdconv().

24 years agoSF patch #416247 2.1c1 stringobject: unused vrbl cleanup.
Tim Peters [Wed, 9 May 2001 20:06:00 +0000 (20:06 +0000)]
SF patch #416247 2.1c1 stringobject: unused vrbl cleanup.
Thanks to Mark Favas.

24 years agoItamar Shtull-Trauring <python@itamarst.org>:
Fred Drake [Wed, 9 May 2001 19:57:37 +0000 (19:57 +0000)]
Itamar Shtull-Trauring <python@itamarst.org>:
Updates zipfile.ZipFile docs to mention the fact that you can create a
ZipFile instance from an arbitrary file-like object.

This closes patch #418011.

24 years agoThree uses of makesockaddr() used sockaddr buffers that had not be cleared;
Fred Drake [Wed, 9 May 2001 19:11:33 +0000 (19:11 +0000)]
Three uses of makesockaddr() used sockaddr buffers that had not be cleared;
this could cause invalid paths to be returned for AF_UNIX sockets on some
platforms (including FreeBSD 4.2-RELEASE), appearantly because there is
no assurance that the address will be nul-terminated when filled in by the
kernel.

PySocketSock_recvfrom():  Use PyString_AS_STRING() to get the data pointer
    of a string we create ourselves; there is no need for the extra type
    check from PyString_AsString().

This closes SF bug #416573.

24 years agoSF patch #416249, from Mark Favas: 2.1c1 compile: unused vrbl cleanup
Tim Peters [Wed, 9 May 2001 18:53:51 +0000 (18:53 +0000)]
SF patch #416249, from Mark Favas:  2.1c1 compile: unused vrbl cleanup

24 years agoMinor fiddling related to
Tim Peters [Wed, 9 May 2001 18:48:26 +0000 (18:48 +0000)]
Minor fiddling related to
SF patch 416251 2.1c1 mmapmodule: unused vrbl cleanup

24 years agoUpdate build notes for Mac OS X 10.0.
Fred Drake [Wed, 9 May 2001 18:13:47 +0000 (18:13 +0000)]
Update build notes for Mac OS X 10.0.
This closes SF bug #416530.

24 years agoOnly import termio.h on OSF, and add a comment about why it is needed there.
Fred Drake [Wed, 9 May 2001 17:53:06 +0000 (17:53 +0000)]
Only import termio.h on OSF, and add a comment about why it is needed there.
This header does not exist on all Unix flavors; FreeBSD in particular does
not include it.

This closes SF bug #422320.

24 years agoFix the operator precedence table: exponentiation binds tighter than
Fred Drake [Wed, 9 May 2001 16:51:49 +0000 (16:51 +0000)]
Fix the operator precedence table: exponentiation binds tighter than
negation.

This closes SF bug #421999.

24 years agoRemove items that have been done or are being tracked in the SourceForge
Fred Drake [Wed, 9 May 2001 16:43:47 +0000 (16:43 +0000)]
Remove items that have been done or are being tracked in the SourceForge
bug tracker.

24 years agoUpdate the directory names to match changes at SourceForge.
Fred Drake [Wed, 9 May 2001 16:33:34 +0000 (16:33 +0000)]
Update the directory names to match changes at SourceForge.

24 years agoTrivial tests of urllib2 for recent SF bug
Jeremy Hylton [Wed, 9 May 2001 15:50:25 +0000 (15:50 +0000)]
Trivial tests of urllib2 for recent SF bug

24 years agoWork around limitations of the module synopsis table generation to avoid
Fred Drake [Wed, 9 May 2001 15:50:17 +0000 (15:50 +0000)]
Work around limitations of the module synopsis table generation to avoid
leaking LaTeX2HTML's internal string munging.

This fixes SF bug #420399.

24 years agoRaise useful exception when called with URL for which request type
Jeremy Hylton [Wed, 9 May 2001 15:49:24 +0000 (15:49 +0000)]
Raise useful exception when called with URL for which request type
cannot be determined.

Pseudo-fix for SF bug #420724

24 years agoMinor adjustments to HTML for the module synopsis tables.
Fred Drake [Wed, 9 May 2001 15:32:14 +0000 (15:32 +0000)]
Minor adjustments to HTML for the module synopsis tables.

24 years agoSheesh -- repair the dodge around "cast isn't an lvalue" complaints to
Tim Peters [Wed, 9 May 2001 08:43:21 +0000 (08:43 +0000)]
Sheesh -- repair the dodge around "cast isn't an lvalue" complaints to
restore correct semantics.

24 years agoMark Favas reported that gcc caught me using casts as lvalues. Dodge it.
Tim Peters [Wed, 9 May 2001 07:37:07 +0000 (07:37 +0000)]
Mark Favas reported that gcc caught me using casts as lvalues.  Dodge it.

24 years agoJob.build_html(): Be more robust in ensuring about.html exists; copying
Fred Drake [Wed, 9 May 2001 04:03:16 +0000 (04:03 +0000)]
Job.build_html():  Be more robust in ensuring about.html exists; copying
    the right HTML file to the name about.html is needed even if the
    --numeric option was not given -- some other name may have been
    assigned due to some non-determinism in the algorithm use to perform
    name allocation.  ;-(

This closes the "About..." portion of SF bug #420216.

24 years agoThere is no IMAP class in the imaplib module; the class is IMAP4.
Fred Drake [Wed, 9 May 2001 03:49:48 +0000 (03:49 +0000)]
There is no IMAP class in the imaplib module; the class is IMAP4.
There is no imap module; refer to imaplib instead, since it exists.
Move the "See Also:" section in front of the sub-sections, for
consistency with other portions of the library reference.

This closes the library reference portion of SF bug #420216.

24 years agoNote that when inplace=1 existing backup files will be removed silently.
Fred Drake [Wed, 9 May 2001 03:24:55 +0000 (03:24 +0000)]
Note that when inplace=1 existing backup files will be removed silently.
Closes SF bug #420230.

24 years agoAlways pass a full path name to LoadLibraryEx(). Fixes some Windows 9x problems...
Mark Hammond [Wed, 9 May 2001 00:50:59 +0000 (00:50 +0000)]
Always pass a full path name to LoadLibraryEx().  Fixes some Windows 9x problems.  As discussed on python-dev

24 years agoAck! Restore the COUNT_ALLOCS one_strings code.
Tim Peters [Wed, 9 May 2001 00:31:40 +0000 (00:31 +0000)]
Ack!  Restore the COUNT_ALLOCS one_strings code.

24 years agoMy change to string_item() left an extra reference to each 1-character
Tim Peters [Wed, 9 May 2001 00:24:55 +0000 (00:24 +0000)]
My change to string_item() left an extra reference to each 1-character
interned string created by "string"[i].  Since they're immortal anyway,
this was hard to notice, but it was still wrong <wink>.

24 years agoIntern 1-character strings as soon as they're created. As-is, they aren't
Tim Peters [Tue, 8 May 2001 22:33:50 +0000 (22:33 +0000)]
Intern 1-character strings as soon as they're created.  As-is, they aren't
interned when created, so the cached versions generally aren't ever
interned.  With the patch, the
Py_INCREF(t);
*p = t;
Py_DECREF(s);
return;
indirection block in PyString_InternInPlace() is never executed during a
full run of the test suite, but was executed very many times before.  So
I'm trading more work when creating one-character strings for doing less
work later.  Note that the "more work" here can happen at most 256 times
per program run, so it's trivial.  The same reasoning accounts for the
patch's simplification of string_item (the new version can call
PyString_FromStringAndSize() no more than 256 times per run, so there's
no point to inlining that stuff -- if we were serious about saving time
here, we'd pre-initialize the characters vector so that no runtime testing
at all was needed!).

24 years agoBlurb about the increased precision of float literals in .pyc/.pyo files.
Tim Peters [Tue, 8 May 2001 15:43:37 +0000 (15:43 +0000)]
Blurb about the increased precision of float literals in .pyc/.pyo files.

24 years agoSF bug #422177: Results from .pyc differs from .py
Tim Peters [Tue, 8 May 2001 15:19:57 +0000 (15:19 +0000)]
SF bug #422177:  Results from .pyc differs from .py
Store floats and doubles to full precision in marshal.
Test that floats read from .pyc/.pyo closely match those read from .py.
Declare PyFloat_AsString() in floatobject header file.
Add new PyFloat_AsReprString() API function.
Document the functions declared in floatobject.h.

24 years agoRemoved some confusing sentences that are no longer relevant now that
Jack Jansen [Tue, 8 May 2001 14:20:11 +0000 (14:20 +0000)]
Removed some confusing sentences that are no longer relevant now that
calldll is part of the standard macPython distribution.

24 years agoMichael Hudson <mwh21@cam.ac.uk>:
Fred Drake [Tue, 8 May 2001 05:37:52 +0000 (05:37 +0000)]
Michael Hudson <mwh21@cam.ac.uk>:
Documentation update to reflect changes to the termios module (noting
that the termios functions can take a file object as well as a file
descriptor).

This closes the documentation portion of SF patch #417081.

24 years agoSF patch #421922: Implement rich comparison for dicts.
Tim Peters [Tue, 8 May 2001 04:38:29 +0000 (04:38 +0000)]
SF patch #421922:  Implement rich comparison for dicts.
d1 == d2 and d1 != d2 now work even if the keys and values in d1 and d2
don't support comparisons other than ==, and testing dicts for equality
is faster now (especially when inequality obtains).

24 years agoFix several bugs and add two features.
Jeremy Hylton [Tue, 8 May 2001 04:20:52 +0000 (04:20 +0000)]
Fix several bugs and add two features.

Assertion error message had typos in arguments to string format.

.cover files for modules in packages are now put in the right place.

The code that generate .cover files seemed to prepend a "./" to many
absolute paths, causing them to fail.  The code now checks explicitly
for absolute paths and leaves them alone.

In trace/coverage code, recover from case where module has no __name__
attribute, when e.g. it is executed by PyRun_String().  In this case,
assign modulename to None and hope for the best.  There isn't anywhere
to write out coverage data for this code anyway.

Also, replace several sys.stderr.writes with print >> sys.stderr.

New features:

-C/--coverdir dir: Generate .cover files in specified directory
instead of in the directory where the .py file is.

-s: Print a short summary of files coverred (# lines, % coverage,
name)

24 years agoSeveral small changes. Mostly reformatting, adding parens.
Jeremy Hylton [Tue, 8 May 2001 04:12:34 +0000 (04:12 +0000)]
Several small changes.  Mostly reformatting, adding parens.

Check for free in class and method only if nested scopes are enabled.

Add assertion to verify that no free variables occur when nested
scopes are disabled.

XXX When should nested scopes by made non-optional on the trunk?

24 years agoSF patch 419176 from MvL; fixed bug 418977
Jeremy Hylton [Tue, 8 May 2001 04:08:59 +0000 (04:08 +0000)]
SF patch 419176 from MvL; fixed bug 418977

Two errors in dict_to_map() helper used by PyFrame_LocalsToFast().

24 years agoRemove unused variable
Jeremy Hylton [Tue, 8 May 2001 04:00:45 +0000 (04:00 +0000)]
Remove unused variable

24 years agoThis is a test showing SF bug 422177. It won't trigger until I check in
Tim Peters [Tue, 8 May 2001 03:58:01 +0000 (03:58 +0000)]
This is a test showing SF bug 422177.  It won't trigger until I check in
another change (to test_import.py, which simply imports the new file).  I'm
checking this piece in now, though, to make it easier to distribute a patch
for x-platform checking.

24 years agoSF bug #422108 - Error in rich comparisons.
Tim Peters [Mon, 7 May 2001 20:53:51 +0000 (20:53 +0000)]
SF bug #422108 - Error in rich comparisons.
2.1.1 bugfix candidate too.
Fix a bad (albeit unlikely) return value in try_rich_to_3way_compare().
Also document do_cmp()'s return values.

24 years agoMichael Hudson <mwh21@cam.ac.uk>:
Fred Drake [Mon, 7 May 2001 17:55:35 +0000 (17:55 +0000)]
Michael Hudson <mwh21@cam.ac.uk>:

This patch does several things to termios:

(1) changes all functions to be METH_VARARGS
(2) changes all functions to be able to take a file object as the
    first parameter, as per

http://mail.python.org/pipermail/python-dev/2001-February/012701.html

(3) give better error messages
(4) removes a bunch of comments that just repeat the docstrings
(5) #includes <termio.h> before #including <sys/ioctl.h> so more
    #constants are actually #defined.
(6) a couple of docstring tweaks

I have tested this minimally (i.e. it builds, and
doesn't blow up too embarassingly) on OSF1/alpha and
on one of the sf compile farm's solaris boxes, and
rather more comprehansively on my linux/x86 box.

It still needs to be tested on all the other platforms
we build termios on.

This closes the code portion of SF patch #417081.

24 years agoHmm... better add a version annotation for the Iterator Protocol section.
Fred Drake [Mon, 7 May 2001 17:47:07 +0000 (17:47 +0000)]
Hmm... better add a version annotation for the Iterator Protocol section.

24 years agoAdded documentation for PyIter_Check() and PyIter_Next().
Fred Drake [Mon, 7 May 2001 17:42:18 +0000 (17:42 +0000)]
Added documentation for PyIter_Check() and PyIter_Next().

Wrapped a long line.

24 years agoGeneralize zip() to work with iterators.
Tim Peters [Sun, 6 May 2001 01:05:02 +0000 (01:05 +0000)]
Generalize zip() to work with iterators.
NEEDS DOC CHANGES.
More AttributeErrors transmuted into TypeErrors, in test_b2.py, and,
again, this strikes me as a good thing.
This checkin completes the iterator generalization work that obviously
needed to be done.  Can anyone think of others that should be changed?

24 years agoGet rid of silly 5am "del" stmts.
Tim Peters [Sat, 5 May 2001 21:36:52 +0000 (21:36 +0000)]
Get rid of silly 5am "del" stmts.

24 years agoReimplement PySequence_Contains() and instance_contains(), so they work
Tim Peters [Sat, 5 May 2001 21:05:01 +0000 (21:05 +0000)]
Reimplement PySequence_Contains() and instance_contains(), so they work
safely together and don't duplicate logic (the common logic was factored
out into new private API function _PySequence_IterContains()).
Visible change:
    some_complex_number  in  some_instance
no longer blows up if some_instance has __getitem__ but neither
__contains__ nor __iter__.  test_iter changed to ensure that remains true.

24 years agoSkeletal version; I'm checking this in now so I can keep a list of changes,
Andrew M. Kuchling [Sat, 5 May 2001 16:37:29 +0000 (16:37 +0000)]
Skeletal version; I'm checking this in now so I can keep a list of changes,
   but don't plan on actually writing any text until, ooh, say, July or
   thereabouts.

24 years agoGeneralize PySequence_Count() (operator.countOf) to work with iterators.
Tim Peters [Sat, 5 May 2001 11:33:43 +0000 (11:33 +0000)]
Generalize PySequence_Count() (operator.countOf) to work with iterators.

24 years agoRemove redundant line.
Tim Peters [Sat, 5 May 2001 10:14:34 +0000 (10:14 +0000)]
Remove redundant line.

24 years agoMake 'x in y' and 'x not in y' (PySequence_Contains) play nice w/ iterators.
Tim Peters [Sat, 5 May 2001 10:06:17 +0000 (10:06 +0000)]
Make 'x in y' and 'x not in y' (PySequence_Contains) play nice w/ iterators.
NEEDS DOC CHANGES
A few more AttributeErrors turned into TypeErrors, but in test_contains
this time.
The full story for instance objects is pretty much unexplainable, because
instance_contains() tries its own flavor of iteration-based containment
testing first, and PySequence_Contains doesn't get a chance at it unless
instance_contains() blows up.  A consequence is that
    some_complex_number in some_instance
dies with a TypeError unless some_instance.__class__ defines __iter__ but
does not define __getitem__.

24 years agoMake unicode.join() work nice with iterators. This also required a change
Tim Peters [Sat, 5 May 2001 05:36:48 +0000 (05:36 +0000)]
Make unicode.join() work nice with iterators.  This also required a change
to string.join(), so that when the latter figures out in midstream that
it really needs unicode.join() instead, unicode.join() can actually get
all the sequence elements (i.e., there's no guarantee that the sequence
passed to string.join() can be iterated over *again* by unicode.join(),
so string.join() must not pass on the original sequence object anymore).

24 years agoMark string.join() as done. Turns out string_join() works "for free" now,
Tim Peters [Sat, 5 May 2001 04:24:43 +0000 (04:24 +0000)]
Mark string.join() as done.  Turns out string_join() works "for free" now,
because PySequence_Fast() started working for free as soon as
PySequence_Tuple() learned how to work with iterators.  For some reason
unicode.join() still doesn't work, though.

24 years agoFix a tiny and unlikely memory leak. Was there before too, and actually
Tim Peters [Sat, 5 May 2001 04:10:25 +0000 (04:10 +0000)]
Fix a tiny and unlikely memory leak.  Was there before too, and actually
several of these turned up and got fixed during the iteration crusade.

24 years agoGeneralize tuple() to work nicely with iterators.
Tim Peters [Sat, 5 May 2001 03:56:37 +0000 (03:56 +0000)]
Generalize tuple() to work nicely with iterators.
NEEDS DOC CHANGES.
This one surprised me!  While I expected tuple() to be a no-brainer, turns
out it's actually dripping with consequences:
1. It will *allow* the popular PySequence_Fast() to work with any iterable
   object (code for that not yet checked in, but should be trivial).
2. It caused two std tests to fail.  This because some places used
   PyTuple_Sequence() (the C spelling of tuple()) as an indirect way to test
   whether something *is* a sequence.  But tuple() code only looked for the
   existence of sq->item to determine that, and e.g. an instance passed
   that test whether or not it supported the other operations tuple()
   needed (e.g., __len__).  So some things the tests *expected* to fail
   with an AttributeError now fail with a TypeError instead.  This looks
   like an improvement to me; e.g., test_coercion used to produce 559
   TypeErrors and 2 AttributeErrors, and now they're all TypeErrors.  The
   error details are more informative too, because the places calling this
   were *looking* for TypeErrors in order to replace the generic tuple()
   "not a sequence" msg with their own more specific text, and
   AttributeErrors snuck by that.

24 years agoMake PyIter_Next() a little smarter (wrt its knowledge of iterator
Tim Peters [Sat, 5 May 2001 00:14:56 +0000 (00:14 +0000)]
Make PyIter_Next() a little smarter (wrt its knowledge of iterator
internals) so clients can be a lot dumber (wrt their knowledge).

24 years agoMake the license GPL-compatible.
Guido van Rossum [Fri, 4 May 2001 18:49:06 +0000 (18:49 +0000)]
Make the license GPL-compatible.

24 years agoAdd TODO item about x in y -- this should use iterators too, IMO.
Guido van Rossum [Fri, 4 May 2001 13:40:18 +0000 (13:40 +0000)]
Add TODO item about x in y -- this should use iterators too, IMO.

24 years agoAdded reminders to make some remaining functions iterator-friendly. Feel
Tim Peters [Fri, 4 May 2001 04:43:42 +0000 (04:43 +0000)]
Added reminders to make some remaining functions iterator-friendly.  Feel
free to do one!

24 years agoGeneralize reduce() to work with iterators.
Tim Peters [Fri, 4 May 2001 04:39:21 +0000 (04:39 +0000)]
Generalize reduce() to work with iterators.
NEEDS DOC CHANGES.