Skip to content

Commit

Permalink
fixed depricated wrapper
Browse files Browse the repository at this point in the history
  • Loading branch information
benblack769 committed Mar 14, 2022
1 parent 8b1869c commit f3a773d
Showing 1 changed file with 24 additions and 17 deletions.
41 changes: 24 additions & 17 deletions pettingzoo/utils/deprecated_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,27 @@ def is_env(env_name):


def depricated_handler(env_name, module_path, module_name):
try:
return importlib.import_module(f"{module_name}.{env_name}")
except ImportError:
pass

if not is_env(env_name):
raise ImportError(f"cannot import name '{env_name}' from '{module_name}'")
name, version = env_name.rsplit("_v")

for loader, alt_env_name, is_pkg in pkgutil.iter_modules(module_path):
if is_env(alt_env_name):
alt_name, alt_version = alt_env_name.rsplit("_v")
if alt_name == name:
if int(alt_version) > int(version):
return DeprecatedModule(name, version, alt_version)
else:
raise ImportError(f"cannot import name '{env_name}' from '{module_name}'")
spec = importlib.util.find_spec(f'{module_name}.{env_name}')

if spec is None:
# It wasn't able to find this module
# You should do your deprecation notice here.
if not is_env(env_name):
raise ImportError(f"cannot import name '{env_name}' from '{module_name}'")
name, version = env_name.rsplit("_v")

for loader, alt_env_name, is_pkg in pkgutil.iter_modules(module_path):
if is_env(alt_env_name):
alt_name, alt_version = alt_env_name.rsplit("_v")
if alt_name == name:
if int(alt_version) > int(version):
return DeprecatedModule(name, version, alt_version)
else:
raise ImportError(f"cannot import name '{env_name}' from '{module_name}'")

# This constructs the module but doesn't execute its code
module = importlib.util.module_from_spec(spec)
# This executes the module and will raise any exceptions
# that would typically be raised by just `import blah`
spec.loader.exec_module(module)
return module

0 comments on commit f3a773d

Please sign in to comment.