From: Guido van Rossum Date: Tue, 4 Jun 2002 05:58:34 +0000 (+0000) Subject: Surprising fix for SF bug 563060: module can be used as base class. X-Git-Tag: v2.3c1~5494 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2e4e02620bc118c57270519c7d5f3e76996b3841;p=thirdparty%2FPython%2Fcpython.git Surprising fix for SF bug 563060: module can be used as base class. Change the module constructor (module_init) to have the signature __init__(name:str, doc=None); this prevents the call from type_new() to succeed. While we're at it, prevent repeated calling of module_init for the same module from leaking the dict, changing the semantics so that __dict__ is only initialized if NULL. Also adding a unittest, test_module.py. This is an incompatibility with 2.2, if anybody was instantiating the module class before, their argument list was probably empty; so this can't be backported to 2.2.x. --- diff --git a/Misc/NEWS b/Misc/NEWS index c3224dabaad3..c90dd7f69c67 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -6,6 +6,13 @@ Type/class unification and new-style classes Core and builtins +- The constructor for the module type now requires a name argument and + takes an optional docstring argument. Previously, this constructor + ignored its arguments. As a consequence, deriving a class from a + module (not from the module type) is now illegal; previously this + created an unnamed module, just like invoking the module type did. + [SF bug 563060] + - A new warning PendingDeprecationWarning was added to provide direction on features which are in the process of being deprecated. The warning will not be printed by default. To see the pending