Skip to main content

Wrapper for creating vectorized gymnasium environments.

Project description

Ninetails

A wrapper for creating vectorized gymnasium environments.

Installation

pip3 install ninetails

Usage

import gymnasium as gym
import numpy as np

from ninetails import SubProcessVectorGymnasiumEnv


def main() -> None:
    """main.

    Returns:
        None:
    """
    # define your environment using a function that returns the environment here
    env_fns = [lambda i=i: gym.make("MountainCarContinuous-v0") for i in range(4)]

    # create a vectorized environment
    # `strict` is useful here for debugging
    vec_env = SubProcessVectorGymnasiumEnv(env_fns=env_fns, strict=True)

    # define our initial termination and trunction arrays
    terminations, truncations = np.array([False]), np.array([False])

    # reset follows the same signature as a Gymnasium environment
    observations, infos = vec_env.reset(seed=42)

    for step_count in range(5000):
        # sample an action, this is an np.ndarray of [num_envs, *env.action_space.shape]
        actions = vec_env.sample_actions()

        # similarly, the step function follows the same signature as a Gymnasium environment with the following shapes
        # observations: np.ndarray of shape [num_envs, *env.observation_space.shape]
        # rewards: np.ndarray of shape [num_envs, 1]
        # terminations: np.ndarray of shape [num_envs, 1]
        # truncations: np.ndarray of shape [num_envs, 1]
        # infos: tuple[dict[str, Any]]
        observations, rewards, terminations, truncations, infos = vec_env.step(actions)

        # to reset underlying environments
        done_ids = set(terminations.nonzero()[0].tolist() + truncations.nonzero()[0].tolist())
        for id in done_ids:
            # warning, you'll have to handle starting observations yourself here
            reset_obs, reset_info = vec_env.reset(id)


if __name__ == "__main__":
    main()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ninetails-0.0.9.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

ninetails-0.0.9-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file ninetails-0.0.9.tar.gz.

File metadata

  • Download URL: ninetails-0.0.9.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ninetails-0.0.9.tar.gz
Algorithm Hash digest
SHA256 d6680b29a39412503990f9388b1c2244fdeaf7650106a763d46338fd91c3cd42
MD5 edfdd4a5e1905d9196b0fe8a94c9948c
BLAKE2b-256 5a4d77fd50fc44d24a6e3e2da4a130be19e84b51c6103bec5df96a9ff49fe8a7

See more details on using hashes here.

File details

Details for the file ninetails-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: ninetails-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ninetails-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 de51c261537be24fcc960a2a3e9398c825ca0e12cb7564855da0aa11935a701e
MD5 36e11da176a82679852bb6c2ab77ccca
BLAKE2b-256 4e97c0ef2fd744c3b75317737aa4476aa7fabe783bd6660c1f8f9799148bb5b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page