2022-09-13 20:27:34 +01:00
|
|
|
# Configuration file for the Sphinx documentation builder.
|
|
|
|
#
|
|
|
|
# This file only contains a selection of the most common options. For a full
|
|
|
|
# list see the documentation:
|
|
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
|
|
|
|
|
|
# -- Path setup --------------------------------------------------------------
|
|
|
|
|
|
|
|
# If extensions (or modules to document with autodoc) are in another directory,
|
|
|
|
# add these directories to sys.path here. If the directory is relative to the
|
2023-09-05 11:32:10 +02:00
|
|
|
# documentation root, use os.path.abspath to make it absolute.
|
2022-09-13 20:27:34 +01:00
|
|
|
|
|
|
|
# -- Project information -----------------------------------------------------
|
2022-10-16 14:54:03 +01:00
|
|
|
import os
|
2023-09-05 11:32:10 +02:00
|
|
|
import sys
|
2024-10-11 11:24:21 +03:00
|
|
|
import time
|
2022-10-03 16:00:31 +01:00
|
|
|
|
2023-01-11 14:00:51 -06:00
|
|
|
import sphinx_gallery.gen_rst
|
2025-04-02 21:17:14 +01:00
|
|
|
import sphinx_gallery.sorting
|
2023-11-11 12:52:15 +00:00
|
|
|
from furo.gen_tutorials import generate_tutorials
|
2022-10-16 14:54:03 +01:00
|
|
|
|
2023-09-05 11:32:10 +02:00
|
|
|
|
|
|
|
# Path setup for building from source tree
|
|
|
|
sys.path.insert(0, os.path.abspath(".")) # For building from root
|
|
|
|
sys.path.insert(0, os.path.abspath("..")) # For building from docs dir
|
|
|
|
|
|
|
|
import gymnasium # noqa: E402
|
2022-09-13 20:27:34 +01:00
|
|
|
|
2022-12-04 22:24:02 +08:00
|
|
|
|
2022-09-13 20:27:34 +01:00
|
|
|
project = "Gymnasium"
|
2024-10-11 11:24:21 +03:00
|
|
|
copyright = f"{time.localtime().tm_year} Farama Foundation"
|
2022-09-13 20:27:34 +01:00
|
|
|
author = "Farama Foundation"
|
|
|
|
|
|
|
|
# The full version, including alpha/beta/rc tags
|
|
|
|
release = gymnasium.__version__
|
|
|
|
|
|
|
|
|
|
|
|
# -- General configuration ---------------------------------------------------
|
|
|
|
|
|
|
|
# Add any Sphinx extension module names here, as strings. They can be
|
|
|
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
|
|
|
# ones.
|
|
|
|
extensions = [
|
|
|
|
"sphinx.ext.napoleon",
|
|
|
|
"sphinx.ext.autodoc",
|
|
|
|
"sphinx.ext.githubpages",
|
2023-05-10 11:03:41 +01:00
|
|
|
"sphinx.ext.viewcode",
|
2023-11-07 13:27:25 +00:00
|
|
|
"sphinx.ext.coverage",
|
2022-09-13 20:27:34 +01:00
|
|
|
"myst_parser",
|
2022-10-21 16:36:36 +01:00
|
|
|
"furo.gen_tutorials",
|
2023-01-11 14:00:51 -06:00
|
|
|
"sphinx_gallery.gen_gallery",
|
2023-01-11 10:15:29 -06:00
|
|
|
"sphinx_github_changelog",
|
2022-09-13 20:27:34 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
# Add any paths that contain templates here, relative to this directory.
|
|
|
|
templates_path = ["_templates"]
|
|
|
|
|
|
|
|
# List of patterns, relative to source directory, that match files and
|
|
|
|
# directories to ignore when looking for source files.
|
|
|
|
# This pattern also affects html_static_path and html_extra_path.
|
2023-01-11 14:00:51 -06:00
|
|
|
exclude_patterns = ["tutorials/README.rst"]
|
2022-09-13 20:27:34 +01:00
|
|
|
|
|
|
|
# Napoleon settings
|
|
|
|
napoleon_use_ivar = True
|
|
|
|
napoleon_use_admonition_for_references = True
|
|
|
|
# See https://github.com/sphinx-doc/sphinx/issues/9119
|
|
|
|
napoleon_custom_sections = [("Returns", "params_style")]
|
|
|
|
|
|
|
|
# Autodoc
|
|
|
|
autoclass_content = "both"
|
2022-11-17 20:40:19 +00:00
|
|
|
autodoc_preserve_defaults = True
|
2022-09-13 20:27:34 +01:00
|
|
|
|
2023-02-15 18:26:49 +01:00
|
|
|
|
|
|
|
# This function removes the content before the parameters in the __init__ function.
|
|
|
|
# This content is often not useful for the website documentation as it replicates
|
|
|
|
# the class docstring.
|
|
|
|
def remove_lines_before_parameters(app, what, name, obj, options, lines):
|
|
|
|
if what == "class":
|
2023-03-30 14:23:50 +02:00
|
|
|
# ":param" represents args values
|
2023-02-15 18:26:49 +01:00
|
|
|
first_idx_to_keep = next(
|
2023-03-30 14:23:50 +02:00
|
|
|
(i for i, line in enumerate(lines) if line.startswith(":param")), 0
|
2023-02-15 18:26:49 +01:00
|
|
|
)
|
|
|
|
lines[:] = lines[first_idx_to_keep:]
|
|
|
|
|
|
|
|
|
|
|
|
def setup(app):
|
|
|
|
app.connect("autodoc-process-docstring", remove_lines_before_parameters)
|
|
|
|
|
|
|
|
|
2022-09-13 20:27:34 +01:00
|
|
|
# -- Options for HTML output -------------------------------------------------
|
|
|
|
|
|
|
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
|
|
|
# a list of builtin themes.
|
|
|
|
#
|
|
|
|
html_theme = "furo"
|
|
|
|
html_title = "Gymnasium Documentation"
|
|
|
|
html_baseurl = "https://gymnasium.farama.org"
|
|
|
|
html_copy_source = False
|
|
|
|
html_favicon = "_static/img/favicon.png"
|
|
|
|
html_theme_options = {
|
|
|
|
"light_logo": "img/gymnasium_black.svg",
|
|
|
|
"dark_logo": "img/gymnasium_white.svg",
|
2022-10-13 11:51:56 +01:00
|
|
|
"gtag": "G-6H9C8TWXZ8",
|
2022-10-16 14:54:03 +01:00
|
|
|
"description": "A standard API for reinforcement learning and a diverse set of reference environments (formerly Gym)",
|
|
|
|
"image": "img/gymnasium-github.png",
|
2022-10-25 11:38:43 +01:00
|
|
|
"versioning": True,
|
2023-04-05 14:56:49 +01:00
|
|
|
"source_repository": "https://github.com/Farama-Foundation/Gymnasium/",
|
|
|
|
"source_branch": "main",
|
|
|
|
"source_directory": "docs/",
|
2022-09-13 20:27:34 +01:00
|
|
|
}
|
2022-10-03 16:00:31 +01:00
|
|
|
|
2022-09-13 20:27:34 +01:00
|
|
|
html_static_path = ["_static"]
|
2022-10-03 16:00:31 +01:00
|
|
|
html_css_files = []
|
2022-10-16 14:54:03 +01:00
|
|
|
|
|
|
|
# -- Generate Tutorials -------------------------------------------------
|
|
|
|
|
2023-01-11 14:00:51 -06:00
|
|
|
sphinx_gallery.gen_rst.EXAMPLE_HEADER = """
|
|
|
|
.. DO NOT EDIT.
|
|
|
|
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
|
|
|
|
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
|
|
|
|
.. "{0}"
|
|
|
|
.. LINE NUMBERS ARE GIVEN BELOW.
|
|
|
|
|
|
|
|
.. rst-class:: sphx-glr-example-title
|
|
|
|
|
2025-04-02 21:17:14 +01:00
|
|
|
.. note::
|
2025-07-02 17:33:07 +01:00
|
|
|
This tutorial is compatible with Gymnasium version |release|.
|
2025-04-02 21:17:14 +01:00
|
|
|
|
2023-01-11 14:00:51 -06:00
|
|
|
.. _sphx_glr_{1}:
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
2025-04-02 21:17:14 +01:00
|
|
|
tutorial_sorting = {
|
|
|
|
"tutorials/gymnasium_basics": [
|
|
|
|
"environment_creation",
|
|
|
|
"implementing_custom_wrappers",
|
|
|
|
"handling_time_limits",
|
|
|
|
"load_quadruped_model",
|
|
|
|
"*",
|
|
|
|
],
|
|
|
|
"tutorials/training_agents": [
|
|
|
|
"blackjack_q_learning",
|
|
|
|
"frozenlake_q_learning",
|
|
|
|
"mujoco_reinforce",
|
|
|
|
"vector_a2c",
|
|
|
|
"*",
|
|
|
|
],
|
|
|
|
}
|
|
|
|
|
2023-01-11 14:00:51 -06:00
|
|
|
sphinx_gallery_conf = {
|
|
|
|
"ignore_pattern": r"__init__\.py",
|
|
|
|
"examples_dirs": "./tutorials",
|
|
|
|
"gallery_dirs": "./tutorials",
|
2024-03-07 15:15:42 +00:00
|
|
|
"copyfile_regex": r"./tutorials/.*\.md",
|
2023-01-11 14:00:51 -06:00
|
|
|
"show_signature": False,
|
|
|
|
"show_memory": False,
|
|
|
|
"min_reported_time": float("inf"),
|
2025-04-02 21:17:14 +01:00
|
|
|
# "filename_pattern": f"{re.escape(os.sep)}run_",
|
2023-01-11 15:08:50 -06:00
|
|
|
"default_thumb_file": os.path.join(
|
|
|
|
os.path.dirname(__file__), "_static/img/gymnasium-github.png"
|
|
|
|
),
|
2025-04-02 21:17:14 +01:00
|
|
|
# order the tutorial presentation order
|
|
|
|
"within_subsection_order": sphinx_gallery.sorting.FileNameSortKey,
|
|
|
|
"subsection_order": lambda folder: tutorial_sorting[folder],
|
2023-01-11 14:00:51 -06:00
|
|
|
}
|
2023-01-11 10:15:29 -06:00
|
|
|
|
2023-11-11 12:52:15 +00:00
|
|
|
# All tutorials in the tutorials directory will be generated automatically
|
|
|
|
# by sphinx-gallery.
|
|
|
|
# However, we also want to generate some tutorials without the gallery
|
|
|
|
# and to a more specific location so we use this custom function.
|
|
|
|
generate_tutorials("introduction/*.py", "./introduction")
|
|
|
|
|
2023-01-11 10:15:29 -06:00
|
|
|
# -- Generate Changelog -------------------------------------------------
|
|
|
|
|
|
|
|
sphinx_github_changelog_token = os.environ.get("SPHINX_GITHUB_CHANGELOG_TOKEN")
|