12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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
|