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.
# to use, copy, modify, and distribute this software is granted under
# terms provided in the LICENSE file distributed with this software.
# 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 mudpy # noqa (referenced via exec of string literal below)
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)."""
def load():
"""Import/reload some modules (be careful, as this can result in loops)."""
# attempt to reload the module, assuming it was probably imported
# earlier
try:
# 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:
# must not have been, so import it now
except NameError:
# terms provided in the LICENSE file distributed with this software.
# core objects for the mudpy engine
# terms provided in the LICENSE file distributed with this software.
# core objects for the mudpy engine
+if sys.version_info >= (3, 4):
+ import importlib
+else:
+ # Python 3.3 lacks importlib.reload()
+ import imp as importlib
+
# the world was flagged for a reload of all code/data
if mudpy.misc.universe.reload_flag:
# the world was flagged for a reload of all code/data
if mudpy.misc.universe.reload_flag:
+ importlib.reload(mudpy)
mudpy.misc.reload_data()
mudpy.misc.universe.reload_flag = False
mudpy.misc.reload_data()
mudpy.misc.universe.reload_flag = False