@@ -432,7 +432,6 @@ def _build_env_factory(self) -> Callable[[], Any]:
432432 Preference order:
433433 1) Use provided env_factory
434434 2) Use generic env_client_cls
435- 3) Fallback to BrowserGymEnv (if importable)
436435 """
437436 if self ._provided_env_factory is not None :
438437 return self ._provided_env_factory
@@ -477,79 +476,8 @@ def _generic_factory():
477476 )
478477 return _generic_factory
479478
480- # Fallback: try BrowserGymEnv if available
481- try :
482- from envs .browsergym_env import BrowserGymEnv # type: ignore
483- except Exception as _e :
484- raise RuntimeError (
485- "No env_factory nor env_client_cls provided, and default BrowserGymEnv not available. "
486- "Provide env_client_cls/env_factory or install the BrowserGym client."
487- ) from _e
488-
489- def _make_env_vars (selected_task : Optional [str ]) -> Dict [str , str ]:
490- vars_default : Dict [str , str ] = {
491- "BROWSERGYM_BENCHMARK" : str (self ._benchmark ),
492- "BROWSERGYM_HEADLESS" : "true" if self ._headless else "false" ,
493- "BROWSERGYM_VIEWPORT_WIDTH" : str (self ._viewport_width ),
494- "BROWSERGYM_VIEWPORT_HEIGHT" : str (self ._viewport_height ),
495- "BROWSERGYM_TIMEOUT" : str (int (self ._timeout_ms )),
496- "BROWSERGYM_OBS_AXTREE" : "1" ,
497- "BROWSERGYM_OBS_PRUNED_HTML" : "1" ,
498- "BROWSERGYM_RETURN_INFO" : "1" ,
499- }
500- if selected_task :
501- vars_default ["BROWSERGYM_TASK_NAME" ] = str (selected_task )
502- if self ._miniwob_url :
503- vars_default ["MINIWOB_URL" ] = str (self ._miniwob_url )
504- if self ._env_vars :
505- vars_default .update ({k : str (v ) for k , v in self ._env_vars .items ()})
506- return vars_default
507-
508- def _browsergym_factory ():
509- if self ._env_base_url :
510- try :
511- print (f"[OpenEnvRolloutProcessor] Using BrowserGymEnv base_url={ self ._env_base_url } " )
512- except Exception :
513- pass
514- return BrowserGymEnv (
515- base_url = self ._env_base_url ,
516- request_timeout_s = self ._request_timeout_s ,
517- default_headers = self ._default_headers ,
518- )
519- # Rotate tasks per num_generations group to mimic GRPO grouping
520- selected_task = None
521- if self ._tasks :
522- idx = self ._env_create_idx
523- self ._env_create_idx = idx + 1
524- group = idx // max (1 , self ._num_generations )
525- selected_task = self ._tasks [group % len (self ._tasks )]
526- try :
527- print (f"[OpenEnvRolloutProcessor] Selected task='{ selected_task or '(default)' } '" )
528- except Exception :
529- pass
530- env_vars_final = _make_env_vars (selected_task )
531- docker_kwargs : Dict [str , Any ] = {"env_vars" : env_vars_final }
532- if self ._docker_port is not None :
533- docker_kwargs ["port" ] = int (self ._docker_port )
534- if self ._hub_repo_id :
535- try :
536- print (f"[OpenEnvRolloutProcessor] BrowserGymEnv.from_hub repo_id='{ self ._hub_repo_id } '" )
537- except Exception :
538- pass
539- return BrowserGymEnv .from_hub (
540- self ._hub_repo_id ,
541- provider = self ._provider ,
542- ** docker_kwargs ,
543- )
544- else :
545- try :
546- print (f"[OpenEnvRolloutProcessor] BrowserGymEnv.from_docker_image image='{ self ._docker_image } '" )
547- except Exception :
548- pass
549- return BrowserGymEnv .from_docker_image (
550- self ._docker_image ,
551- provider = self ._provider ,
552- ** docker_kwargs ,
553- )
554-
555- return _browsergym_factory
479+ # No fallback: require an env_factory or env_client_cls
480+ raise RuntimeError (
481+ "OpenEnvRolloutProcessor requires either env_factory or env_client_cls. "
482+ "Provide one of these to construct the environment."
483+ )
0 commit comments