From 036c325d3564b5b6f78fa1f831c1e0a5bca5bf84 Mon Sep 17 00:00:00 2001 From: travis-tahoe Date: Mon, 1 Sep 2014 19:39:57 +0100 Subject: [PATCH] Suppress all UserWarnings, not just ones with known messages. refs #2248 Signed-off-by: Daira Hopwood --- src/allmydata/__init__.py | 12 ++++++------ src/allmydata/_auto_deps.py | 39 ++++++++++++++++++------------------- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/src/allmydata/__init__.py b/src/allmydata/__init__.py index 4bafed47..18d15f64 100644 --- a/src/allmydata/__init__.py +++ b/src/allmydata/__init__.py @@ -155,7 +155,7 @@ def normalized_version(verstr, what=None): def get_package_versions_and_locations(): import warnings from _auto_deps import package_imports, global_deprecation_messages, deprecation_messages, \ - user_warning_messages, runtime_warning_messages, warning_imports + runtime_warning_messages, warning_imports def package_dir(srcfile): return os.path.dirname(os.path.dirname(os.path.normcase(os.path.realpath(srcfile)))) @@ -165,13 +165,13 @@ 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 is to suppress various DeprecationWarnings, UserWarnings, and RuntimeWarnings + # This is to suppress all UserWarnings and various DeprecationWarnings and RuntimeWarnings # (listed in _auto_deps.py). + warnings.filterwarnings("ignore", category=UserWarning, append=True) + 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) for msg in runtime_warning_messages: warnings.filterwarnings("ignore", category=RuntimeWarning, message=msg, append=True) try: @@ -181,8 +181,8 @@ 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: + # Leave suppressions for UserWarnings and global_deprecation_messages active. + for ign in runtime_warning_messages + deprecation_messages: warnings.filters.pop() packages = [] diff --git a/src/allmydata/_auto_deps.py b/src/allmydata/_auto_deps.py index 31e0a7be..1c1a0e18 100644 --- a/src/allmydata/_auto_deps.py +++ b/src/allmydata/_auto_deps.py @@ -29,7 +29,11 @@ install_requires = [ # * The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server # rekeying bug http://twistedmatrix.com/trac/ticket/4395 # + # service-identity is necessary for Twisted and pyOpenSSL to be able to + # verify PKI certificates. + # "Twisted >= 11.0.0", + "service-identity", # * foolscap < 0.5.1 had a performance bug which spent O(N**2) CPU for # transferring large mutable files of size N. @@ -71,20 +75,21 @@ install_requires = [ # Includes some indirect dependencies, but does not include allmydata. # These are in the order they should be listed by --version, etc. package_imports = [ - # package name module name - ('foolscap', 'foolscap'), - ('pycryptopp', 'pycryptopp'), - ('zfec', 'zfec'), - ('Twisted', 'twisted'), - ('Nevow', 'nevow'), - ('zope.interface', 'zope.interface'), - ('python', None), - ('platform', None), - ('pyOpenSSL', 'OpenSSL'), - ('simplejson', 'simplejson'), - ('pycrypto', 'Crypto'), - ('pyasn1', 'pyasn1'), - ('mock', 'mock'), + # package name module name + ('foolscap', 'foolscap'), + ('pycryptopp', 'pycryptopp'), + ('zfec', 'zfec'), + ('Twisted', 'twisted'), + ('Nevow', 'nevow'), + ('zope.interface', 'zope.interface'), + ('python', None), + ('platform', None), + ('pyOpenSSL', 'OpenSSL'), + ('simplejson', 'simplejson'), + ('pycrypto', 'Crypto'), + ('pyasn1', 'pyasn1'), + ('mock', 'mock'), + ('service-identity', 'service_identity') ] def require_more(): @@ -118,12 +123,6 @@ deprecation_messages = [ "the sets module is deprecated", ] -user_warning_messages = [ - "Hashing uninitialized InterfaceClass instance", - "Reliable disconnection notification requires pywin32 215 or later", - 'You do not have the service_identity module installed. Please install it from . Without the service_identity module and a recent enough pyOpenSSL tosupport it, Twisted can perform only rudimentary TLS client hostnameverification. Many valid certificate/hostname mappings may be rejected.', -] - runtime_warning_messages = [ "Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", ] -- 2.37.2