From f221dbefd8f63937a3d5bb99177556ae9cef8a5f Mon Sep 17 00:00:00 2001 From: Steve Heim Date: Mon, 26 Feb 2024 16:11:10 -0500 Subject: [PATCH] remove some deprecated code and pin pytest <8 Pytest 8 breaks import order of pytorch and isaacgym, which has to happen a certain due to some singleton issues I don't understand. --- gym/utils/task_registry.py | 7 ++- learning/env/__init__.py | 33 ------------ learning/env/vec_env.py | 75 ---------------------------- learning/runners/BaseRunner.py | 3 +- learning/runners/my_runner.py | 3 +- learning/runners/on_policy_runner.py | 3 +- requirements.txt | 2 +- 7 files changed, 7 insertions(+), 119 deletions(-) delete mode 100644 learning/env/__init__.py delete mode 100644 learning/env/vec_env.py diff --git a/gym/utils/task_registry.py b/gym/utils/task_registry.py index f137fa2..6c2025b 100644 --- a/gym/utils/task_registry.py +++ b/gym/utils/task_registry.py @@ -37,7 +37,6 @@ from datetime import datetime from typing import Tuple -from learning.env import VecEnv from learning.runners import * # noqa: F403 from learning.utils import set_discount_from_horizon @@ -67,7 +66,7 @@ def __init__(self): def register( self, name: str, - task_class: VecEnv, + task_class, env_cfg: BaseConfig, train_cfg: LeggedRobotRunnerCfg, ): @@ -75,7 +74,7 @@ def register( self.env_cfgs[name] = env_cfg self.train_cfgs[name] = train_cfg - def get_task_class(self, name: str) -> VecEnv: + def get_task_class(self, name: str): return self.task_classes[name] def get_cfgs(self, name) -> Tuple[LeggedRobotCfg, LeggedRobotRunnerCfg]: @@ -217,7 +216,7 @@ def make_sim(self): self.sim["params"], ) - def make_env(self, name, env_cfg) -> VecEnv: + def make_env(self, name, env_cfg): if name in self.task_classes: task_class = self.get_task_class(name) else: diff --git a/learning/env/__init__.py b/learning/env/__init__.py deleted file mode 100644 index 60fb029..0000000 --- a/learning/env/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. -# All rights reserved. -# SPDX-License-Identifier: BSD-3-Clause -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# 3. Neither the name of the copyright holder nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -# THE POSSIBILITY OF SUCH DAMAGE. -# -# Copyright (c) 2021 ETH Zurich, Nikita Rudin - -from .vec_env import VecEnv diff --git a/learning/env/vec_env.py b/learning/env/vec_env.py deleted file mode 100644 index 09ecd90..0000000 --- a/learning/env/vec_env.py +++ /dev/null @@ -1,75 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. -# All rights reserved. -# SPDX-License-Identifier: BSD-3-Clause -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# 3. Neither the name of the copyright holder nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -# THE POSSIBILITY OF SUCH DAMAGE. -# -# Copyright (c) 2021 ETH Zurich, Nikita Rudin - -from abc import ABC, abstractmethod -import torch -from typing import Tuple, Union - - -# minimal interface of the environment -class VecEnv(ABC): - num_envs: int - num_obs: int - num_privileged_obs: int - num_actions: int - max_episode_length: int - privileged_obs_buf: torch.Tensor - obs_buf: torch.Tensor - rew_buf: torch.Tensor - reset_buf: torch.Tensor - episode_length_buf: torch.Tensor # current episode duration - extras: dict - device: torch.device - - @abstractmethod - def step( - self, actions: torch.Tensor - ) -> Tuple[ - torch.Tensor, - Union[torch.Tensor, None], - torch.Tensor, - torch.Tensor, - dict, - ]: - pass - - @abstractmethod - def reset(self, env_ids: Union[list, torch.Tensor]): - pass - - @abstractmethod - def get_observations(self) -> torch.Tensor: - pass - - @abstractmethod - def get_privileged_observations(self) -> Union[torch.Tensor, None]: - pass diff --git a/learning/runners/BaseRunner.py b/learning/runners/BaseRunner.py index 627ba58..c046285 100644 --- a/learning/runners/BaseRunner.py +++ b/learning/runners/BaseRunner.py @@ -1,12 +1,11 @@ import torch from learning.algorithms import PPO from learning.modules import ActorCritic -from learning.env import VecEnv from learning.utils import remove_zero_weighted_rewards class BaseRunner: - def __init__(self, env: VecEnv, train_cfg, device="cpu"): + def __init__(self, env, train_cfg, device="cpu"): self.device = device self.env = env self.parse_train_cfg(train_cfg) diff --git a/learning/runners/my_runner.py b/learning/runners/my_runner.py index 74b842d..e555b52 100644 --- a/learning/runners/my_runner.py +++ b/learning/runners/my_runner.py @@ -1,5 +1,4 @@ import torch -from learning.env import VecEnv from learning.utils import Logger from learning.utils import PotentialBasedRewardShaping @@ -11,7 +10,7 @@ class MyRunner(OnPolicyRunner): - def __init__(self, env: VecEnv, train_cfg, device="cpu"): + def __init__(self, env, train_cfg, device="cpu"): super().__init__(env, train_cfg, device) logger.initialize( self.env.num_envs, diff --git a/learning/runners/on_policy_runner.py b/learning/runners/on_policy_runner.py index 9820d74..e2fb524 100644 --- a/learning/runners/on_policy_runner.py +++ b/learning/runners/on_policy_runner.py @@ -1,6 +1,5 @@ import os import torch -from learning.env import VecEnv from learning.utils import Logger @@ -10,7 +9,7 @@ class OnPolicyRunner(BaseRunner): - def __init__(self, env: VecEnv, train_cfg, device="cpu"): + def __init__(self, env, train_cfg, device="cpu"): super().__init__(env, train_cfg, device) logger.initialize( self.env.num_envs, diff --git a/requirements.txt b/requirements.txt index d08d918..e2a6fe2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,7 @@ torch>=2.0 torchvision torchaudio pygame -pytest +pytest<8.0 mss ruff pre-commit