From dc89166bee5fb622617a6b28117305e4bb413724 Mon Sep 17 00:00:00 2001 From: Simon Alibert Date: Mon, 25 Mar 2024 15:12:21 +0100 Subject: [PATCH] Upgrade gym to gymnasium --- .github/poetry/cpu/poetry.lock | 40 +------------------ .github/poetry/cpu/pyproject.toml | 2 +- lerobot/common/envs/aloha/env.py | 2 +- lerobot/common/envs/pusht/env.py | 2 +- lerobot/common/envs/pusht/pusht_env.py | 4 +- lerobot/common/envs/pusht/pusht_image_env.py | 2 +- lerobot/common/envs/simxarm/env.py | 1 - .../common/envs/simxarm/simxarm/__init__.py | 4 +- poetry.lock | 40 +------------------ pyproject.toml | 2 +- 10 files changed, 11 insertions(+), 88 deletions(-) diff --git a/.github/poetry/cpu/poetry.lock b/.github/poetry/cpu/poetry.lock index 2f36d01f..ec2b558d 100644 --- a/.github/poetry/cpu/poetry.lock +++ b/.github/poetry/cpu/poetry.lock @@ -793,44 +793,6 @@ files = [ [package.extras] protobuf = ["grpcio-tools (>=1.62.1)"] -[[package]] -name = "gym" -version = "0.26.2" -description = "Gym: A universal API for reinforcement learning environments" -optional = false -python-versions = ">=3.6" -files = [ - {file = "gym-0.26.2.tar.gz", hash = "sha256:e0d882f4b54f0c65f203104c24ab8a38b039f1289986803c7d02cdbe214fbcc4"}, -] - -[package.dependencies] -cloudpickle = ">=1.2.0" -gym_notices = ">=0.0.4" -numpy = ">=1.18.0" - -[package.extras] -accept-rom-license = ["autorom[accept-rom-license] (>=0.4.2,<0.5.0)"] -all = ["ale-py (>=0.8.0,<0.9.0)", "box2d-py (==2.3.5)", "imageio (>=2.14.1)", "lz4 (>=3.1.0)", "matplotlib (>=3.0)", "moviepy (>=1.0.0)", "mujoco (==2.2)", "mujoco_py (>=2.1,<2.2)", "opencv-python (>=3.0)", "pygame (==2.1.0)", "pytest (==7.0.1)", "swig (==4.*)"] -atari = ["ale-py (>=0.8.0,<0.9.0)"] -box2d = ["box2d-py (==2.3.5)", "pygame (==2.1.0)", "swig (==4.*)"] -classic-control = ["pygame (==2.1.0)"] -mujoco = ["imageio (>=2.14.1)", "mujoco (==2.2)"] -mujoco-py = ["mujoco_py (>=2.1,<2.2)"] -other = ["lz4 (>=3.1.0)", "matplotlib (>=3.0)", "moviepy (>=1.0.0)", "opencv-python (>=3.0)"] -testing = ["box2d-py (==2.3.5)", "imageio (>=2.14.1)", "lz4 (>=3.1.0)", "matplotlib (>=3.0)", "moviepy (>=1.0.0)", "mujoco (==2.2)", "mujoco_py (>=2.1,<2.2)", "opencv-python (>=3.0)", "pygame (==2.1.0)", "pytest (==7.0.1)", "swig (==4.*)"] -toy-text = ["pygame (==2.1.0)"] - -[[package]] -name = "gym-notices" -version = "0.0.8" -description = "Notices for gym" -optional = false -python-versions = "*" -files = [ - {file = "gym-notices-0.0.8.tar.gz", hash = "sha256:ad25e200487cafa369728625fe064e88ada1346618526102659b4640f2b4b911"}, - {file = "gym_notices-0.0.8-py3-none-any.whl", hash = "sha256:e5f82e00823a166747b4c2a07de63b6560b1acb880638547e0cabf825a01e463"}, -] - [[package]] name = "gymnasium" version = "0.29.1" @@ -3254,4 +3216,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "2c49c37a048b4298ca81f3c0a304021129148a0b4746208c14117b3423d9a67f" +content-hash = "93c406139c456780b3d309d7ed3d68ea60cc0e8893c1ee717692984e573d3404" diff --git a/.github/poetry/cpu/pyproject.toml b/.github/poetry/cpu/pyproject.toml index d77074ab..586ef210 100644 --- a/.github/poetry/cpu/pyproject.toml +++ b/.github/poetry/cpu/pyproject.toml @@ -42,7 +42,6 @@ torch = {version = "^2.2.1", source = "torch-cpu"} tensordict = {git = "https://github.com/pytorch/tensordict"} torchrl = {git = "https://github.com/pytorch/rl", rev = "13bef426dcfa5887c6e5034a6e9697993fa92c37"} mujoco = "^2.3.7" -gym = "^0.26.2" opencv-python = "^4.9.0.80" diffusers = "^0.26.3" torchvision = {version = "^0.17.1", source = "torch-cpu"} @@ -52,6 +51,7 @@ dm-control = "1.0.14" robomimic = "0.2.0" huggingface-hub = "^0.21.4" gymnasium-robotics = "^1.2.4" +gymnasium = "^0.29.1" [tool.poetry.group.dev.dependencies] diff --git a/lerobot/common/envs/aloha/env.py b/lerobot/common/envs/aloha/env.py index a001ca55..8e735237 100644 --- a/lerobot/common/envs/aloha/env.py +++ b/lerobot/common/envs/aloha/env.py @@ -31,7 +31,7 @@ from lerobot.common.envs.aloha.tasks.sim_end_effector import ( from lerobot.common.envs.aloha.utils import sample_box_pose, sample_insertion_pose from lerobot.common.utils import set_seed -_has_gym = importlib.util.find_spec("gym") is not None +_has_gym = importlib.util.find_spec("gymnasium") is not None class AlohaEnv(AbstractEnv): diff --git a/lerobot/common/envs/pusht/env.py b/lerobot/common/envs/pusht/env.py index 070c718f..22dbef7f 100644 --- a/lerobot/common/envs/pusht/env.py +++ b/lerobot/common/envs/pusht/env.py @@ -18,7 +18,7 @@ from torchrl.envs.libs.gym import _gym_to_torchrl_spec_transform from lerobot.common.envs.abstract import AbstractEnv from lerobot.common.utils import set_seed -_has_gym = importlib.util.find_spec("gym") is not None +_has_gym = importlib.util.find_spec("gymnasium") is not None class PushtEnv(AbstractEnv): diff --git a/lerobot/common/envs/pusht/pusht_env.py b/lerobot/common/envs/pusht/pusht_env.py index 186f9e31..6ef70aec 100644 --- a/lerobot/common/envs/pusht/pusht_env.py +++ b/lerobot/common/envs/pusht/pusht_env.py @@ -1,14 +1,14 @@ import collections import cv2 -import gym +import gymnasium as gym import numpy as np import pygame import pymunk import pymunk.pygame_util import shapely.geometry as sg import skimage.transform as st -from gym import spaces +from gymnasium import spaces from pymunk.vec2d import Vec2d from lerobot.common.envs.pusht.pymunk_override import DrawOptions diff --git a/lerobot/common/envs/pusht/pusht_image_env.py b/lerobot/common/envs/pusht/pusht_image_env.py index 4981eb64..6547835a 100644 --- a/lerobot/common/envs/pusht/pusht_image_env.py +++ b/lerobot/common/envs/pusht/pusht_image_env.py @@ -1,5 +1,5 @@ import numpy as np -from gym import spaces +from gymnasium import spaces from lerobot.common.envs.pusht.pusht_env import PushTEnv diff --git a/lerobot/common/envs/simxarm/env.py b/lerobot/common/envs/simxarm/env.py index 7236e911..9c996139 100644 --- a/lerobot/common/envs/simxarm/env.py +++ b/lerobot/common/envs/simxarm/env.py @@ -20,7 +20,6 @@ from lerobot.common.utils import set_seed MAX_NUM_ACTIONS = 4 _has_gym = importlib.util.find_spec("gymnasium") is not None -# _has_simxarm = importlib.util.find_spec("simxarm") is not None and _has_gym class SimxarmEnv(AbstractEnv): diff --git a/lerobot/common/envs/simxarm/simxarm/__init__.py b/lerobot/common/envs/simxarm/simxarm/__init__.py index 9906ed8d..03928569 100644 --- a/lerobot/common/envs/simxarm/simxarm/__init__.py +++ b/lerobot/common/envs/simxarm/simxarm/__init__.py @@ -1,8 +1,8 @@ from collections import OrderedDict, deque -import gym +import gymnasium as gym import numpy as np -from gym.wrappers import TimeLimit +from gymnasium.wrappers import TimeLimit from lerobot.common.envs.simxarm.simxarm.task.base import Base as Base from lerobot.common.envs.simxarm.simxarm.task.lift import Lift diff --git a/poetry.lock b/poetry.lock index 8bfdeb9b..dcc02891 100644 --- a/poetry.lock +++ b/poetry.lock @@ -783,44 +783,6 @@ files = [ [package.extras] protobuf = ["grpcio-tools (>=1.62.1)"] -[[package]] -name = "gym" -version = "0.26.2" -description = "Gym: A universal API for reinforcement learning environments" -optional = false -python-versions = ">=3.6" -files = [ - {file = "gym-0.26.2.tar.gz", hash = "sha256:e0d882f4b54f0c65f203104c24ab8a38b039f1289986803c7d02cdbe214fbcc4"}, -] - -[package.dependencies] -cloudpickle = ">=1.2.0" -gym_notices = ">=0.0.4" -numpy = ">=1.18.0" - -[package.extras] -accept-rom-license = ["autorom[accept-rom-license] (>=0.4.2,<0.5.0)"] -all = ["ale-py (>=0.8.0,<0.9.0)", "box2d-py (==2.3.5)", "imageio (>=2.14.1)", "lz4 (>=3.1.0)", "matplotlib (>=3.0)", "moviepy (>=1.0.0)", "mujoco (==2.2)", "mujoco_py (>=2.1,<2.2)", "opencv-python (>=3.0)", "pygame (==2.1.0)", "pytest (==7.0.1)", "swig (==4.*)"] -atari = ["ale-py (>=0.8.0,<0.9.0)"] -box2d = ["box2d-py (==2.3.5)", "pygame (==2.1.0)", "swig (==4.*)"] -classic-control = ["pygame (==2.1.0)"] -mujoco = ["imageio (>=2.14.1)", "mujoco (==2.2)"] -mujoco-py = ["mujoco_py (>=2.1,<2.2)"] -other = ["lz4 (>=3.1.0)", "matplotlib (>=3.0)", "moviepy (>=1.0.0)", "opencv-python (>=3.0)"] -testing = ["box2d-py (==2.3.5)", "imageio (>=2.14.1)", "lz4 (>=3.1.0)", "matplotlib (>=3.0)", "moviepy (>=1.0.0)", "mujoco (==2.2)", "mujoco_py (>=2.1,<2.2)", "opencv-python (>=3.0)", "pygame (==2.1.0)", "pytest (==7.0.1)", "swig (==4.*)"] -toy-text = ["pygame (==2.1.0)"] - -[[package]] -name = "gym-notices" -version = "0.0.8" -description = "Notices for gym" -optional = false -python-versions = "*" -files = [ - {file = "gym-notices-0.0.8.tar.gz", hash = "sha256:ad25e200487cafa369728625fe064e88ada1346618526102659b4640f2b4b911"}, - {file = "gym_notices-0.0.8-py3-none-any.whl", hash = "sha256:e5f82e00823a166747b4c2a07de63b6560b1acb880638547e0cabf825a01e463"}, -] - [[package]] name = "gymnasium" version = "0.29.1" @@ -3513,4 +3475,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "abe6fc1c5b99d6f51f2efb0adda0e7cd1fcfe7b2d789879dafa441869e555745" +content-hash = "f5251fd5ddf3f13fce8a8a0c14131a5ff3d1f433d030598b9e4cefdaaddbd4f8" diff --git a/pyproject.toml b/pyproject.toml index d1cdd055..e4b0d5d0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,7 +42,6 @@ torch = "^2.2.1" tensordict = {git = "https://github.com/pytorch/tensordict"} torchrl = {git = "https://github.com/pytorch/rl", rev = "13bef426dcfa5887c6e5034a6e9697993fa92c37"} mujoco = "2.3.7" -gym = "^0.26.2" opencv-python = "^4.9.0.80" diffusers = "^0.26.3" torchvision = "^0.17.1" @@ -51,6 +50,7 @@ dm-control = "1.0.14" huggingface-hub = {extras = ["hf-transfer"], version = "^0.21.4"} robomimic = "0.2.0" gymnasium-robotics = "^1.2.4" +gymnasium = "^0.29.1" [tool.poetry.group.dev.dependencies]