Tianshou/tianshou/env/utils.py

29 lines
714 B
Python
Raw Normal View History

from typing import TYPE_CHECKING, Any, Tuple, Union
2020-03-11 09:09:56 +08:00
import cloudpickle
import gymnasium
import numpy as np
from tianshou.env.pettingzoo_env import PettingZooEnv
if TYPE_CHECKING:
import gym
ENV_TYPE = Union[gymnasium.Env, "gym.Env", PettingZooEnv]
gym_new_venv_step_type = Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray,
np.ndarray]
2020-03-11 09:09:56 +08:00
class CloudpickleWrapper(object):
"""A cloudpickle wrapper used in SubprocVectorEnv."""
2020-04-04 21:02:06 +08:00
def __init__(self, data: Any) -> None:
2020-03-11 09:09:56 +08:00
self.data = data
2020-03-11 09:38:14 +08:00
def __getstate__(self) -> str:
2020-03-11 09:09:56 +08:00
return cloudpickle.dumps(self.data)
2020-03-11 09:38:14 +08:00
def __setstate__(self, data: str) -> None:
2020-03-11 09:09:56 +08:00
self.data = cloudpickle.loads(data)