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 [Bug #1152762] Ensure _end_of_line() returns an x-coordinate that's within the text box 2005-06-02 00:10:04 +00:00
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 Repair bizarre generated Python. 2004-07-18 06:35:21 +00:00
plat-beos5 Whitespace normalization, via reindent.py. 2004-07-18 06:16:08 +00:00
plat-darwin
plat-freebsd2
plat-freebsd3
plat-freebsd4
plat-freebsd5
plat-freebsd6 Whitespace normalization. 2004-08-20 03:47:14 +00:00
plat-freebsd7 Whitespace normalization. 2005-07-17 23:16:17 +00:00
plat-generic
plat-irix5 Whitespace normalization, via reindent.py. 2004-07-18 06:16:08 +00:00
plat-irix6 Whitespace normalization, via reindent.py. 2004-07-18 06:16:08 +00:00
plat-linux2 Repair bizarre generated Python. 2004-07-18 06:35:21 +00:00
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 Whitespace normalization, via reindent.py. 2004-07-18 06:16:08 +00:00
plat-next3
plat-os2emx Whitespace normalization, via reindent.py. 2004-07-18 06:16:08 +00:00
plat-riscos Bug #649974: make docstrings for url2pathname consistent 2005-12-26 22:53:56 +00:00
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 Replace backticks with repr() or "%r" 2004-02-12 17:35:32 +00:00
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 Reverting previous checkin. This breaks too much of HTMLParser to be applied 2005-09-01 06:25:34 +00:00
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 bug [ 957505 ] SocketServer module documentation misleading 2005-07-18 07:38:44 +00:00
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 - Patch 1433928: 2006-02-25 22:38:04 +00:00
UserList.py Guido grants a Christmas wish: 2003-12-17 20:43:33 +00:00
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 I could have sworn this was part of the change to not abbreviate ABSOLUTE 2006-04-03 06:58:51 +00:00
__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 [Patch #1002763] Allow long ints as terminator values; also, treat a terminator of 0 like the empty string or None 2005-06-09 14:59:45 +00:00
asyncore.py No need to import exceptions, they are builtins 2005-09-01 00:45:28 +00:00
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 SF Patch #864863: Bisect C implementation 2004-01-05 10:13:35 +00:00
cProfile.py Added the cProfile module. 2006-02-08 12:53:56 +00:00
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 Merge ast-branch to head 2005-10-20 19:59:25 +00:00
chunk.py Patch #1373643: The chunk module can now read chunks larger than 2006-02-18 21:10:56 +00:00
cmd.py Whitespace normalization. 2004-07-07 20:54:48 +00:00
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 Bugs item #1069409 C:\Python24\Lib\compileall.py returns False 2004-12-20 00:29:29 +00:00
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 Whitespace normalization. 2006-02-26 04:21:50 +00:00
copy_reg.py Patch #1462313, bug #1443328: the pickle modules now can handle classes 2006-03-31 18:25:44 +00:00
csv.py Fix a delimiter detection problem in sniffer. Sniffing "a|b|c\r\n" was 2005-12-30 05:09:48 +00:00
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 Patch #707167: Pass dircache exceptions to the caller. Fixes #682813. 2003-09-20 15:52:21 +00:00
dis.py Replace backticks with repr() or "%r" 2004-02-12 17:35:32 +00:00
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 Removed deprecated use_statcache argument. 2004-12-05 01:58:09 +00:00
fileinput.py Whitespace normalization. 2006-02-19 21:26:07 +00:00
fnmatch.py
formatter.py remove the other half of one of the regsub-related comments; the other 2004-12-07 14:08:24 +00:00
fpformat.py Replace backticks with repr() or "%r" 2004-02-12 17:35:32 +00:00
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 Bug #1445068: getpass.getpass() can now be given an explicit stream 2006-03-31 18:42:16 +00:00
gettext.py Patch #1349274: gettext.install() now optionally installs additional 2006-02-19 13:26:36 +00:00
glob.py glob('anything*/') would fail because isdir is in os.path, not os. 2006-04-09 03:35:43 +00:00
gopherlib.py Changed the new deprecation warning to show the 2006-02-18 04:00:23 +00:00
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 clean up the API a little; exceptions are defined by this module 2004-09-09 02:24:13 +00:00
httplib.py Whitespace normalization. 2007-01-30 03:03:46 +00:00
ihooks.py ihooks FancyModuleLoader.load_module() 2004-08-04 02:29:12 +00:00
imaplib.py updated __version__ 2005-08-31 10:50:03 +00:00
imghdr.py SF #75103: imghdr -- identify JPEGs in EXIF format 2005-01-07 08:15:41 +00:00
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 Regenerate. 2006-02-28 22:50:17 +00:00
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 Bug #649974: make docstrings for url2pathname consistent 2005-12-26 22:53:56 +00:00
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 [ sf.net patch # 1121611 ] 2005-08-21 18:45:59 +00:00
mhlib.py Replace list of constants with tuples of constants. 2005-02-06 06:57:08 +00:00
mimetools.py Bug #1250170, Patch #1462230: handle socket.gethostname() 2006-03-31 17:18:06 +00:00
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 Stacks based on lists work better and read more clearly when they 2004-05-04 08:21:52 +00:00
mutex.py * Move collections.deque() in from the sandbox 2004-01-29 06:37:52 +00:00
netrc.py
new.py
nntplib.py - Bug #1015140: disambiguated the term "article id" in nntplib docs and 2005-07-17 20:27:41 +00:00
ntpath.py Fixed ntpath.expandvars to not replace references to non-existing 2007-01-16 16:42:38 +00:00
nturl2path.py Bug #649974: make docstrings for url2pathname consistent 2005-12-26 22:53:56 +00:00
opcode.py PEP 343 -- the with-statement. 2006-02-27 22:32:47 +00:00
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 bug #989672: pdb.doc and the help messages for the help_d and help_u methods 2004-08-14 15:19:28 +00:00
pdb.py Bug #1627316: handle error in condition/ignore pdb commands more gracefully. 2007-01-22 21:23:41 +00:00
pickle.py Revert previous checkin. 2005-02-07 15:28:45 +00:00
pickletools.py An instance of class PicklingError was used here simply as an example of 2005-02-15 16:22:34 +00:00
pipes.py Replace backticks with repr() or "%r" 2004-02-12 17:35:32 +00:00
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 Add support for FreeBSD 7. 2005-07-17 02:36:59 +00:00
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 test and fix for buggy handling of exceptions raised by C functions, 2005-09-20 18:50:13 +00:00
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 Patch #1171150: add a newline to py_compile error output 2005-06-10 17:15:18 +00:00
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 Rename sre.py -> re.py 2006-03-16 06:30:02 +00:00
repr.py Committing Tim's patch for SF bug #983585: 2004-07-01 20:28:47 +00:00
rexec.py Remove regsub, reconvert, regex, regex_syntax and everything under lib-old. 2006-03-16 06:50:13 +00:00
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 Patch #1014237: Consistently return booleans throughout. 2004-08-23 20:42:35 +00:00
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 Refactor: 2004-12-17 13:52:20 +00:00
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 [ sf.net patch # 1121611 ] 2005-08-21 18:45:59 +00:00
shelve.py Bug #1339007: Shelf objects now don't raise an exception in their 2006-06-14 06:08:31 +00:00
shlex.py Replace backticks with repr() or "%r" 2004-02-12 17:35:32 +00:00
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 Fix for SF bug # 1010102. The default is PureProxy not SMTPProxy. 2004-10-09 21:44:13 +00:00
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 Spel compatibility write. 2006-03-16 06:33:21 +00:00
sre_compile.py [Bug #1177831] Fix generation of code for GROUPREF_EXISTS. Thanks to Andre Malo for the fix. 2005-06-02 13:35:52 +00:00
sre_constants.py PEP 292 classes Template and SafeTemplate are added to the string module. 2004-08-25 02:22:30 +00:00
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 Remove outdated references to the regsub module. 2004-12-07 07:55:07 +00:00
stringprep.py Avoid forward-declaring the methods array. 2006-03-10 11:20:04 +00:00
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 Replace backticks with repr() or "%r" 2004-02-12 17:35:32 +00:00
symbol.py PEP 343 -- the with-statement. 2006-02-27 22:32:47 +00:00
symtable.py Get symtable to limp along, can run compiler/symbols.py. Not saying much, needs more work. 2005-11-25 03:14:00 +00:00
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 Back rev 1.3 out per Raymond's request. 2004-02-06 04:40:56 +00:00
threading.py Bug #1566280: Explicitly invoke threading._shutdown from Py_Main, 2007-01-04 21:06:12 +00:00
timeit.py SF patch #868736: Disable GC for timeit 2004-01-04 03:47:51 +00:00
toaiff.py Replace backticks with repr() or "%r" 2004-02-12 17:35:32 +00:00
token.py PEP-0318, @decorator-style. In Guido's words: 2004-08-02 06:10:11 +00:00
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 Patch #1388073: Make unittest.TestCase easier to subclass 2006-01-20 17:55:00 +00:00
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 Patch #624325: urlparse.urlparse() and urlparse.urlsplit() results 2006-04-01 22:14:43 +00:00
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 Fix SF #1001053, wave.open() with unicode filename fails 2004-08-01 22:48:06 +00:00
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 Replace list of constants with tuples of constants. 2005-02-06 06:57:08 +00:00
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 Do not use the default namespace for attributes. 2004-05-02 20:37:13 +00:00
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