Files
Gymnasium/docs/_scripts/gen_wrapper_table.py

74 lines
1.6 KiB
Python
Raw Permalink Normal View History

import os.path
import gymnasium as gym
exclude_wrappers = {"vector"}
def generate_wrappers():
wrapper_table = ""
for wrapper_name in sorted(gym.wrappers.__all__):
if wrapper_name not in exclude_wrappers:
wrapper_doc = getattr(gym.wrappers, wrapper_name).__doc__.split("\n")[0]
wrapper_table += f""" * - :class:`{wrapper_name}`
- {wrapper_doc}
"""
return wrapper_table
def generate_vector_wrappers():
unique_vector_wrappers = set(gym.wrappers.vector.__all__) - set(
gym.wrappers.__all__
)
vector_table = ""
for vector_name in sorted(unique_vector_wrappers):
vector_doc = getattr(gym.wrappers.vector, vector_name).__doc__.split("\n")[0]
vector_table += f""" * - :class:`{vector_name}`
- {vector_doc}
"""
return vector_table
if __name__ == "__main__":
gen_wrapper_table = generate_wrappers()
gen_vector_table = generate_vector_wrappers()
page = f"""
# List of Gymnasium Wrappers
Gymnasium provides a number of commonly used wrappers listed below. More information can be found on the particular
wrapper in the page on the wrapper type
```{{eval-rst}}
.. py:currentmodule:: gymnasium.wrappers
.. list-table::
:header-rows: 1
* - Name
- Description
{gen_wrapper_table}
```
## Vector only Wrappers
```{{eval-rst}}
.. py:currentmodule:: gymnasium.wrappers.vector
.. list-table::
:header-rows: 1
* - Name
- Description
{gen_vector_table}
```
"""
filename = os.path.join(
os.path.dirname(__file__), "..", "api", "wrappers", "table.md"
)
with open(filename, "w") as file:
file.write(page)