cpython/Lib
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
..
bsddb [Patch #1520904] Fix bsddb tests to write to the temp directory instead of the Lib/bsddb/test directory 2007-01-05 15:51:24 +00:00
compiler Patch #1638243: the compiler package is now able to correctly compile 2007-01-27 17:43:02 +00:00
ctypes patch #1610795: BSD version of ctypes.util.find_library, by Martin 2007-01-12 20:17:34 +00:00
curses
distutils Bug #1600860: Search for shared python library in LIBDIR, not 2007-02-09 12:36:48 +00:00
email Patch #1634778: add missing encoding aliases for iso8859_15 and 2007-01-27 17:59:42 +00:00
encodings Make the __import__ call in encodings.__init__ absolute with a level 0 call. 2007-02-16 19:33:01 +00:00
hotshot
idlelib Corrected some bugs in AutoComplete. Also, Page Up/Down in ACW implemented; 2007-02-08 22:58:18 +00:00
lib-tk Whitespace normalization. 2007-01-30 03:03:46 +00:00
logging Minor fix for currentframe (SF #1652788). 2007-02-16 22:36:24 +00:00
msilib Properly generate logical file ids. Fixes #1515998. 2006-07-06 19:28:03 +00:00
plat-aix3
plat-aix4
plat-atheos
plat-beos5
plat-darwin
plat-freebsd2
plat-freebsd3
plat-freebsd4 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-freebsd5
plat-freebsd6
plat-freebsd7 Whitespace normalization. 2005-07-17 23:16:17 +00:00
plat-generic
plat-irix5
plat-irix6
plat-linux2
plat-mac with and as are now keywords. There are some generated files I can't recreate. 2006-09-06 06:28:06 +00:00
plat-netbsd1
plat-next3
plat-os2emx
plat-riscos
plat-sunos5 with and as are now keywords. There are some generated files I can't recreate. 2006-09-06 06:28:06 +00:00
plat-unixware7 Whitespace normalization, via reindent.py. 2004-07-18 06:16:08 +00:00
site-packages
sqlite3 Merged changes from standalone version 2.3.3. This should probably all be 2007-01-14 01:43:50 +00:00
test Add checking for a number of metaclass error conditions. 2007-02-27 18:29:45 +00:00
wsgiref Sync w/external release 0.1.2. Please see PEP 360 before making changes to external packages. 2006-06-12 04:04:32 +00:00
xml Patch 1463026: Support default namespace in XMLGenerator. 2007-02-12 12:21:10 +00:00
BaseHTTPServer.py Fix the signature of log_error(). (A subclass that did the right thing 2007-01-10 23:12:56 +00:00
Bastion.py
CGIHTTPServer.py Whitespace normalization. 2007-01-30 03:03:46 +00:00
ConfigParser.py Patch #1371075: Make ConfigParser accept optional dict type 2006-12-03 12:01:53 +00:00
Cookie.py Whitespace normalization. 2006-08-15 00:25:04 +00:00
DocXMLRPCServer.py [Bug #1473048] 2006-05-31 14:08:48 +00:00
HTMLParser.py
MimeWriter.py
Queue.py ... and the number of the counting shall be three. 2006-11-23 21:35:19 +00:00
SimpleHTTPServer.py [Patch #827559 from Chris Gonnerman] Make SimpleHTTPServer redirect when a directory URL is missing the trailing slash; this lets relative links work. 2006-12-22 19:06:16 +00:00
SimpleXMLRPCServer.py [Bug #1525469] SimpleXMLRPCServer still uses the sys.exc_{value,type} module-level globals instead of calling sys.exc_info(). Reported by Russell Warren 2006-09-05 13:15:41 +00:00
SocketServer.py
StringIO.py [Bug #1622533] Make docstrings raw strings because they contain control characters (\0, \1) 2007-01-05 14:22:17 +00:00
UserDict.py
UserList.py
UserString.py Cleanup: Remove import of types to get StringTypes, we can just use basestring. 2006-06-12 02:07:24 +00:00
_LWPCookieJar.py Remove unused import. 2006-05-18 06:18:06 +00:00
_MozillaCookieJar.py Make use of new str.startswith/endswith semantics. 2006-06-09 20:43:48 +00:00
__future__.py
__phello__.foo.py
_strptime.py Use the thread lock's context manager instead of a try/finally statement. 2007-01-28 20:58:00 +00:00
_threading_local.py Finally figured out why this module did its imports at the 2006-04-18 03:28:32 +00:00
aifc.py Add a length check to aifc to ensure it doesn't write a bogus file 2006-05-30 00:26:01 +00:00
anydbm.py
asynchat.py
asyncore.py
atexit.py Bug #1597824: return the registered function from atexit.register() 2006-11-16 16:50:59 +00:00
audiodev.py
base64.py Clarify docstring 2006-10-27 17:06:16 +00:00
bdb.py Patch #721464: pdb.Pdb instances can now be given explicit stdin and 2006-05-10 17:13:20 +00:00
binhex.py Patch #1220874: Update the binhex module for Mach-O. 2006-07-15 16:53:15 +00:00
bisect.py
cProfile.py
calendar.py Get rid of __context__, per the latest changes to PEP 343 and python-dev 2006-05-02 19:47:52 +00:00
cgi.py Bug #1457823: cgi.(Sv)FormContentDict's constructor now takes 2006-09-30 10:58:01 +00:00
cgitb.py
chunk.py
cmd.py
code.py
codecs.py Fix codecs.EncodedFile which did not use file_encoding in 2.5.0, and 2006-10-29 08:39:22 +00:00
codeop.py Conversion of exceptions over from faked-up classes to new-style C types. 2006-05-27 12:29:24 +00:00
colorsys.py A very minor bug fix: this code looks like it is designed to accept 2006-10-06 16:33:22 +00:00
commands.py
compileall.py
contextlib.py Finish bringing SVN into line with latest version of PEP 343 by getting rid of all remaining references to context objects that I could find. Without a __context__() method context objects no longer exist. Also get test_with working again, and adopt a suggestion from Neal for decimal.Context.get_manager() 2006-05-03 13:02:47 +00:00
cookielib.py Whitespace normalization. 2007-01-30 03:03:46 +00:00
copy.py
copy_reg.py
csv.py
dbhash.py
decimal.py Fix docstring bug 2007-02-08 01:42:35 +00:00
difflib.py [Bug #1622533] Make docstrings raw strings because they contain control characters (\0, \1) 2007-01-05 14:22:17 +00:00
dircache.py
dis.py
doctest.py Fix a couple of typos. 2006-08-29 05:40:58 +00:00
dumbdbm.py Whitespace normalization. 2007-01-30 03:03:46 +00:00
dummy_thread.py Remove specific mention of my name and email address from modules. Not really 2007-01-25 23:30:39 +00:00
dummy_threading.py Remove specific mention of my name and email address from modules. Not really 2007-01-25 23:30:39 +00:00
filecmp.py
fileinput.py
fnmatch.py
formatter.py
fpformat.py
ftplib.py Whitespace normalization. 2007-01-30 03:03:46 +00:00
functools.py [Bug #1576241] Let functools.wraps work with built-in functions 2006-10-27 16:39:10 +00:00
genericpath.py Add missing svn:eol-style property to text files. 2006-09-05 02:22:17 +00:00
getopt.py
getpass.py
gettext.py
glob.py
gopherlib.py
gzip.py Strip the '.gz' extension from the filename that is written to the 2007-02-13 16:24:00 +00:00
hashlib.py Bug #1586773: extend hashlib docstring. 2006-10-29 18:01:08 +00:00
heapq.py Fixup docstrings for merge(). 2007-02-19 18:15:04 +00:00
hmac.py [Rest of patch #1182394] Add ._current() method so that we can use the written-in-C .hexdigest() method 2006-12-27 03:31:24 +00:00
htmlentitydefs.py
htmllib.py
httplib.py Whitespace normalization. 2007-01-30 03:03:46 +00:00
ihooks.py
imaplib.py
imghdr.py
imputil.py Patch #685268: Consider a package's __path__ in imputil. 2007-02-13 08:34:45 +00:00
inspect.py Bug #1550524: better heuristics to find correct class definition 2006-10-12 09:20:33 +00:00
keyword.py
linecache.py Linecache contains support for PEP302 loaders, but fails to deal with loaders 2006-06-13 11:19:56 +00:00
locale.py Whitespace normalization. 2006-05-18 02:06:40 +00:00
macpath.py - Move functions common to all path modules into genericpath.py and have the 2006-08-26 18:42:06 +00:00
macurl2path.py
mailbox.py Whitespace normalization. 2007-01-30 03:03:46 +00:00
mailcap.py
markupbase.py Normalized a few cases of whitespace in function declarations. 2006-06-06 12:46:55 +00:00
md5.py
mhlib.py
mimetools.py
mimetypes.py Bug #1202018: add some common mime.types locations. 2006-06-14 08:42:11 +00:00
mimify.py
modulefinder.py Modulefinder now handles absolute and relative imports, including 2006-10-27 19:05:53 +00:00
multifile.py
mutex.py
netrc.py
new.py
nntplib.py
ntpath.py Fixed ntpath.expandvars to not replace references to non-existing 2007-01-16 16:42:38 +00:00
nturl2path.py
opcode.py
optparse.py Resync optparse with Optik 1.5.3: minor tweaks for/to tests. 2006-07-23 16:05:51 +00:00
os.py Move errno imports back to individual functions. 2006-12-11 07:56:33 +00:00
os2emxpath.py - Move functions common to all path modules into genericpath.py and have the 2006-08-26 18:42:06 +00:00
pdb.doc
pdb.py Bug #1627316: handle error in condition/ignore pdb commands more gracefully. 2007-01-22 21:23:41 +00:00
pickle.py
pickletools.py
pipes.py
pkgutil.py Bug #1529871: The speed enhancement patch #921466 broke Python's compliance 2006-07-28 21:12:07 +00:00
platform.py Whitespace normalization. 2007-01-30 03:03:46 +00:00
popen2.py Fix check for empty list (vs. None). 2006-07-21 17:36:31 +00:00
poplib.py In stdlib, use hashlib instead of deprecated md5 and sha modules. 2006-04-30 08:57:35 +00:00
posixfile.py
posixpath.py Bug #1560179: speed up posixpath.(dir|base)name 2006-10-12 13:08:16 +00:00
pprint.py pprint functions used to sort a dict (by key) if and only if 2006-06-02 23:22:51 +00:00
profile.py
pstats.py Bug #1603321: make pstats.Stats accept Unicode file paths. 2006-11-26 19:27:47 +00:00
pty.py Whitespace normalization. 2007-01-30 03:03:46 +00:00
py_compile.py
pyclbr.py Bug #1560617: in pyclbr, return full module name not only for classes, 2006-09-30 11:06:47 +00:00
pydoc.py Handle old-style instances more gracefully (display documentation on 2007-01-14 04:25:15 +00:00
quopri.py
random.py SF# 1635892: Fix docs for betavariate's input parameters . 2007-01-19 18:07:18 +00:00
re.py
repr.py
rexec.py
rfc822.py Bug #1249573: fix rfc822.parsedate not accepting a certain date format 2007-01-22 21:10:33 +00:00
rlcompleter.py Patch #1472854: make the rlcompleter.Completer class usable on non- 2006-04-30 18:14:54 +00:00
robotparser.py
runpy.py Revert the __module_name__ changes made in rev 47142. We'll revisit this in Python 2.6 2006-07-06 12:53:04 +00:00
sched.py
sets.py Deprecate the sets module. 2007-01-13 00:29:49 +00:00
sgmllib.py Forward port of 51850 from release25-maint branch. 2006-09-11 04:24:09 +00:00
sha.py
shelve.py Bug #1339007: Shelf objects now don't raise an exception in their 2006-06-14 06:08:31 +00:00
shlex.py
shutil.py Patch #1490190: posixmodule now includes os.chflags() and os.lchflags() 2007-02-19 10:55:19 +00:00
site.py Patch #1540892: site.py Quitter() class attempts to close sys.stdin 2006-08-16 05:01:42 +00:00
smtpd.py
smtplib.py Use new email module names (#1637162, #1637159, #1637157). 2007-01-22 19:40:21 +00:00
sndhdr.py
socket.py Patch #1627441: close sockets properly in urllib2. 2007-01-21 10:35:10 +00:00
sre.py
sre_compile.py
sre_constants.py
sre_parse.py Make sre's SubPattern objects accept slice objects like it already accepts 2006-12-19 08:17:50 +00:00
stat.py Patch #1490190: posixmodule now includes os.chflags() and os.lchflags() 2007-02-19 10:55:19 +00:00
statvfs.py
string.py Cookie.py shouldn't "bogusly" use string._idmap. 2006-08-14 22:01:24 +00:00
stringold.py
stringprep.py
struct.py Typo fix 2006-07-30 16:41:30 +00:00
subprocess.py Applied patch 1124861.3.patch to solve bug #1124861: Automatically create pipes on Windows, if GetStdHandle fails. Will backport. 2007-02-06 15:37:50 +00:00
sunau.py
sunaudio.py
symbol.py
symtable.py
tabnanny.py Make tabnanny recognize IndentationErrors raised by tokenize. 2006-08-14 21:34:08 +00:00
tarfile.py Patch #1652681: create nonexistent files in append mode and 2007-02-06 18:38:13 +00:00
telnetlib.py Patch #825417: Fix timeout processing in expect, 2006-07-03 13:01:35 +00:00
tempfile.py Param name is dir, not directory. Update docstring. Backport candidate 2006-06-16 04:31:06 +00:00
textwrap.py Whitespace normalization. 2006-06-11 19:42:51 +00:00
this.py
threading.py Bug #1566280: Explicitly invoke threading._shutdown from Py_Main, 2007-01-04 21:06:12 +00:00
timeit.py
toaiff.py
token.py
tokenize.py Add name to credits (for untokenize). 2006-12-02 02:00:39 +00:00
trace.py fix trace.py --ignore-dir 2007-02-11 18:24:37 +00:00
traceback.py Fix a bug in traceback.format_exception_only() that led to an error 2006-09-24 12:50:24 +00:00
tty.py
types.py Patch #1520294: Support for getset and member descriptors in types.py, 2006-07-27 23:43:15 +00:00
unittest.py
urllib.py Use new email module names (#1637162, #1637159, #1637157). 2007-01-22 19:40:21 +00:00
urllib2.py Use new email module names (#1637162, #1637159, #1637157). 2007-01-22 19:40:21 +00:00
urlparse.py
user.py
uu.py Jython compatibility fix: if uu.decode() opened its output file, be sure to 2006-11-20 13:39:37 +00:00
uuid.py Bug #1541863: uuid.uuid1 failed to generate unique identifiers 2006-08-18 03:47:18 +00:00
warnings.py Ignore ImportWarning by default 2006-07-06 13:35:27 +00:00
wave.py
weakref.py SF #1479988: add methods to allow access to weakrefs for the 2006-05-02 06:53:59 +00:00
webbrowser.py Bug #1565661: in webbrowser, split() the command for the default 2006-09-30 07:31:57 +00:00
whichdb.py
wsgiref.egg-info Sync w/external release 0.1.2. Please see PEP 360 before making changes to external packages. 2006-06-12 04:04:32 +00:00
xdrlib.py Move xdrlib tests from the module into a separate test script, 2006-12-01 16:59:47 +00:00
xmllib.py
xmlrpclib.py Patch #1070046: Marshal new-style objects like InstanceType 2006-11-19 18:51:54 +00:00
zipfile.py Patch #1517891: Make 'a' create the file if it doesn't exist. 2007-02-13 10:10:39 +00:00