Make the Distribution() constructor forgiving of unknown keyword
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.
This commit is contained in:
parent
699799e6f3
commit
ff4ad9a1ce
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue