@@ -25,7 +25,7 @@ def unwrap_wrapper(env: gym.Env, wrapper_class: Type[gym.Wrapper]) -> Optional[g
25
25
return None
26
26
27
27
28
- def is_wrapped (env : Type [ gym .Env ] , wrapper_class : Type [gym .Wrapper ]) -> bool :
28
+ def is_wrapped (env : gym .Env , wrapper_class : Type [gym .Wrapper ]) -> bool :
29
29
"""
30
30
Check if a given environment has been wrapped with a given wrapper.
31
31
@@ -73,13 +73,19 @@ def make_vec_env(
73
73
:param wrapper_kwargs: Keyword arguments to pass to the ``Wrapper`` class constructor.
74
74
:return: The wrapped environment
75
75
"""
76
- env_kwargs = {} if env_kwargs is None else env_kwargs
77
- vec_env_kwargs = {} if vec_env_kwargs is None else vec_env_kwargs
78
- monitor_kwargs = {} if monitor_kwargs is None else monitor_kwargs
79
- wrapper_kwargs = {} if wrapper_kwargs is None else wrapper_kwargs
76
+ env_kwargs = env_kwargs or {}
77
+ vec_env_kwargs = vec_env_kwargs or {}
78
+ monitor_kwargs = monitor_kwargs or {}
79
+ wrapper_kwargs = wrapper_kwargs or {}
80
+ assert vec_env_kwargs is not None # for mypy
81
+
82
+ def make_env (rank : int ) -> Callable [[], gym .Env ]:
83
+ def _init () -> gym .Env :
84
+ # For type checker:
85
+ assert monitor_kwargs is not None
86
+ assert wrapper_kwargs is not None
87
+ assert env_kwargs is not None
80
88
81
- def make_env (rank ):
82
- def _init ():
83
89
if isinstance (env_id , str ):
84
90
env = gym .make (env_id , ** env_kwargs )
85
91
else :
@@ -91,7 +97,7 @@ def _init():
91
97
# to have additional training information
92
98
monitor_path = os .path .join (monitor_dir , str (rank )) if monitor_dir is not None else None
93
99
# Create the monitor folder if needed
94
- if monitor_path is not None :
100
+ if monitor_path is not None and monitor_dir is not None :
95
101
os .makedirs (monitor_dir , exist_ok = True )
96
102
env = Monitor (env , filename = monitor_path , ** monitor_kwargs )
97
103
# Optionally, wrap the environment with the provided wrapper
0 commit comments