Skip to content

Tuple Spaces do not convert to json properly #62

Open
@zamorarr

Description

@zamorarr

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions