From 0eced2d273535577645493340c7319ebf27a559c Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Fri, 16 Oct 2020 03:47:38 -0400 Subject: [PATCH] Use importlib.resources for Python 3.9+ and importlib_resources otherwise This makes it possible to use Mailman 3 in environments where importlib_resources is not available. Signed-off-by: Neal Gompa --- setup.py | 2 +- src/mailman/__init__.py | 5 +++++ src/mailman/testing/__init__.py | 23 +++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index cd3645611..6d871fbfd 100644 --- a/setup.py +++ b/setup.py @@ -121,7 +121,7 @@ case second 'm'. Any other spelling is incorrect.""", 'flufl.bounce', 'flufl.i18n>=2.0', 'flufl.lock>=3.1', - 'importlib_resources>=1.1.0', + 'importlib_resources>=1.1.0 ; python_version<"3.9"', 'gunicorn', 'lazr.config', 'python-dateutil>=2.0', diff --git a/src/mailman/__init__.py b/src/mailman/__init__.py index 2d94288e0..1c760008d 100644 --- a/src/mailman/__init__.py +++ b/src/mailman/__init__.py @@ -37,3 +37,8 @@ if 'build_sphinx' not in sys.argv: # pragma: nocover else: from mailman.core.i18n import initialize initialize() + +# Switch over to the internal importlib.resources module on Python 3.9+ +if sys.version_info >= (3, 9, 0): + import importlib.resources + sys.modules['importlib_resources'] = importlib.resources diff --git a/src/mailman/testing/__init__.py b/src/mailman/testing/__init__.py index e69de29bb..2b2ed536a 100644 --- a/src/mailman/testing/__init__.py +++ b/src/mailman/testing/__init__.py @@ -0,0 +1,23 @@ +# Copyright (C) 2009-2020 by the Free Software Foundation, Inc. +# +# This file is part of GNU Mailman. +# +# GNU Mailman is free software: you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your option) +# any later version. +# +# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# GNU Mailman. If not, see . + +import sys + +# Switch over to the internal importlib.resources module on Python 3.9+ +if sys.version_info >= (3, 9, 0): + import importlib.resources + sys.modules['importlib_resources'] = importlib.resources -- GitLab