Gymnasium

Latest version: v1.0.0

Safety actively analyzes 683322 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.28.0

This release introduces improved support for the reproducibility of Gymnasium environments, particularly for offline reinforcement learning. `gym.make` can now create the entire environment stack, including wrappers, such that training libraries or offline datasets can specify all of the arguments and wrappers used for an environment. For a majority of standard usage (`gym.make(”EnvironmentName-v0”)`), this will be backwards compatible except for certain fairly uncommon cases (i.e. `env.spec` and `env.unwrapped.spec` return different specs) this is a breaking change. See the reproducibility details section for more info.
In v0.27, we added the `experimental` folder to allow us to develop several new features (wrappers and hardware accelerated environments). We’ve introduced a new experimental `VectorEnv` class. This class does not inherit from the standard `Env` class, and will allow for dramatically more efficient parallelization features. We plan to improve the implementation and add vector based wrappers in several minor releases over the next few months.
Additionally, we have optimized module loading so that PyTorch or Jax are only loaded when users import wrappers that require them, not on `import gymnasium`.
Reproducibility details
In previous versions, Gymnasium supported `gym.make(spec)` where the `spec` is an `EnvSpec` from `gym.spec(str)` or `env.spec` and worked identically to the string based `gym.make(“”)`. In both cases, there was no way to specify additional wrappers that should be applied to an environment. With this release, we added `additional_wrappers` to `EnvSpec` for specifying wrappers applied to the base environment (`TimeLimit`, `PassiveEnvChecker`, `Autoreset` and `ApiCompatibility` are not included as they are specify in other fields).
This additional field will allow users to accurately save or reproduce an environment used in training for a policy or to generate an offline RL dataset. We provide a json converter function (`EnvSpec.to_json`) for saving the `EnvSpec` to a “safe” file type however there are several cases (NumPy data, functions) which cannot be saved to json. In these cases, we recommend pickle but be warned that this can allow remote users to include malicious data in the spec.
python
import gymnasium as gym

env = gym.make("CartPole-v0")
env = gym.wrappers.TimeAwareObservation(env)
print(env)
<TimeAwareObservation<TimeLimit<OrderEnforcing<PassiveEnvChecker<CartPoleEnv<CartPole-v0>>>>>>
env_spec = env.spec
env_spec.pprint()
id=CartPole-v0
reward_threshold=195.0
max_episode_steps=200
additional_wrappers=[
name=TimeAwareObservation, kwargs={}
]

import json
import pickle

json_env_spec = json.loads(env_spec.to_json())
pickled_env_spec = pickle.loads(pickle.dumps(env_spec))
recreated_env = gym.make(json_env_spec)
print(recreated_env)
<TimeAwareObservation<TimeLimit<OrderEnforcing<PassiveEnvChecker<CartPoleEnv<CartPole-v0>>>>>>
Be aware that the `TimeAwareObservation` was included by `make`

To support this type of recreation, wrappers must inherit from `gym.utils.RecordConstructorUtils` to allow `gym.make` to know what arguments to create the wrapper with. Gymnasium has implemented this for all built-in wrappers but for external projects, should be added to each wrapper. To do this, call `gym.utils.RecordConstructorUtils.__init__(self, …)` in the first line of the wrapper’s constructor with identical l keyword arguments as passed to the wrapper’s constructor, except for `env`. As an example see the [Atari Preprocessing wrapper](https://github.com/Farama-Foundation/Gymnasium/blob/8c167b868dd386ac1eb4bbe2fb25da3da174c75d/gymnasium/experimental/wrappers/atari_preprocessing.py#L65)
For a more detailed discussion, see the original PRs - https://github.com/Farama-Foundation/Gymnasium/pull/292 and https://github.com/Farama-Foundation/Gymnasium/pull/355
Other Major Changes
* In Gymnasium v0.26, the `GymV22Compatibility` environment was added to support Gym-based environments in Gymnasium. However, the name was incorrect as the env supported Gym’s v0.21 API, not v0.22, therefore, we have updated it to `GymV21Compatibility` to accurately reflect the API supported. https://github.com/Farama-Foundation/Gymnasium/pull/282
* The `Sequence` space allows for a dynamic number of elements in an observation or action space sample. To make this more efficient, we added a `stack` argument which can support which can support a more efficient representation of an element than a `tuple`, which was what was previously supported. https://github.com/Farama-Foundation/Gymnasium/pull/284
* `Box.sample` previously would clip incorrectly for up-bounded spaces such that 0 could never be sampled if the dtype was discrete or boolean. This is fixed such that 0 can be sampled in these cases. https://github.com/Farama-Foundation/Gymnasium/pull/249
* If `jax` or `pytorch` was installed then on `import gymnasium` both of these modules would also be loaded causing significant slow downs in load time. This is now fixed such that `jax` and `torch` are only loaded when particular wrappers is loaded by the user. https://github.com/Farama-Foundation/Gymnasium/pull/323
* In v0.26, we added parameters for `Wrapper` to allow different observation and action types to be specified for the wrapper and its sub-environment. However, this raised type issues with pyright and mypy, this is now fixed through Wrapper having four generic arguments, `[ObsType, ActType, WrappedEnvObsType, WrappedEnvActType]`. https://github.com/Farama-Foundation/Gymnasium/pull/337
* In v0.25 and 0.v26 several new space types were introduced, `Text`, `Graph` and `Sequence` however the vector utility functions were not updated to support these spaces. Support for these spaces has been added to the experimental vector space utility functions: `batch_space`, `concatenate`, `iterate` and `create_empty_array`. https://github.com/Farama-Foundation/Gymnasium/pull/223
* Due to a lack of testing the experimental stateful observation wrappers (`FrameStackObservation`, `DelayObservation` and `TimeAwareObservation`) did not work as expected. These wrappers are now fixed and testing has been added. https://github.com/Farama-Foundation/Gymnasium/pull/224

Minor changes
* Allow the statistics of NormalizeX wrappers to be disabled and enabled for use during evaluation by raphajaner in https://github.com/Farama-Foundation/Gymnasium/pull/268
* Fix AttributeError in lunar_lander.py by DrRyanHuang in https://github.com/Farama-Foundation/Gymnasium/pull/278
* Add testing for docstrings (doctest) such that docstrings match implementations by valentin-cnt in https://github.com/Farama-Foundation/Gymnasium/pull/281
* Type hint fixes and added `__all__` dunder by howardh in https://github.com/Farama-Foundation/Gymnasium/pull/321
* Fix type hints errors in gymnasium/spaces by valentin-cnt in https://github.com/Farama-Foundation/Gymnasium/pull/327
* Update the experimental vector shared memory util functions by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/339
* Change Gymnasium Notices to Farama Notifications by jjshoots in https://github.com/Farama-Foundation/Gymnasium/pull/332
* Added Jax-based Blackjack environment by balisujohn in https://github.com/Farama-Foundation/Gymnasium/pull/338

Documentation changes
* Fix references of the MultiBinary and MultiDiscrete classes in documentation by Matyasch in https://github.com/Farama-Foundation/Gymnasium/pull/279
* Add Comet integration by nerdyespresso in https://github.com/Farama-Foundation/Gymnasium/pull/304
* Update atari documentation by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/330
* Document Box integer bounds by mihaic in https://github.com/Farama-Foundation/Gymnasium/pull/331
* Add docstring parser to remove duplicate in Gymnasium website by valentin-cnt in https://github.com/Farama-Foundation/Gymnasium/pull/329
* Fix a grammatical mistake in basic usage page by keyb0ardninja in https://github.com/Farama-Foundation/Gymnasium/pull/333
* Update docs/README.md to link to a new CONTRIBUTING.md for docs by mgoulao in https://github.com/Farama-Foundation/Gymnasium/pull/340
* `MuJoCo/Ant` clarify the lack of `use_contact_forces` on v3 (and older) by Kallinteris-Andreas in https://github.com/Farama-Foundation/Gymnasium/pull/342

What's Changed

Thank you to our new contributors in this release: Matyasch, DrRyanHuang, nerdyespresso, khoda81, howardh, mihaic, and keyb0ardninja.

**Full Changelog**: https://github.com/Farama-Foundation/Gymnasium/compare/v0.27.1...v0.28.0

0.27.1

Release Notes

Bugs fixed

* Replace `np.bool8` with `np.bool_` for numpy 1.24 deprecation warning by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/221
* Remove shimmy as a core dependency by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/272
* Fix silent bug in ResizeObservation for 2-dimensional observations. by ianyfan in https://github.com/Farama-Foundation/Gymnasium/pull/230 and by RedTachyon in https://github.com/Farama-Foundation/Gymnasium/pull/254
* Change env checker assertation to warning by jjshoots in https://github.com/Farama-Foundation/Gymnasium/pull/215
* Revert `make` error when render mode is used without metadata render modes by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/216
* Update prompt messages for extra dependencies by XuehaiPan in https://github.com/Farama-Foundation/Gymnasium/pull/250
* Fix return type of `AsyncVectorEnv.reset` by younik in https://github.com/Farama-Foundation/Gymnasium/pull/252
* Update the jumpy error to specify the pip install is jax-jumpy by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/255
* Fix type annotations of `callable` to `Callable` by ianyfan in https://github.com/Farama-Foundation/Gymnasium/pull/259
* Fix experimental normalize reward wrapper by rafaelcp in https://github.com/Farama-Foundation/Gymnasium/pull/277

New features/improvements

* Improve LunarLander-v2 `step` performance by >1.5x by PaulMest in https://github.com/Farama-Foundation/Gymnasium/pull/235
* Added vector env support to StepAPICompatibility wrapper by nidhishs in https://github.com/Farama-Foundation/Gymnasium/pull/238
* Allow sequence to accept stacked np arrays if the feature space is Box by jjshoots in https://github.com/Farama-Foundation/Gymnasium/pull/241
* Improve the warning when an error is raised from a plugin by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/225
* Add changelog (release notes) to the website by mgoulao in https://github.com/Farama-Foundation/Gymnasium/pull/257
* Implement RecordVideoV0 by younik in https://github.com/Farama-Foundation/Gymnasium/pull/246
* Add explicit error messages when unflatten discrete and multidiscrete fail by PierreMardon in https://github.com/Farama-Foundation/Gymnasium/pull/267

Documentation updates
* Added doctest to CI and fixed all existing errors in docstrings by valentin-cnt in https://github.com/Farama-Foundation/Gymnasium/pull/274
* Add a tutorial for vectorized envs using A2C. by till2 in https://github.com/Farama-Foundation/Gymnasium/pull/234
* Fix `MuJoCo.Humanoid` action description by Kallinteris-Andreas in https://github.com/Farama-Foundation/Gymnasium/pull/206
* `Ant` `use_contact_forces` obs and reward DOC by Kallinteris-Andreas in https://github.com/Farama-Foundation/Gymnasium/pull/218
* `MuJoCo.Reacher-v4` doc fixes by Kallinteris-Andreas in https://github.com/Farama-Foundation/Gymnasium/pull/219
* Mention truncation in the migration guide by RedTachyon in https://github.com/Farama-Foundation/Gymnasium/pull/105
* docs(tutorials): fixed environment creation link by lpizzinidev in https://github.com/Farama-Foundation/Gymnasium/pull/244
* `Mujoco/Hooper` doc minor typo fix by Kallinteris-Andreas in https://github.com/Farama-Foundation/Gymnasium/pull/247
* Add comment describing what convolve does in A2C tutorial by metric-space in https://github.com/Farama-Foundation/Gymnasium/pull/264
* Fix environment versioning in README.md by younik in https://github.com/Farama-Foundation/Gymnasium/pull/270
* Add Tutorials galleries by mgoulao in https://github.com/Farama-Foundation/Gymnasium/pull/258

Thanks to the new contributors to Gymnasium, if you want to get involved, join our discord server. Linked in the readme.
* PaulMest made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/235
* nidhishs made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/238
* lpizzinidev made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/244
* ianyfan made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/230
* metric-space made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/264
* PierreMardon made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/267
* valentin-cnt made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/274
* rafaelcp made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/277

**Full Changelog**: https://github.com/Farama-Foundation/Gymnasium/compare/v0.27.0...v0.27.1

0.27.0

Release Notes

Gymnasium 0.27.0 is our first major release of Gymnasium. It has several significant new features, and numerous small bug fixes and code quality improvements as we work through our backlog. There should be no breaking changes beyond dropping Python 3.6 support and remove the mujoco `Viewer` class in favor of a `MujocoRendering` class. You should be able to upgrade your code that's using Gymnasium 0.26.x to 0.27.0 with little-to-no-effort.

Like always, our development roadmap is publicly available [here](https://github.com/Farama-Foundation/Gymnasium/issues/12) so you can follow our future plans. The only large breaking changes that are still planned are switching selected environments to use hardware accelerated physics engines and our long standing plans for overhauling the vector API and built-in wrappers.

This release notably includes an entirely new part of the library: `gymnasium.experimental`. We are adding new features, wrappers and functional environment API discussed below for users to test and try out to find bugs and provide feedback.

New Wrappers

These new wrappers, accessible in `gymnasium.experimental.wrappers`, see the full list in https://gymnasium.farama.org/main/api/experimental/ are aimed to replace the wrappers in gymnasium v0.30.0 and contain several improvements
* (Work in progress) Support arbitrarily complex observation / action spaces. As RL has advanced, action and observation spaces are becoming more complex and the current wrappers were not implemented with this mind.
* Support for Jax-based environments. With hardware accelerated environments, i.e. Brax, written in Jax and similar PyTorch based programs, NumPy is not the only game in town anymore for writing environments. Therefore, these upgrades will use [Jumpy](https://github.com/farama-Foundation/jumpy), a project developed by Farama Foundation to provide automatic compatibility for NumPy, Jax and in the future PyTorch data for a large subset of the NumPy functions.
* More wrappers. Projects like [Supersuit](https://github.com/farama-Foundation/supersuit) aimed to bring more wrappers for RL, however, many users were not aware of the wrappers, so we plan to move the wrappers into Gymnasium. If we are missing common wrappers from the list provided above, please create an issue and we would be interested in adding it.
* Versioning. Like environments, the implementation details of wrappers can cause changes in agent performance. Therefore, we propose adding version numbers to all wrappers, i.e., `LambaActionV0`. We don't expect these version numbers to change regularly and will act similarly to environment version numbers. This should ensure that all users know when significant changes could affect your agent's performance for environments and wrappers. Additionally, we hope that this will improve reproducibility of RL in the future, which is critical for academia.
* In v28, we aim to rewrite the VectorEnv to not inherit from Env, as a result new vectorized versions of the wrappers will be provided.

Core developers: gianlucadecola, RedTachyon, pseudo-rnd-thoughts

Functional API

The `Env` class provides a very generic structure for environments to be written in allowing high flexibility in the program structure. However, this limits the ability to efficiently vectorize environments, compartmentalize the environment code, etc. Therefore, the `gymnasium.experimental.FuncEnv` provides a much more strict structure for environment implementation with stateless functions, for every stage of the environment implementation. This class does not inherit from `Env` and requires a translation / compatibility class for doing this. We already provide a `FuncJaxEnv` for converting jax-based `FuncEnv` to `Env`. We hope this will help improve the readability of environment implementations along with potential speed-ups for users that vectorize their code.

This API is very experimental so open to changes in the future. We are interested in feedback from users who try to use the API which we believe will be in particular interest to users exploring RL planning, model-based RL and modifying environment functions like the rewards.

Core developers: RedTachyon, pseudo-rnd-thoughts, balisujohn

Other Major changes

* Refactor Mujoco Rendering mechanisms to use a separate thread for OpenGL. Remove `Viewer` in favor of `MujocoRenderer` which offscreen, human and other render mode can use by rodrigodelazcano in https://github.com/Farama-Foundation/Gymnasium/pull/112
* Add deprecation warning to `gym.make(..., apply_env_compatibility=True)` in favour of `gym.make("GymV22Environment", env_id="...")` by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/125
* Add `gymnasium.pprint_registry()` for pretty printing the gymnasium registry by kad99kev in https://github.com/Farama-Foundation/Gymnasium/pull/124
* Changes `Discrete.dtype` to `np.int64` such that samples are `np.int64` not python ints. by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/141
* Add migration guide for OpenAI Gym v21 to v26 by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/72
* Add complete type hinting of `core.py` for `Env`, `Wrapper` and more by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/39
* Add complete type hinting for all spaces in `gymnasium.spaces` by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/37
* Make window in `play()` resizable by Markus28 in https://github.com/Farama-Foundation/Gymnasium/pull/190
* Add REINFORCE implementation tutorial by siddarth-c in https://github.com/Farama-Foundation/Gymnasium/pull/155

Bug fixes and documentation changes

* Remove auto close in `VideoRecorder` wrapper by younik in https://github.com/Farama-Foundation/Gymnasium/pull/42
* Change `seeding.np_random` error message to report seed type by theo-brown in https://github.com/Farama-Foundation/Gymnasium/pull/74
* Include shape in MujocoEnv error message by ikamensh in https://github.com/Farama-Foundation/Gymnasium/pull/83
* Add pretty Feature/GitHub issue form by tobirohrer in https://github.com/Farama-Foundation/Gymnasium/pull/89
* Added testing for the render return data in `check_env` and `PassiveEnvChecker` by Markus28 in https://github.com/Farama-Foundation/Gymnasium/pull/117
* Fix docstring and update action space description for classic control environments by Thytu in https://github.com/Farama-Foundation/Gymnasium/pull/123
* Fix `__all__` in root `__init__.py` to specify the correct folders by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/130
* Fix `play()` assertion error by Markus28 in https://github.com/Farama-Foundation/Gymnasium/pull/132
* Update documentation for Frozen Lake `is_slippy` by MarionJS in https://github.com/Farama-Foundation/Gymnasium/pull/136
* Fixed warnings when `render_mode` is None by younik in https://github.com/Farama-Foundation/Gymnasium/pull/143
* Added `is_np_flattenable` property to documentation by Markus28 in https://github.com/Farama-Foundation/Gymnasium/pull/172
* Updated Wrapper documentation by Markus28 in https://github.com/Farama-Foundation/Gymnasium/pull/173
* Updated formatting of spaces documentation by Markus28 in https://github.com/Farama-Foundation/Gymnasium/pull/174
* For FrozenLake, add seeding in random map generation by kir0ul in https://github.com/Farama-Foundation/Gymnasium/pull/139
* Add notes for issues when unflattening samples from flattened spaces by rusu24edward in https://github.com/Farama-Foundation/Gymnasium/pull/164
* Include pusher environment page to website by axb2035 in https://github.com/Farama-Foundation/Gymnasium/pull/171
* Add check in `AsyncVectorEnv` for success before splitting result in `step_wait` by aaronwalsman in https://github.com/Farama-Foundation/Gymnasium/pull/178
* Add documentation for `MuJoCo.Ant-v4.use_contact_forces` by Kallinteris-Andreas in https://github.com/Farama-Foundation/Gymnasium/pull/183
* Fix typos in README.md by cool-RR in https://github.com/Farama-Foundation/Gymnasium/pull/184
* Add documentation for `MuJoCo.Ant` v4 changelog by Kallinteris-Andreas in https://github.com/Farama-Foundation/Gymnasium/pull/186
* Fix `MuJoCo.Ant` action order in documentation by Kallinteris-Andreas in https://github.com/Farama-Foundation/Gymnasium/pull/208
* Add `raise-from` exception for the whole codebase by cool-RR in https://github.com/Farama-Foundation/Gymnasium/pull/205

Behind-the-scenes changes
* Docs Versioning by mgoulao in https://github.com/Farama-Foundation/Gymnasium/pull/73
* Added Atari environments to tests, removed dead code by Markus28 in https://github.com/Farama-Foundation/Gymnasium/pull/78
* Fix missing build steps in versioning workflows by mgoulao in https://github.com/Farama-Foundation/Gymnasium/pull/81
* Small improvements to environments pages by mgoulao in https://github.com/Farama-Foundation/Gymnasium/pull/110
* Update the third-party environment documentation by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/138
* Update docstrings for improved documentation by axb2035 in https://github.com/Farama-Foundation/Gymnasium/pull/160
* Test core dependencies in CI by pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Gymnasium/pull/146
* Update and rerun `pre-commit` hooks for better code quality by XuehaiPan in https://github.com/Farama-Foundation/Gymnasium/pull/179

0.26.3

Release Notes

Note: ale-py (atari) has not updated to Gymnasium yet. Therefore `pip install gymnasium[atari]` will fail, this will be fixed in `v0.27`. In the meantime, use `pip install shimmy[atari]` for the fix.

Bug Fixes
* Added Gym-Gymnasium compatibility converter to allow users to use Gym environments in Gymnasium by RedTachyon in https://github.com/Farama-Foundation/Gymnasium/pull/61
* Modify metadata in the `HumanRendering` and `RenderCollection` wrappers to have the correct metadata by RedTachyon in https://github.com/Farama-Foundation/Gymnasium/pull/35
* Simplified `EpisodeStatisticsRecorder` wrapper by DavidSlayback in https://github.com/Farama-Foundation/Gymnasium/pull/31
* Fix integer overflow in MultiDiscrete.flatten() by olipinski in https://github.com/Farama-Foundation/Gymnasium/pull/55
* Re-add the ability to specify the XML file for Mujoco environments by Kallinteris-Andreas in https://github.com/Farama-Foundation/Gymnasium/pull/70

Documentation change
* Add a tutorial for training an agent in Blackjack by till2 in https://github.com/Farama-Foundation/Gymnasium/pull/64
* A very long list of documentation updates by mgoulao, vairodp, WillDudley, pseudo-rnd-thoughts and jjshoots

**Full Changelog**: https://github.com/Farama-Foundation/Gymnasium/compare/v0.26.2...v0.26.3

Thank you for the new contributors
* vairodp made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/41
* DavidSlayback made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/31
* WillDudley made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/51
* olipinski made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/55
* jjshoots made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/58
* vmoens made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/60
* till2 made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/64
* Kallinteris-Andreas made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/70

0.26.2

This Release is an upstreamed version of [Gym v26.2](https://github.com/openai/gym/releases/tag/0.26.2)

Bugs Fixes
* As reset now returns (obs, info) then in the vector environments, this caused the final step's info to be overwritten. Now, the final observation and info are contained within the info as "final_observation" and "final_info" pseudo-rnd-thoughts
* Adds warnings when trying to render without specifying the render_mode younik
* Updates Atari Preprocessing such that the wrapper can be pickled vermouth1992
* Github CI was hardened to such that the CI just has read permissions sashashura
* Clarify and fix typo in GraphInstance ekalosak

0.26.1

This Release is an upstreamed version of [Gym v26.1](https://github.com/openai/gym/releases/tag/0.26.1)

In addition, the [gym docs](https://github.com/farama-Foundation/gym-docs) repo has been merged in with the new website https://gymnasium.farama.org/

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.