]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Make the Distribution() constructor forgiving of unknown keyword
authorAndrew M. Kuchling <amk@amk.ca>
Thu, 31 Oct 2002 13:22:41 +0000 (13:22 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Thu, 31 Oct 2002 13:22:41 +0000 (13:22 +0000)
arguments, triggering a warning instead of raising an exception.  (In
1.5.2/2.0, it will print to stderr.)

Bugfix candidate for all previous versions.  This changes behaviour,
but the old behaviour wasn't very useful.  If Distutils version X+1
adds a new keyword argument, using the new keyword means your setup.py
file won't work with Distutils version X any more.

Lib/distutils/dist.py

index 92cb8320da344782b1c7fa71bd21bea6fd786a6d..c71cb36a94506990f805e8cd8e0ee38b7885a06d 100644 (file)
@@ -12,6 +12,12 @@ __revision__ = "$Id$"
 import sys, os, string, re
 from types import *
 from copy import copy
+
+try:
+    import warnings
+except:
+    warnings = None
+
 from distutils.errors import *
 from distutils.fancy_getopt import FancyGetopt, translate_longopt
 from distutils.util import check_environ, strtobool, rfc822_escape
@@ -206,8 +212,11 @@ class Distribution:
                 elif hasattr(self, key):
                     setattr(self, key, val)
                 else:
-                    raise DistutilsSetupError, \
-                          "invalid distribution option '%s'" % key
+                    msg = "Unknown distribution option: %s" % repr(key)
+                    if warnings is not None:
+                        warnings.warn(msg)
+                    else:
+                        sys.stderr.write(msg + "\n")
 
         self.finalize_options()