diff --git a/data/extract.py b/data/extract.py index a40ee5c125be6b4e0d6107ab24cb0831d1c5cf06..eca591cf16e9857218fea1bcf364df3c23fb3213 100644 --- a/data/extract.py +++ b/data/extract.py @@ -1,9 +1,21 @@ -from __future__ import print_function import sys -import imp import json +import os import distutils.core +if sys.version_info[:2] >= (3, 3): + from importlib.machinery import SourceFileLoader + def load_source(name, path): + if not os.path.exists(path): + return {} + return vars(SourceFileLoader('mod', path).load_module()) +else: + import imp + def load_source(name, path): + if not os.path.exists(path): + return {} + return vars(imp.load_source('mod', path)) + try: import setuptools except ImportError: @@ -21,7 +33,7 @@ except ImportError: @mock.patch.object(distutils.core, 'setup') def invoke(mock1, mock2): # This is setup.py which calls setuptools.setup - imp.load_source('_target_setup_', sys.argv[-1]) + load_source('_target_setup_', sys.argv[-1]) # called arguments are in `mock_setup.call_args` call_args = mock1.call_args or mock2.call_args args, kwargs = call_args