Support python 2 parsing

Signed-off-by: Dan Ryan <dan@danryan.co>
This commit is contained in:
Dan Ryan
2018-11-11 23:58:52 -05:00
parent 3984632453
commit 32a6dd38a5
+7 -4
View File
@@ -221,19 +221,22 @@ class SetupInfo(object):
def run_setup(self):
if self.setup_py is not None and self.setup_py.exists():
with cd(self.setup_py.parent), _suppress_distutils_logs():
from setuptools.dist import distutils
save_argv = sys.argv.copy()
try:
if sys.version_info < (3, 5):
save_argv = sys.argv[:]
else:
save_argv = sys.argv.copy()
# This is for you, Hynek
# see https://github.com/hynek/environ_config/blob/69b1c8a/setup.py
try:
global _setup_distribution, _setup_stop_after
_setup_stop_after = "run"
script_name = self.setup_py.as_posix()
g = {"__file__": script_name, "__name__": "__main__"}
l = {}
sys.argv[0] = script_name
sys.argv[1:] = ["egg_info", "--egg-base", self.base_dir]
with open(script_name, 'rb') as f:
exec(f.read(), g)
exec(f.read(), g, l)
finally:
_setup_stop_after = None
sys.argv = save_argv