]> granicus.if.org Git - python/commitdiff
Allow unknown keyword arguments to the Extension class, and warn about them.
authorAndrew M. Kuchling <amk@amk.ca>
Wed, 13 Nov 2002 20:54:21 +0000 (20:54 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Wed, 13 Nov 2002 20:54:21 +0000 (20:54 +0000)
Lib/distutils/extension.py

index 7fbeb4e1f14e72fb151f02aa4217099020ac38a8..9dc316a1a5b3fae57b78993984b55c1ee71708cd 100644 (file)
@@ -10,6 +10,10 @@ __revision__ = "$Id$"
 import os, string
 from types import *
 
+try:
+    import warnings
+except ImportError:
+    warnings = None
 
 # This class is really only used by the "build_ext" command, so it might
 # make sense to put it in distutils.command.build_ext.  However, that
@@ -93,8 +97,8 @@ class Extension:
                   export_symbols=None,
                   depends=None,
                   language=None,
+                  **kw                      # To catch unknown keywords
                  ):
-
         assert type(name) is StringType, "'name' must be a string"
         assert (type(sources) is ListType and
                 map(type, sources) == [StringType]*len(sources)), \
@@ -115,6 +119,15 @@ class Extension:
         self.depends = depends or []
         self.language = language
 
+        # If there are unknown keyword options, warn about them
+        if len(kw):
+            L = kw.keys() ; L.sort()
+            L = map(repr, L)
+            msg = "Unknown Extension options: " + string.join(L, ', ')
+            if warnings is not None:
+                warnings.warn(msg)
+            else:
+                sys.stderr.write(msg + '\n')
 # class Extension