| From e2372bbecdf46a100b09126f2951431c1929637b Mon Sep 17 00:00:00 2001 |
| From: Adam Duskett <adam.duskett@amarulasolutions.com> |
| Date: Tue, 24 Oct 2023 08:59:21 +0200 |
| Subject: [PATCH] Replace imp |
| |
| The imp module has been removed in python 3.12.0. |
| |
| This change has also been tested with Python 3.9.2 on Debian 11. |
| |
| From: https://docs.python.org/3.12/whatsnew/3.12.html#removed, follow the |
| instructions to add the load_source method back into setup.py. |
| |
| Upstream: https://github.com/gorakhargosh/pathtools/pull/14 |
| |
| Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> |
| --- |
| setup.py | 19 ++++++++++++++++--- |
| 1 file changed, 16 insertions(+), 3 deletions(-) |
| |
| diff --git a/setup.py b/setup.py |
| index 4718885..1be0315 100644 |
| --- a/setup.py |
| +++ b/setup.py |
| @@ -22,12 +22,25 @@ |
| # THE SOFTWARE. |
| |
| import os |
| -import imp |
| +import importlib.util |
| +import importlib.machinery |
| from setuptools import setup |
| |
| PKG_DIR = 'pathtools' |
| -version = imp.load_source('version', |
| - os.path.join(PKG_DIR, 'version.py')) |
| + |
| +# From: https://docs.python.org/3.12/whatsnew/3.12.html#removed |
| +def load_source(modname, filename): |
| + loader = importlib.machinery.SourceFileLoader(modname, filename) |
| + spec = importlib.util.spec_from_file_location(modname, filename, loader=loader) |
| + module = importlib.util.module_from_spec(spec) |
| + # The module is always executed and not cached in sys.modules. |
| + # Uncomment the following line to cache the module. |
| + # sys.modules[module.__name__] = module |
| + loader.exec_module(module) |
| + return module |
| + |
| +version = load_source('version', |
| + os.path.join(PKG_DIR, 'version.py')) |
| |
| def read_file(filename): |
| """ |
| -- |
| 2.41.0 |
| |