From 854afc095f033269795f9593012d2284ae733ca0 Mon Sep 17 00:00:00 2001 From: david-sarah Date: Thu, 14 Jun 2012 21:23:08 +0000 Subject: [PATCH] Suppress DeprecationWarning about twisted.internet.interfaces.IFinishableConsumer. This also unifies the handling of DeprecationWarnings that need to be suppressed globally. refs #1295 --- src/allmydata/__init__.py | 13 ++++--------- src/allmydata/_auto_deps.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/allmydata/__init__.py b/src/allmydata/__init__.py index 083567b3..51af4fe5 100644 --- a/src/allmydata/__init__.py +++ b/src/allmydata/__init__.py @@ -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() diff --git a/src/allmydata/_auto_deps.py b/src/allmydata/_auto_deps.py index 3b602e1a..ddc670e6 100644 --- a/src/allmydata/_auto_deps.py +++ b/src/allmydata/_auto_deps.py @@ -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", -- 2.37.2