From b5a58c9d1ce258efff717369b287a34fa2fe6af0 Mon Sep 17 00:00:00 2001 From: kannibalox Date: Tue, 18 Jan 2022 11:33:44 -0500 Subject: [PATCH] Hijack requests for pyro* in config files --- src/pyrosimple/util/load_config.py | 8 +++++--- src/pyrosimple/util/pymagic.py | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/pyrosimple/util/load_config.py b/src/pyrosimple/util/load_config.py index f2119689..89ad7708 100644 --- a/src/pyrosimple/util/load_config.py +++ b/src/pyrosimple/util/load_config.py @@ -19,20 +19,19 @@ # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -from __future__ import with_statement -from __future__ import absolute_import import re import glob import errno +import importlib import io +import sys import configparser as ConfigParser from pyrosimple import config, error from pyrosimple.util import os, pymagic - def validate(key, val): """ Validate a configuration value. """ @@ -205,6 +204,9 @@ def _load_py(self, namespace, config_file): """ if config_file and os.path.isfile(config_file): self.LOG.debug("Loading %r..." % (config_file,)) + p = importlib.import_module('pyrosimple') + sys.modules['pyrocore'] = p + sys.modules['pyrobase'] = p exec(compile(open(config_file).read(), config_file, 'exec'), # pylint: disable=exec-used vars(config), namespace) else: diff --git a/src/pyrosimple/util/pymagic.py b/src/pyrosimple/util/pymagic.py index 951b5005..c42926bc 100644 --- a/src/pyrosimple/util/pymagic.py +++ b/src/pyrosimple/util/pymagic.py @@ -43,6 +43,10 @@ def import_name(module_spec, name=None): @return: Requested object. @rtype: object """ + # Hijack requests for pyrocore + if 'pyrocore' in module_spec or 'pyrobase' in module_spec: + module_spec = module_spec.replace('pyrocore', 'pyrosimple') + module_spec = module_spec.replace('pyrobase', 'pyrosimple') # Load module module_name = module_spec if name is None: