mirror of
https://github.com/Farama-Foundation/Gymnasium.git
synced 2025-08-01 22:11:25 +00:00
Fix importlib-metadata on Python 3.8 + bump ale-py (#2428)
* Bump ale-py -> 0.7.1 * env-plugins: parse module,attr for Python 3.8
This commit is contained in:
committed by
GitHub
parent
8cc7f975dd
commit
ca42b05243
@@ -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:
|
||||
# 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 `{plugin.module}` must specify a function to execute, not a root module"
|
||||
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:
|
||||
|
2
setup.py
2
setup.py
@@ -10,7 +10,7 @@ from version import VERSION
|
||||
|
||||
# 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"],
|
||||
|
Reference in New Issue
Block a user