3
3
import os
4
4
from types import SimpleNamespace
5
5
6
- import gym .wrappers
7
6
import numpy as np
7
+ from gymnasium import wrappers
8
+
9
+ try :
10
+ from myosuite .utils import gym
11
+ except ModuleNotFoundError :
12
+ pass
13
+
8
14
9
15
from deprl .vendor .tonic import environments
10
16
from deprl .vendor .tonic .utils import logger
11
17
12
18
13
19
def gym_environment (* args , ** kwargs ):
14
20
"""Returns a wrapped Gym environment."""
21
+ if "header" in kwargs :
22
+ kwargs .pop ("header" )
15
23
16
24
def _builder (* args , ** kwargs ):
17
25
return gym .make (* args , ** kwargs )
18
26
19
- return build_environment (_builder , * args , ** kwargs )
27
+ return build_environment (_builder , * args , ** kwargs , header = None )
20
28
21
29
22
30
def bullet_environment (* args , ** kwargs ):
23
31
"""Returns a wrapped PyBullet environment."""
32
+ if "header" in kwargs :
33
+ kwargs .pop ("header" )
24
34
25
35
def _builder (* args , ** kwargs ):
26
36
import pybullet_envs # noqa
27
37
28
38
return gym .make (* args , ** kwargs )
29
39
30
- return build_environment (_builder , * args , ** kwargs )
40
+ return build_environment (_builder , * args , ** kwargs , header = None )
31
41
32
42
33
43
def control_suite_environment (* args , ** kwargs ):
34
44
"""Returns a wrapped Control Suite environment."""
35
45
46
+ if "header" in kwargs :
47
+ kwargs .pop ("header" )
48
+
36
49
def _builder (name , * args , ** kwargs ):
37
50
domain , task = name .split ("-" )
38
51
environment = ControlSuiteEnvironment (
@@ -42,9 +55,9 @@ def _builder(name, *args, **kwargs):
42
55
environment .spec = SimpleNamespace (
43
56
max_episode_steps = time_limit , id = "ostrichrl-dmcontrol"
44
57
)
45
- return gym . wrappers .TimeLimit (environment , time_limit )
58
+ return wrappers .TimeLimit (environment , time_limit )
46
59
47
- return build_environment (_builder , * args , ** kwargs )
60
+ return build_environment (_builder , * args , ** kwargs , header = None )
48
61
49
62
50
63
def build_environment (
@@ -54,6 +67,7 @@ def build_environment(
54
67
time_feature = False ,
55
68
max_episode_steps = "default" ,
56
69
scaled_actions = True ,
70
+ header = None ,
57
71
* args ,
58
72
** kwargs ,
59
73
):
@@ -62,6 +76,8 @@ def build_environment(
62
76
time_feature=True, see https://arxiv.org/pdf/1712.00378.pdf for more
63
77
details.
64
78
"""
79
+ if header is not None :
80
+ exec (header )
65
81
66
82
# Build the environment.
67
83
environment = builder (name , * args , ** kwargs )
@@ -81,7 +97,7 @@ def build_environment(
81
97
82
98
# Remove the TimeLimit wrapper if needed.
83
99
if not terminal_timeouts :
84
- if type (environment ) == gym . wrappers .TimeLimit :
100
+ if type (environment ) == wrappers .TimeLimit :
85
101
environment = environment .env
86
102
87
103
# Add time as a feature if needed.
0 commit comments