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(1)]

    # 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(np.where(terminations).tolist() + np.where(truncations).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.4.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

ninetails-0.0.4-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ninetails-0.0.4.tar.gz
  • Upload date:
  • Size: 8.0 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.4.tar.gz
Algorithm Hash digest
SHA256 92514e319f8f9f10759c3ee3a003f148b152d4598ca67a045bec87cdfbebf9f5
MD5 dc1e14e9a28c2b938be2405349f7a374
BLAKE2b-256 7c0c5443930c77d0d305a18e27e9e81178fefab3dc3661f1fd68ebf18e0e13ba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ninetails-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 8.8 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 bcb08303e2899c7464eb012537bc71e6593514021fe7743a26010074ae5b9c90
MD5 125881e0db2699be13a7811667bcef98
BLAKE2b-256 18cbc95b8538850192a11af13e4e727f93bba35d3d9d4a2b682a13e660a351e0

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