Commit Graph

36392 Commits

Author SHA1 Message Date
Jeremy Hylton fa955697fa Add checking for a number of metaclass error conditions.
We add some new rules that are required for preserving internal
invariants of types.

1.  If type (or a subclass of type) appears in bases, it must appear
    before any non-type bases.  If a non-type base (like a regular
    new-style class) occurred first, it could trick type into
    allocating the new class an __dict__ which must be impossible.

2. There are several checks that are made of bases when creating a
   type.  Those checks are now repeated when assigning to __bases__.
   We also add the restriction that assignment to __bases__ may not
   change the metaclass of the type.

Add new tests for these cases and for a few other oddball errors that
were no previously tested.  Remove a crasher test that was fixed.

Also some internal refactoring:  Extract the code to find the most
derived metaclass of a type and its bases.  It is now needed in two
places.  Rewrite the TypeError checks in test_descr to use doctest.
The tests now clearly show what exception they expect to see.
2007-02-27 18:29:45 +00:00
Jeremy Hylton 2d1f5c93bb whitespace normalization 2007-02-27 17:24:48 +00:00
Jeremy Hylton 819de6ce20 tabify
Note that ast.c still has a mix of tabs and spaces, because it
attempts to use four-space indents for more of the new code.
2007-02-27 16:13:23 +00:00
Jeremy Hylton 18623e2525 tabify 2007-02-27 16:00:06 +00:00
Jeremy Hylton 37075c5ace Fix long-standing bug in name mangling for package imports
Reported by Mike Verdone.
2007-02-27 01:01:59 +00:00
Andrew M. Kuchling c6a1ef3fe1 Add some items 2007-02-26 23:54:17 +00:00
Neal Norwitz f83b751f4b SF #1669182, 2.5 was already fixed. Just assert in 2.6 since string exceptions
are gone.
2007-02-26 23:48:27 +00:00
Andrew M. Kuchling f2ae27e61a Markup fix 2007-02-26 23:02:47 +00:00
Neal Norwitz 88516a6039 When printing an unraisable error, don't print exceptions. before the name.
This duplicates the behavior whening normally printing exceptions.
2007-02-26 22:41:45 +00:00
Jeremy Hylton a892554781 Fix assertion. 2007-02-26 19:00:20 +00:00
Jeremy Hylton 759410b372 Do not copy free variables to locals in class namespaces.
Fixes bug 1569356, but at the cost of a minor incompatibility in
locals().  Add test that verifies that the class namespace is not
polluted.  Also clarify the behavior in the library docs.

Along the way, cleaned up the dict_to_map and map_to_dict
implementations and added some comments that explain what they do.
2007-02-26 18:41:18 +00:00
Neal Norwitz 7b7d1c8282 Fix a couple of problems in generating the AST code:
* use %r instead of backticks since backticks are going away in Py3k
 * PyArena_Malloc() already sets PyErr_NoMemory so we don't need to do it again
 * the signature for ast2obj_int incorrectly used a bool, rather than a long
2007-02-26 18:10:47 +00:00
Georg Brandl 1177bc4dfd Fix typo. 2007-02-26 17:09:03 +00:00
Neal Norwitz 41624e9894 Add Steven Bethard to help out with patches. 2007-02-26 17:01:08 +00:00
Jeremy Hylton 7c1e347f73 Reformat long lines. 2007-02-26 16:14:51 +00:00
Georg Brandl 10a4b0e6df Backport from Py3k branch: fix refleak in PyString_Format. 2007-02-26 13:51:29 +00:00
Thomas Wouters 110054c053 Backported r51621 from p3yk:
Don't use a fixed temporary name (gdbm).
Don't use our own temp name creation (dbm).
Should be backported to 2.5.
2007-02-25 22:12:31 +00:00
Neal Norwitz ee3a1b5244 Variation of patch # 1624059 to speed up checking if an object is a subclass
of some of the common builtin types.

Use a bit in tp_flags for each common builtin type.  Check the bit
to determine if any instance is a subclass of these common types.
The check avoids a function call and O(n) search of the base classes.
The check is done in the various Py*_Check macros rather than calling
PyType_IsSubtype().

All the bits are set in tp_flags when the type is declared
in the Objects/*object.c files because PyType_Ready() is not called
for all the types.  Should PyType_Ready() be called for all types?
If so and the change is made, the changes to the Objects/*object.c files
can be reverted (remove setting the tp_flags).  Objects/typeobject.c
would also have to be modified to add conditions
for Py*_CheckExact() in addition to each the PyType_IsSubtype check.
2007-02-25 19:44:48 +00:00
Fred Drake 5a3e812444 - SF patch #1657613: add documentation for the Element interface
- clean up bogus use of the {datadescni} environment everywhere
2007-02-25 17:56:27 +00:00
Jeremy Hylton 714b112ae5 Put declarations before code. 2007-02-25 16:01:58 +00:00
Jeremy Hylton c5ceb251b3 Fix crash in exec when unicode filename can't be decoded.
I can't think of an easy way to test this behavior.  It only occurs
when the file system default encoding and the interpreter default
encoding are different, such that you can open the file but not decode
its name.
2007-02-25 15:57:45 +00:00
Neal Norwitz 7218c2d2f4 Whitespace only changes 2007-02-25 15:53:36 +00:00
Neal Norwitz 1c1a1c5aa1 Add more details when releasing interned strings 2007-02-25 15:52:27 +00:00
Brett Cannon 6fbb96e69a Refactor PEP 352 tests to make it easier in the future to make sure certain
things cannot be raised or caught.
2007-02-23 14:28:25 +00:00
Neal Norwitz 764cf7ed82 Fix typo in comment 2007-02-23 00:22:39 +00:00
Raymond Hettinger 1b6ca54c44 Remove filler struct item and fix leak. 2007-02-21 17:22:05 +00:00
Raymond Hettinger d36862cf78 Add itertools.izip_longest(). 2007-02-21 05:20:38 +00:00
Raymond Hettinger 15cade0568 Fixup set/dict interoperability. 2007-02-19 20:44:04 +00:00
Raymond Hettinger cbac8ce5b0 Fixup docstrings for merge(). 2007-02-19 18:15:04 +00:00
Martin v. Löwis 382abeff0f Patch #1490190: posixmodule now includes os.chflags() and os.lchflags()
functions on platforms where the underlying system calls are available.
2007-02-19 10:55:19 +00:00
Lars Gustäbel 0713a68dc5 Moved misplaced news item. 2007-02-19 09:54:47 +00:00
Raymond Hettinger bcc40ba922 Provide an example of defaultdict with non-zero constant factory function. 2007-02-19 09:14:10 +00:00
Raymond Hettinger 01b9881062 Add test for merge stability 2007-02-19 07:30:21 +00:00
Raymond Hettinger 45eb0f1419 Use C heapreplace() instead of slower _siftup() in pure python. 2007-02-19 06:59:32 +00:00
Raymond Hettinger 54da9819cc Add tie-breaker count to preserve sort stability. 2007-02-19 05:28:28 +00:00
Raymond Hettinger 00166c5532 Add merge() function to heapq. 2007-02-19 04:08:43 +00:00
Raymond Hettinger d6fc72a5ae Extend work on revision 52962: Eliminate redundant calls to PyObject_Hash(). 2007-02-19 02:03:19 +00:00
Vinay Sajip f7ccc101d2 Minor fix for currentframe (SF #1652788). 2007-02-16 22:36:24 +00:00
Brett Cannon fa6521b4fd Make the __import__ call in encodings.__init__ absolute with a level 0 call. 2007-02-16 19:33:01 +00:00
Brett Cannon 971a012ce1 Update the encoding package's search function to use absolute imports when
calling __import__.  This helps make the expected search locations for encoding
modules be more explicit.

One could use an explicit value for __path__ when making the call to __import__
to force the exact location searched for encodings.  This would give the most
strict search path possible if one is worried about malicious code being
imported.  The unfortunate side-effect of that is that if __path__ was modified
on 'encodings' on purpose in a safe way it would not be picked up in future
__import__ calls.
2007-02-15 22:54:39 +00:00
Georg Brandl 9cb37fc5d0 Add missing \versionadded. 2007-02-15 11:29:55 +00:00
Georg Brandl 983d100202 Patch #1494140: Add documentation for the new struct.Struct object. 2007-02-15 11:29:04 +00:00
Georg Brandl 9dca5eaf57 Make functools.wraps() docs a bit clearer. 2007-02-15 10:37:59 +00:00
Martin v. Löwis 13a9828719 Patch #1397848: add the reasoning behind no-resize-on-shrinkage. 2007-02-15 09:51:35 +00:00
Lars Gustäbel d0b6040ced A missing binary mode in AppendTest caused failures in Windows
Buildbot.
2007-02-14 14:45:12 +00:00
Martin v. Löwis f1a4aa340e Ignore directory time stamps when considering
whether to rerun libffi configure.
2007-02-14 11:30:56 +00:00
Martin v. Löwis f228482735 Update 1432399 to removal of _BT_SOCKADDR_MEMB. 2007-02-14 11:30:07 +00:00
Martin v. Löwis 45423a7571 Patch #1432399: Add HCI sockets. 2007-02-14 10:07:37 +00:00
Lars Gustäbel f19c1b5e0e Strip the '.gz' extension from the filename that is written to the
gzip header.
2007-02-13 16:24:00 +00:00
Lars Gustäbel 5b1a785702 Patch #1647484: Renamed GzipFile's filename attribute to name. The
filename attribute is still accessible as a property that emits a
DeprecationWarning.
2007-02-13 16:09:24 +00:00