From 30a18d3f2facb32032ab8036b212111f6f715131 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Thu, 7 Feb 2019 16:39:57 +0300 Subject: [PATCH] Build(setup.py): Use `importlib` instead of deprecated `imp` for Python 3.4+ --- project_template/setup.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/project_template/setup.py b/project_template/setup.py index 2ca49ae..8297efa 100755 --- a/project_template/setup.py +++ b/project_template/setup.py @@ -1,8 +1,24 @@ #!/usr/bin/env python -from imp import load_source from os.path import abspath, dirname, join from setuptools import setup +import sys + +if sys.version_info[:2] == (2, 7): + from imp import load_source + +elif sys.version_info >= (3, 4): + from importlib.machinery import SourceFileLoader + import types + + def load_source(fullname, path): + loader = SourceFileLoader(fullname, path) + loaded = types.ModuleType(loader.name) + loader.exec_module(loaded) + return loaded + +else: + raise ImportError("{project} requires Python 2.7 or 3.4+") versionpath = join(abspath(dirname(__file__)), '{project}', '__version__.py') {project}_version = load_source('{project}_version', versionpath) -- 2.39.2