Skip to main content

Plangym is an interface to use gymnasium for planning problems. It extends the standard interface to allow setting and recovering the environment states.

Project description

Welcome to Plangym

Documentation Status Code coverage PyPI package Code style: black license: MIT

Plangym is an open source Python library for developing and comparing planning algorithms by providing a standard API to communicate between algorithms and environments, as well as a standard set of environments compliant with that API.

Given that OpenAI's gym has become the de-facto standard in the research community, plangym's API is designed to be as similar as possible to gym's API while allowing to modify the environment state.

Furthermore, it provides additional functionality for stepping the environments in parallel, delayed environment initialization for dealing with environments that are difficult to serialize, compatibility with gym.Wrappers, and more.

Supported environments

Plangym currently supports all the following environments:

  • OpenAI gym classic control environments
  • OpenAI gym Box2D environments
  • OpenAI gym Atari 2600 environments
  • Deepmind's dm_control environments
  • Stable-retro environments

Getting started

Stepping an environment

import plangym
env = plangym.make(name="CartPole-v0")
state, obs, info = env.reset()

state = state.copy()
action = env.action_space.sample()

data = env.step(state=state, action=action)
new_state, observ, reward, end, truncated, info = data

Stepping a batch of states and actions

import plangym
env = plangym.make(name="CartPole-v0")
state, obs, info = env.reset()

states = [state.copy() for _ in range(10)]
actions = [env.action_space.sample() for _ in range(10)]

data = env.step_batch(states=states, actions=actions)
new_states, observs, rewards, ends, truncateds, infos = data

Using parallel steps

import plangym
env = plangym.make(name="MsPacman-v0", n_workers=2)

state, obs, info = env.reset()

states = [state.copy() for _ in range(10)]
actions = [env.action_space.sample() for _ in range(10)]

data =  env.step_batch(states=states, actions=actions)
new_states, observs, rewards, ends, truncateds, infos = data

Installation

TODO: Meanwhile take a look at how we set up the repository in .github/workflows/push.yaml.

License

Plangym is released under the MIT license.

Contributing

Contributions are very welcome! Please check the contributing guidelines before opening a pull request.

If you have any suggestions for improvement, or you want to report a bug please open an issue.

Installing nes-py

Step 1: Install necessary development tools and libraries

sudo apt-get update sudo apt-get install build-essential clang sudo apt-get install libstdc++-10-dev

Step 2: Verify the compiler and include paths

Ensure you are using g++ instead of clang++ if clang++ is not properly configured

export CXX=g++ export CC=gcc

Rebuild the project

rye install nes-py --git=https://github.com/FragileTech/nes-py

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

plangym-0.1.27.tar.gz (61.6 MB view details)

Uploaded Source

Built Distribution

plangym-0.1.27-py3-none-any.whl (65.1 kB view details)

Uploaded Python 3

File details

Details for the file plangym-0.1.27.tar.gz.

File metadata

  • Download URL: plangym-0.1.27.tar.gz
  • Upload date:
  • Size: 61.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for plangym-0.1.27.tar.gz
Algorithm Hash digest
SHA256 dd8059e816906e988dd60a94b94c9eefe8c62e71b2382b9521fcc59ca5fd6fa3
MD5 5276c8e6dbc93f33c40bcc1def9e0fe5
BLAKE2b-256 4e3e645efcb542abf6d4275ed65a1045e5a2eaec95f2dd9e0eb8f71a4e92b1cb

See more details on using hashes here.

File details

Details for the file plangym-0.1.27-py3-none-any.whl.

File metadata

  • Download URL: plangym-0.1.27-py3-none-any.whl
  • Upload date:
  • Size: 65.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for plangym-0.1.27-py3-none-any.whl
Algorithm Hash digest
SHA256 81db3ff7fe612add99358953b4f221c3c19c77117469875a2a7c9e6487f147d4
MD5 ad1d0e7d80029f03cbb19c7931952809
BLAKE2b-256 8b699420a315d8f177dcd5ebdb1a02b4a8553a6a514c3e4041a54777a0783853

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