gym-http-api icon indicating copy to clipboard operation
gym-http-api copied to clipboard

Tuple Spaces do not convert to json properly

Open zamorarr opened this issue 7 years ago • 3 comments

Hi. Thanks for making gym available to other languages. I'm currently seeing an error when trying to reset the Blackjack-v0 environment. Here's a reproducible example using curl

# start the server
python gym_http_server.py

# create blackjack instance
curl -d '{"env_id":"Blackjack-v0"}' -H "Content-Type: application/json" -X POST http://127.0.0.1:5000/v1/envs/

# reset instance
curl -X POST http://127.0.0.1:5000/v1/envs/<instance_id>/reset/

The issue I believe is caused when calling env.observation_space.to_jsonable(obs) in reset(). The to_jsonable method expects a list of tuples for Blackjack, not a single tuple.

My current workaround is to check to see if the observation is a tuple and if so, wrap it a list first. This works fine for Blackjack but I haven't tested the other environments.

def reset(self, instance_id):
    env = self._lookup_env(instance_id)
    obs = env.reset()
    if (isinstance(obs, tuple)):
        obs = [obs]
    return env.observation_space.to_jsonable(obs)

zamorarr avatar May 18 '18 13:05 zamorarr

Facing the same issue. I think you should send a PR.

markroxor avatar Sep 03 '18 05:09 markroxor

Submitted a PR, but I don't even know if this repo is still being maintained...

zamorarr avatar Sep 05 '18 01:09 zamorarr

Possibly related to https://github.com/openai/gym/issues/1841

masonlr avatar May 11 '20 17:05 masonlr