Skip to content

Commit

Permalink
Fix importlib-metadata on Python 3.8 + bump ale-py (#2428)
Browse files Browse the repository at this point in the history
* Bump ale-py -> 0.7.1

* env-plugins: parse module,attr for Python 3.8
  • Loading branch information
JesseFarebro authored Sep 28, 2021
1 parent 8cc7f97 commit ca42b05
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 7 deletions.
22 changes: 16 additions & 6 deletions gym/envs/registration.py
Original file line number Diff line number Diff line change
Expand Up @@ -248,18 +248,28 @@ def namespace(ns):
def load_env_plugins(entry_point="gym.envs"):
# Load third-party environments
for plugin in metadata.entry_points().get(entry_point, []):
if plugin.attr is None:
raise error.Error(
f"Gym environment plugin `{plugin.module}` must specify a function to execute, not a root module"
)
# Python 3.8 doesn't support plugin.module, plugin.attr
# So we'll have to try and parse this ourselves
try:
module, attr = plugin.module, plugin.attr
except AttributeError:
if ":" in plugin.value:
module, attr = plugin.value.split(":", maxsplit=1)
else:
module, attr = plugin.value, None
finally:
if attr is None:
raise error.Error(
f"Gym environment plugin `{module}` must specify a function to execute, not a root module"
)

context = namespace(plugin.name)
if plugin.name == "__internal__":
if plugin.module in plugin_internal_whitelist:
if module in plugin_internal_whitelist:
context = contextlib.nullcontext()
else:
logger.warn(
f"Trying to register an internal environment when `{plugin.module}` is not in the whitelist"
f"Trying to register an internal environment when `{module}` is not in the whitelist"
)

with context:
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

# Environment-specific dependencies.
extras = {
"atari": ["ale-py~=0.7"],
"atari": ["ale-py~=0.7.1"],
"accept-rom-license": ["autorom[accept-rom-license]~=0.4.2"],
"box2d": ["box2d-py==2.3.5", "pyglet>=1.4.0"],
"classic_control": ["pyglet>=1.4.0"],
Expand Down

0 comments on commit ca42b05

Please sign in to comment.