Suppress DeprecationWarning about twisted.internet.interfaces.IFinishableConsumer...
authordavid-sarah <david-sarah@jacaranda.org>
Thu, 14 Jun 2012 21:23:08 +0000 (21:23 +0000)
committerdavid-sarah <david-sarah@jacaranda.org>
Thu, 14 Jun 2012 21:23:08 +0000 (21:23 +0000)
src/allmydata/__init__.py
src/allmydata/_auto_deps.py

index 083567b3ec061234586b2aada6e13498d4b57284..51af4fe5ddb870955f76510e931709aebc6235b5 100644 (file)
@@ -144,7 +144,7 @@ def normalized_version(verstr, what=None):
 
 def get_package_versions_and_locations():
     import warnings
-    from _auto_deps import package_imports, deprecation_messages, \
+    from _auto_deps import package_imports, global_deprecation_messages, deprecation_messages, \
         user_warning_messages, runtime_warning_messages, warning_imports
 
     def package_dir(srcfile):
@@ -155,16 +155,10 @@ def get_package_versions_and_locations():
     # or any other bug that causes sys.path to be set up incorrectly. Therefore we
     # must import the packages in order to check their versions and paths.
 
-    # This warning is generated by twisted, PyRex, and possibly other packages,
-    # but can happen at any time, not only when they are imported. See ticket #1129.
-    warnings.filterwarnings("ignore", category=DeprecationWarning,
-        message="BaseException.message has been deprecated as of Python 2.6",
-        append=True)
-
     # This is to suppress various DeprecationWarnings, UserWarnings, and RuntimeWarnings
-    # (listed in _auto_deps.py) that occur when modules are imported.
+    # (listed in _auto_deps.py).
 
-    for msg in deprecation_messages:
+    for msg in global_deprecation_messages + deprecation_messages:
         warnings.filterwarnings("ignore", category=DeprecationWarning, message=msg, append=True)
     for msg in user_warning_messages:
         warnings.filterwarnings("ignore", category=UserWarning, message=msg, append=True)
@@ -177,6 +171,7 @@ def get_package_versions_and_locations():
             except ImportError:
                 pass
     finally:
+        # Leave suppressions for global_deprecation_messages active.
         for ign in runtime_warning_messages + user_warning_messages + deprecation_messages:
             warnings.filters.pop()
 
index 3b602e1a69e3cbe8a7d4bc89ece7796af1d5e2b2..ddc670e6fef155f18eafd40d4a1b33bfbec55628 100644 (file)
@@ -89,6 +89,16 @@ def require_more():
 
 require_more()
 
+
+# These are suppressed globally:
+
+global_deprecation_messages = [
+    "BaseException.message has been deprecated as of Python 2.6",
+    "twisted.internet.interfaces.IFinishableConsumer was deprecated in Twisted 11.1.0: Please use IConsumer (and IConsumer.unregisterProducer) instead.",
+]
+
+# These are suppressed while importing dependencies:
+
 deprecation_messages = [
     "the sha module is deprecated; use the hashlib module instead",
     "object.__new__\(\) takes no parameters",