]> granicus.if.org Git - python/commitdiff
Surprising fix for SF bug 563060: module can be used as base class.
authorGuido van Rossum <guido@python.org>
Tue, 4 Jun 2002 05:58:34 +0000 (05:58 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 4 Jun 2002 05:58:34 +0000 (05:58 +0000)
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.

Misc/NEWS

index c3224dabaad367dbd6670f9c0df8a27770ec5da8..c90dd7f69c67d7886346000b344828c839e0aaa4 100644 (file)
--- 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