Description: python 3.12 support
Author: Adam Duskett <aduskett@gmail.com>
Last-Update: 2023-08-24
Bug: https://github.com/gorakhargosh/pathtools/pull/14
--- a/setup.py
+++ b/setup.py
@@ -21,13 +21,29 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 # THE SOFTWARE.

+import importlib.machinery
+import importlib.util
 import os
-import imp
+
 from setuptools import setup

-PKG_DIR = 'pathtools'
-version = imp.load_source('version',
-                          os.path.join(PKG_DIR, 'version.py'))
+PKG_DIR = "pathtools"
+
+
+# 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):
     """
@@ -39,24 +55,26 @@ def read_file(filename):
     """
     return open(os.path.join(os.path.dirname(__file__), filename)).read()

-setup(name='pathtools',
-      version=version.VERSION_STRING,
-      description='File system general utilities',
-      long_description=read_file('README'),
-      author="Yesudeep Mangalapilly",
-      author_email="yesudeep@gmail.com",
-      license="MIT License",
-      url="http://github.com/gorakhargosh/pathtools",
-      classifiers=[
-          'Development Status :: 3 - Alpha',
-          'Intended Audience :: Developers',
-          'License :: OSI Approved :: MIT License',
-          'Natural Language :: English',
-          'Operating System :: OS Independent',
-          'Programming Language :: Python',
-          'Topic :: Software Development :: Libraries',
-          'Topic :: System :: Filesystems',
-          'Topic :: Utilities',
-          ],
-      packages=['pathtools']
-      )
+
+setup(
+    name="pathtools",
+    version=version.VERSION_STRING,
+    description="File system general utilities",
+    long_description=read_file("README"),
+    author="Yesudeep Mangalapilly",
+    author_email="yesudeep@gmail.com",
+    license="MIT License",
+    url="http://github.com/gorakhargosh/pathtools",
+    classifiers=[
+        "Development Status :: 3 - Alpha",
+        "Intended Audience :: Developers",
+        "License :: OSI Approved :: MIT License",
+        "Natural Language :: English",
+        "Operating System :: OS Independent",
+        "Programming Language :: Python",
+        "Topic :: Software Development :: Libraries",
+        "Topic :: System :: Filesystems",
+        "Topic :: Utilities",
+    ],
+    packages=["pathtools"],
+)
