Skip to main content

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

Release files for ninetails 0.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ninetails 0.0.9
File Size Uploaded
ninetails-0.0.9.tar.gz 8.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ninetails 0.0.9
File Interpreter ABI Platform
ninetails-0.0.9-py3-none-any.whl Python 3 none any Details

Total release size: 17.2 kB

Release files / ninetails-0.0.9.tar.gz

Download URL ninetails-0.0.9.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d6680b29a39412503990f9388b1c2244fdeaf7650106a763d46338fd91c3cd42
BLAKE2b-256 checksum
How to use checksums
5a4d77fd50fc44d24a6e3e2da4a130be19e84b51c6103bec5df96a9ff49fe8a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.4

Release files / ninetails-0.0.9-py3-none-any.whl

Download URL ninetails-0.0.9-py3-none-any.whl
Size 9.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de51c261537be24fcc960a2a3e9398c825ca0e12cb7564855da0aa11935a701e
BLAKE2b-256 checksum
How to use checksums
4e97c0ef2fd744c3b75317737aa4476aa7fabe783bd6660c1f8f9799148bb5b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.0.9 This release

2 release files

0.0.8

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page