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.28.tar.gz (61.6 MB view details)

Uploaded Source

Built Distribution

plangym-0.1.28-py3-none-any.whl (64.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for plangym-0.1.28.tar.gz
Algorithm Hash digest
SHA256 5a4c2cab45c4bae64636dcae83f8ad7ac644dd592bb15e9453bc405382f8499f
MD5 704d2eefb5daa020b375ff5385541140
BLAKE2b-256 277534466eb6865af04144e8d7a72f0332c85a967580c41d35edd3e9d5e2288c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for plangym-0.1.28-py3-none-any.whl
Algorithm Hash digest
SHA256 d255e228e6dec7faeefcd2c77ca3e4a6e2bcbe4edb58acac1689b086513aeed2
MD5 98796e5cecb28b1e449187824a4f83f0
BLAKE2b-256 675e385822fd0db79569aa761756c8f3a1cce4f03eae61f19a472215194f449c

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