From 9d92e6288e8e14a7213912b6480e33a72392af07 Mon Sep 17 00:00:00 2001 From: Jeremy Stanley Date: Sat, 29 Jul 2017 15:01:08 +0000 Subject: [PATCH] Use importlib in place of imp As of Python 3.4, the newer importlib module supports the reload() function we need. Switch from the deprecated imp module, except before 3.4 where we will simply pretend imp is importlib for readability. --- mudpy/__init__.py | 10 ++++++++-- mudpy/daemon.py | 9 +++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/mudpy/__init__.py b/mudpy/__init__.py index 2f1bed5..29cb472 100644 --- a/mudpy/__init__.py +++ b/mudpy/__init__.py @@ -4,10 +4,16 @@ # to use, copy, modify, and distribute this software is granted under # terms provided in the LICENSE file distributed with this software. -import imp # noqa (referenced via exec of string literal below) +import sys import mudpy # noqa (referenced via exec of string literal below) +if sys.version_info >= (3, 4): + import importlib # noqa (referenced via exec of string literal below) +else: + # Python 3.3 lacks importlib.reload() + import imp as importlib # noqa (referenced via exec of string literal) + def load(): """Import/reload some modules (be careful, as this can result in loops).""" @@ -21,7 +27,7 @@ def load(): # attempt to reload the module, assuming it was probably imported # earlier try: - exec("imp.reload(%s)" % module) + exec("importlib.reload(%s)" % module) # must not have been, so import it now except NameError: diff --git a/mudpy/daemon.py b/mudpy/daemon.py index 2413204..4bc111f 100644 --- a/mudpy/daemon.py +++ b/mudpy/daemon.py @@ -3,11 +3,16 @@ # terms provided in the LICENSE file distributed with this software. # core objects for the mudpy engine -import imp import sys import mudpy +if sys.version_info >= (3, 4): + import importlib +else: + # Python 3.3 lacks importlib.reload() + import imp as importlib + def main(): @@ -21,7 +26,7 @@ def main(): # the world was flagged for a reload of all code/data if mudpy.misc.universe.reload_flag: - imp.reload(mudpy) + importlib.reload(mudpy) mudpy.misc.reload_data() mudpy.misc.universe.reload_flag = False -- 2.11.0