mirror of
https://github.com/Farama-Foundation/Gymnasium.git
synced 2025-07-31 22:04:31 +00:00
Removed dangling print and added disable_print parameter (#137)
Co-authored-by: Mark Towers <mark.m.towers@gmail.com>
This commit is contained in:
@@ -21,7 +21,7 @@ Environments can also be created through python imports.
|
|||||||
|
|
||||||
## All registered environments
|
## All registered environments
|
||||||
|
|
||||||
To find all the registered Gymnasium environments, use the `gymnasium.envs.registry.keys()`.
|
To find all the registered Gymnasium environments, use the `gymnasium.pprint_registry()`.
|
||||||
This will not include environments registered only in OpenAI Gym however can be loaded by `gymnasium.make`.
|
This will not include environments registered only in OpenAI Gym however can be loaded by `gymnasium.make`.
|
||||||
|
|
||||||
## Spec
|
## Spec
|
||||||
@@ -29,3 +29,10 @@ This will not include environments registered only in OpenAI Gym however can be
|
|||||||
```{eval-rst}
|
```{eval-rst}
|
||||||
.. autofunction:: gymnasium.spec
|
.. autofunction:: gymnasium.spec
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Pretty print registry
|
||||||
|
|
||||||
|
```{eval-rst}
|
||||||
|
.. autofunction:: gymnasium.pprint_registry
|
||||||
|
```
|
@@ -60,6 +60,7 @@ napoleon_custom_sections = [("Returns", "params_style")]
|
|||||||
|
|
||||||
# Autodoc
|
# Autodoc
|
||||||
autoclass_content = "both"
|
autoclass_content = "both"
|
||||||
|
autodoc_preserve_defaults = True
|
||||||
|
|
||||||
# -- Options for HTML output -------------------------------------------------
|
# -- Options for HTML output -------------------------------------------------
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
sphinx
|
sphinx
|
||||||
|
sphinx-autobuild
|
||||||
myst-parser
|
myst-parser
|
||||||
sphinx_gallery
|
sphinx_gallery
|
||||||
git+https://github.com/Farama-Foundation/Celshast#egg=furo
|
git+https://github.com/Farama-Foundation/Celshast#egg=furo
|
||||||
|
@@ -708,15 +708,23 @@ def pprint_registry(
|
|||||||
_registry: dict = registry,
|
_registry: dict = registry,
|
||||||
max_rows: int = 10,
|
max_rows: int = 10,
|
||||||
exclude_namespaces: Optional[List[str]] = None,
|
exclude_namespaces: Optional[List[str]] = None,
|
||||||
) -> None:
|
disable_print: bool = False,
|
||||||
"""List the environments currently supported."""
|
) -> Optional[str]:
|
||||||
|
"""Pretty print the environments in the registry.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
_registry: Environment registry to be printed.
|
||||||
|
max_rows: Number of rows per column.
|
||||||
|
exclude_namespaces: Exclude any namespaces from being printed.
|
||||||
|
disable_print: Whether to return a string of all the namespaces and environment IDs
|
||||||
|
instead of printing it to console.
|
||||||
|
"""
|
||||||
|
|
||||||
# Defaultdict to store environment names according to namespace.
|
# Defaultdict to store environment names according to namespace.
|
||||||
namespace_envs = defaultdict(lambda: [])
|
namespace_envs = defaultdict(lambda: [])
|
||||||
max_justify = float("-inf")
|
max_justify = float("-inf")
|
||||||
for env in _registry.values():
|
for env in _registry.values():
|
||||||
namespace, _, _ = parse_env_id(env.id)
|
namespace, _, _ = parse_env_id(env.id)
|
||||||
print(namespace, env.id, env.entry_point)
|
|
||||||
if namespace is None:
|
if namespace is None:
|
||||||
# Since namespace is currently none, use regex to obtain namespace from entrypoints.
|
# Since namespace is currently none, use regex to obtain namespace from entrypoints.
|
||||||
env_entry_point = re.sub(r":\w+", "", env.entry_point)
|
env_entry_point = re.sub(r":\w+", "", env.entry_point)
|
||||||
@@ -756,4 +764,7 @@ def pprint_registry(
|
|||||||
return_str += "\n"
|
return_str += "\n"
|
||||||
return_str += "\n"
|
return_str += "\n"
|
||||||
|
|
||||||
return return_str
|
if disable_print:
|
||||||
|
return return_str
|
||||||
|
else:
|
||||||
|
print(return_str, end="")
|
||||||
|
@@ -10,20 +10,19 @@ def test_pprint_custom_registry():
|
|||||||
"CartPole-v0": gym.envs.registry["CartPole-v0"],
|
"CartPole-v0": gym.envs.registry["CartPole-v0"],
|
||||||
"CartPole-v1": gym.envs.registry["CartPole-v1"],
|
"CartPole-v1": gym.envs.registry["CartPole-v1"],
|
||||||
}
|
}
|
||||||
out = gym.pprint_registry(a)
|
out = gym.pprint_registry(a, disable_print=True)
|
||||||
|
|
||||||
correct_out = """===== classic_control =====
|
correct_out = """===== classic_control =====
|
||||||
CartPole-v0
|
CartPole-v0
|
||||||
CartPole-v1
|
CartPole-v1
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
assert out == correct_out
|
assert out == correct_out
|
||||||
|
|
||||||
|
|
||||||
def test_pprint_registry():
|
def test_pprint_registry():
|
||||||
"""Testing the default registry, with no changes."""
|
"""Testing the default registry, with no changes."""
|
||||||
out = gym.pprint_registry()
|
out = gym.pprint_registry(disable_print=True)
|
||||||
|
|
||||||
correct_out = """===== classic_control =====
|
correct_out = """===== classic_control =====
|
||||||
Acrobot-v1
|
Acrobot-v1
|
||||||
@@ -79,8 +78,7 @@ test/NoHumanOldAPI-v0
|
|||||||
def test_pprint_registry_exclude_namespaces():
|
def test_pprint_registry_exclude_namespaces():
|
||||||
"""Testing the default registry, with no changes."""
|
"""Testing the default registry, with no changes."""
|
||||||
out = gym.pprint_registry(
|
out = gym.pprint_registry(
|
||||||
max_rows=20,
|
max_rows=20, exclude_namespaces=["classic_control"], disable_print=True
|
||||||
exclude_namespaces=["classic_control"],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
correct_out = """===== box2d =====
|
correct_out = """===== box2d =====
|
||||||
@@ -134,7 +132,7 @@ def test_pprint_registry_no_entry_point():
|
|||||||
"""Test registry if there is environment with no entry point."""
|
"""Test registry if there is environment with no entry point."""
|
||||||
|
|
||||||
gym.register("NoNamespaceEnv", "no-entry-point")
|
gym.register("NoNamespaceEnv", "no-entry-point")
|
||||||
out = gym.pprint_registry()
|
out = gym.pprint_registry(disable_print=True)
|
||||||
|
|
||||||
correct_out = """===== classic_control =====
|
correct_out = """===== classic_control =====
|
||||||
Acrobot-v1
|
Acrobot-v1
|
||||||
|
Reference in New Issue
Block a user