> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/gym/llms.txt.
> For full documentation content, see https://docs.nvidia.com/nemo/gym/llms-full.txt.

# nemo_gym.global_config

## Module Contents

### Classes

| Name                                                                                   | Description |
| -------------------------------------------------------------------------------------- | ----------- |
| [`GlobalConfigDictParser`](#nemo_gym-global_config-GlobalConfigDictParser)             | -           |
| [`GlobalConfigDictParserConfig`](#nemo_gym-global_config-GlobalConfigDictParserConfig) | -           |

### Functions

| Name                                                                                   | Description                                                                                                                                           |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`_find_open_port_using_range`](#nemo_gym-global_config-_find_open_port_using_range)   | -                                                                                                                                                     |
| [`find_open_port`](#nemo_gym-global_config-find_open_port)                             | -                                                                                                                                                     |
| [`format_almost_server_warning`](#nemo_gym-global_config-format_almost_server_warning) | Format user-friendly warning. Union literal errors are consolidated.                                                                                  |
| [`get_first_server_config_dict`](#nemo_gym-global_config-get_first_server_config_dict) | -                                                                                                                                                     |
| [`get_global_config_dict`](#nemo_gym-global_config-get_global_config_dict)             | This function provides a handle to the global configuration dict `global_config_dict`. We try to have one source of truth for everything in NeMo gym. |
| [`get_hf_token`](#nemo_gym-global_config-get_hf_token)                                 | -                                                                                                                                                     |
| [`get_wandb_run`](#nemo_gym-global_config-get_wandb_run)                               | -                                                                                                                                                     |
| [`set_global_config_dict`](#nemo_gym-global_config-set_global_config_dict)             | -                                                                                                                                                     |

### Data

[`AGENT_REF_KEY_NAME`](#nemo_gym-global_config-AGENT_REF_KEY_NAME)

[`CONFIG_PATHS_KEY_NAME`](#nemo_gym-global_config-CONFIG_PATHS_KEY_NAME)

[`COPY_KEY_NAME`](#nemo_gym-global_config-COPY_KEY_NAME)

[`DEFAULT_HEAD_SERVER_PORT`](#nemo_gym-global_config-DEFAULT_HEAD_SERVER_PORT)

[`DEFAULT_HOST_KEY_NAME`](#nemo_gym-global_config-DEFAULT_HOST_KEY_NAME)

[`DELETE_KEY_KEY_NAME`](#nemo_gym-global_config-DELETE_KEY_KEY_NAME)

[`DISALLOWED_PORTS_KEY_NAME`](#nemo_gym-global_config-DISALLOWED_PORTS_KEY_NAME)

[`DRY_RUN_KEY_NAME`](#nemo_gym-global_config-DRY_RUN_KEY_NAME)

[`ENTRYPOINT_KEY_NAME`](#nemo_gym-global_config-ENTRYPOINT_KEY_NAME)

[`HEAD_SERVER_DEPS_KEY_NAME`](#nemo_gym-global_config-HEAD_SERVER_DEPS_KEY_NAME)

[`HEAD_SERVER_KEY_NAME`](#nemo_gym-global_config-HEAD_SERVER_KEY_NAME)

[`HF_TOKEN_KEY_NAME`](#nemo_gym-global_config-HF_TOKEN_KEY_NAME)

[`INHERIT_FROM_KEY_NAME`](#nemo_gym-global_config-INHERIT_FROM_KEY_NAME)

[`NEMO_GYM_CONFIG_DICT_ENV_VAR_NAME`](#nemo_gym-global_config-NEMO_GYM_CONFIG_DICT_ENV_VAR_NAME)

[`NEMO_GYM_CONFIG_PATH_ENV_VAR_NAME`](#nemo_gym-global_config-NEMO_GYM_CONFIG_PATH_ENV_VAR_NAME)

[`NEMO_GYM_LOG_DIR_KEY_NAME`](#nemo_gym-global_config-NEMO_GYM_LOG_DIR_KEY_NAME)

[`NEMO_GYM_RESERVED_TOP_LEVEL_KEYS`](#nemo_gym-global_config-NEMO_GYM_RESERVED_TOP_LEVEL_KEYS)

[`PIP_INSTALL_VERBOSE_KEY_NAME`](#nemo_gym-global_config-PIP_INSTALL_VERBOSE_KEY_NAME)

[`POLICY_API_KEY_KEY_NAME`](#nemo_gym-global_config-POLICY_API_KEY_KEY_NAME)

[`POLICY_BASE_URL_KEY_NAME`](#nemo_gym-global_config-POLICY_BASE_URL_KEY_NAME)

[`POLICY_MODEL_KEY_NAME`](#nemo_gym-global_config-POLICY_MODEL_KEY_NAME)

[`POLICY_MODEL_NAME_KEY_NAME`](#nemo_gym-global_config-POLICY_MODEL_NAME_KEY_NAME)

[`PORT_RANGE_HIGH_KEY_NAME`](#nemo_gym-global_config-PORT_RANGE_HIGH_KEY_NAME)

[`PORT_RANGE_LOW_KEY_NAME`](#nemo_gym-global_config-PORT_RANGE_LOW_KEY_NAME)

[`PYTHON_VERSION_KEY_NAME`](#nemo_gym-global_config-PYTHON_VERSION_KEY_NAME)

[`RAY_HEAD_NODE_ADDRESS_KEY_NAME`](#nemo_gym-global_config-RAY_HEAD_NODE_ADDRESS_KEY_NAME)

[`RESPONSES_CREATE_PARAMS_KEY_NAME`](#nemo_gym-global_config-RESPONSES_CREATE_PARAMS_KEY_NAME)

[`RESPONSE_KEY_NAME`](#nemo_gym-global_config-RESPONSE_KEY_NAME)

[`ROLLOUT_INDEX_KEY_NAME`](#nemo_gym-global_config-ROLLOUT_INDEX_KEY_NAME)

[`SKIP_VENV_IF_PRESENT_KEY_NAME`](#nemo_gym-global_config-SKIP_VENV_IF_PRESENT_KEY_NAME)

[`TASK_INDEX_KEY_NAME`](#nemo_gym-global_config-TASK_INDEX_KEY_NAME)

[`USE_ABSOLUTE_IP`](#nemo_gym-global_config-USE_ABSOLUTE_IP)

[`UV_CACHE_DIR_KEY_NAME`](#nemo_gym-global_config-UV_CACHE_DIR_KEY_NAME)

[`UV_PIP_SET_PYTHON_KEY_NAME`](#nemo_gym-global_config-UV_PIP_SET_PYTHON_KEY_NAME)

[`UV_VENV_DIR_KEY_NAME`](#nemo_gym-global_config-UV_VENV_DIR_KEY_NAME)

[`_GLOBAL_CONFIG_DICT`](#nemo_gym-global_config-_GLOBAL_CONFIG_DICT)

[`_WANDB_RUN`](#nemo_gym-global_config-_WANDB_RUN)

### API

<Anchor id="nemo_gym-global_config-GlobalConfigDictParser">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    class nemo_gym.global_config.GlobalConfigDictParser()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  **Bases:** `BaseModel`

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-_recursive_index_dict_using_path">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser._recursive_index_dict_using_path(
          dict_config: omegaconf.DictConfig,
          path: typing.List[str]
      ) -> omegaconf.DictConfig
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-_recursively_hide_secrets">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser._recursively_hide_secrets(
          dict_config: omegaconf.DictConfig
      ) -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-_recursively_hide_secrets_helper">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser._recursively_hide_secrets_helper(
          dict_config: omegaconf.DictConfig
      ) -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-_recursively_swap_keys">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser._recursively_swap_keys(
          dict_config: omegaconf.DictConfig
      ) -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-_recursively_swap_keys_helper">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser._recursively_swap_keys_helper(
          dict_config: omegaconf.DictConfig,
          original_dict_config: omegaconf.DictConfig,
          frozen_dict_config: omegaconf.DictConfig
      ) -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-detect_and_report_almost_servers">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser.detect_and_report_almost_servers(
          global_config_dict: omegaconf.DictConfig
      ) -> typing.List[typing.Tuple[str, pydantic.ValidationError]]
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-filter_for_server_instance_configs">
    <CodeBlock links={{"nemo_gym.config_types.ServerInstanceConfig":"/nemo-gym/nemo_gym/config_types#nemo_gym-config_types-ServerInstanceConfig"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser.filter_for_server_instance_configs(
          global_config_dict: omegaconf.DictConfig
      ) -> typing.List[nemo_gym.config_types.ServerInstanceConfig]
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-load_extra_config_paths">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser.load_extra_config_paths(
          config_paths: typing.List[str]
      ) -> typing.Tuple[typing.List[str], typing.List[omegaconf.DictConfig]]
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    Returns the new total config\_paths and the extra configs
  </Indent>

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-parse">
    <CodeBlock links={{"nemo_gym.global_config.GlobalConfigDictParserConfig":"#nemo_gym-global_config-GlobalConfigDictParserConfig"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser.parse(
          parse_config: typing.Optional[nemo_gym.global_config.GlobalConfigDictParserConfig] = None
      ) -> omegaconf.DictConfig
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-parse_global_config_dict_from_cli">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser.parse_global_config_dict_from_cli() -> omegaconf.DictConfig
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-parse_no_environment">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser.parse_no_environment(
          initial_global_config_dict: typing.Optional[omegaconf.DictConfig] = None
      ) -> omegaconf.DictConfig
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-global_config-GlobalConfigDictParser-validate_and_populate_defaults">
    <CodeBlock links={{"nemo_gym.config_types.ServerInstanceConfig":"/nemo-gym/nemo_gym/config_types#nemo_gym-config_types-ServerInstanceConfig"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.global_config.GlobalConfigDictParser.validate_and_populate_defaults(
          server_instance_configs: typing.List[nemo_gym.config_types.ServerInstanceConfig],
          default_host: str,
          port_range_low: int,
          port_range_high: int,
          initial_disallowed_ports: typing.Optional[typing.List[int]] = None
      ) -> typing.List[int]
      ```
    </CodeBlock>
  </Anchor>

  <Indent />
</Indent>

<Anchor id="nemo_gym-global_config-GlobalConfigDictParserConfig">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    class nemo_gym.global_config.GlobalConfigDictParserConfig()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  **Bases:** `BaseModel`

  <ParamField path="NO_MODEL_GLOBAL_CONFIG_DICT" type="DictConfig" />

  <ParamField path="dotenv_path" type="Optional[Path] = None" />

  <ParamField path="hide_secrets" type="bool = False" />

  <ParamField path="initial_global_config_dict" type="Optional[DictConfig] = None" />

  <ParamField path="model_config" type="= ConfigDict(arbitrary_types_allowed=True)" />

  <ParamField path="skip_load_from_cli" type="bool = False" />

  <ParamField path="skip_load_from_dotenv" type="bool = False" />
</Indent>

<Anchor id="nemo_gym-global_config-_find_open_port_using_range">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config._find_open_port_using_range(
        disallowed_ports: typing.List[int],
        port_range_low: int,
        port_range_high: int,
        max_retries: int = 50
    ) -> int
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-global_config-find_open_port">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.find_open_port(
        disallowed_ports: typing.Optional[typing.List[int]] = None,
        max_retries: int = 50
    ) -> int
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-global_config-format_almost_server_warning">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.format_almost_server_warning(
        server_name: str,
        error: pydantic.ValidationError
    ) -> str
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Format user-friendly warning. Union literal errors are consolidated.
  Union discriminator noise is filtered out. Explanation:
  Pydantic validation is quirky- it will report all failures in the union if any union member fails. Example:
  If an agent server contains an invalid license, it will not only show the error for the invalid license in ResponsesAPIAgentServerInstanceConfig, but also missing values for ResponsesAPIModelServerInstanceConfig `responses_api_models` and ResourcesServerInstanceConfig `resources_servers`.
</Indent>

<Anchor id="nemo_gym-global_config-get_first_server_config_dict">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.get_first_server_config_dict(
        global_config_dict: omegaconf.DictConfig,
        top_level_path: str
    ) -> omegaconf.DictConfig
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-global_config-get_global_config_dict">
  <CodeBlock links={{"nemo_gym.global_config.GlobalConfigDictParserConfig":"#nemo_gym-global_config-GlobalConfigDictParserConfig","nemo_gym.global_config.GlobalConfigDictParser":"#nemo_gym-global_config-GlobalConfigDictParser"}} showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.get_global_config_dict(
        global_config_dict_parser_config: typing.Optional[nemo_gym.global_config.GlobalConfigDictParserConfig] = None,
        global_config_dict_parser_cls: typing.Type[nemo_gym.global_config.GlobalConfigDictParser] = GlobalConfigDictParser
    ) -> omegaconf.DictConfig
    ```
  </CodeBlock>
</Anchor>

<Indent>
  This function provides a handle to the global configuration dict `global_config_dict`. We try to have one source of truth for everything in NeMo gym.
  This config is resolved once and only once, immediately on a run command.

  On first initialization, the global config dict will be loaded from the following sources in order of priority (later items are higher priority):

  1. Configuration yamls specified in `config_paths` parameter.
  2. Configuration (usually sensitive values like API keys, etc) from a local `.env.yaml` file.
  3. Command line argument configuration.

  Validation is performed on the passed in configs:

  1. If a host or port is not provided for a server, defaults will be provided. Ports are resolved by the OS.
  2. If there are server reference configs, the respective server names and types will be validated against the remainder of the config.

  Then, the global config dict will be cached and reused.

  If this function is run by a child server of the main proc, that child will have been spun up with an environment variable with key NEMO\_GYM\_CONFIG\_DICT\_ENV\_VAR\_NAME. The config dict will be read directly off this variable, cached, and returned with no additional validation.
</Indent>

<Anchor id="nemo_gym-global_config-get_hf_token">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.get_hf_token() -> typing.Optional[str]
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-global_config-get_wandb_run">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.get_wandb_run() -> typing.Optional[wandb.Run]
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-global_config-set_global_config_dict">
  <CodeBlock links={{"nemo_gym.global_config.GlobalConfigDictParserConfig":"#nemo_gym-global_config-GlobalConfigDictParserConfig","nemo_gym.global_config.GlobalConfigDictParser":"#nemo_gym-global_config-GlobalConfigDictParser"}} showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.set_global_config_dict(
        global_config_dict_parser_config: typing.Optional[nemo_gym.global_config.GlobalConfigDictParserConfig] = None,
        global_config_dict_parser_cls: typing.Type[nemo_gym.global_config.GlobalConfigDictParser] = GlobalConfigDictParser
    ) -> None
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-global_config-AGENT_REF_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.AGENT_REF_KEY_NAME = 'agent_ref'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-CONFIG_PATHS_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.CONFIG_PATHS_KEY_NAME = 'config_paths'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-COPY_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.COPY_KEY_NAME = '_copy'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-DEFAULT_HEAD_SERVER_PORT">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.DEFAULT_HEAD_SERVER_PORT = 11000
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-DEFAULT_HOST_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.DEFAULT_HOST_KEY_NAME = 'default_host'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-DELETE_KEY_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.DELETE_KEY_KEY_NAME = '_delete_key'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-DISALLOWED_PORTS_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.DISALLOWED_PORTS_KEY_NAME = 'disallowed_ports'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-DRY_RUN_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.DRY_RUN_KEY_NAME = 'dry_run'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-ENTRYPOINT_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.ENTRYPOINT_KEY_NAME = 'entrypoint'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-HEAD_SERVER_DEPS_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.HEAD_SERVER_DEPS_KEY_NAME = 'head_server_deps'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-HEAD_SERVER_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.HEAD_SERVER_KEY_NAME = 'head_server'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-HF_TOKEN_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.HF_TOKEN_KEY_NAME = 'hf_token'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-INHERIT_FROM_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.INHERIT_FROM_KEY_NAME = '_inherit_from'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-NEMO_GYM_CONFIG_DICT_ENV_VAR_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.NEMO_GYM_CONFIG_DICT_ENV_VAR_NAME = 'NEMO_GYM_CONFIG_DICT'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-NEMO_GYM_CONFIG_PATH_ENV_VAR_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.NEMO_GYM_CONFIG_PATH_ENV_VAR_NAME = 'NEMO_GYM_CONFIG_PATH'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-NEMO_GYM_LOG_DIR_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.NEMO_GYM_LOG_DIR_KEY_NAME = 'nemo_gym_log_dir'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-NEMO_GYM_RESERVED_TOP_LEVEL_KEYS">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.NEMO_GYM_RESERVED_TOP_LEVEL_KEYS = [CONFIG_PATHS_KEY_NAME, ENTRYPOINT_KEY_NAME, DEFAULT_HOST_KEY_NAME, HEAD_SERVER_...
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-PIP_INSTALL_VERBOSE_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.PIP_INSTALL_VERBOSE_KEY_NAME = 'pip_install_verbose'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-POLICY_API_KEY_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.POLICY_API_KEY_KEY_NAME = 'policy_api_key'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-POLICY_BASE_URL_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.POLICY_BASE_URL_KEY_NAME = 'policy_base_url'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-POLICY_MODEL_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.POLICY_MODEL_KEY_NAME = 'policy_model'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-POLICY_MODEL_NAME_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.POLICY_MODEL_NAME_KEY_NAME = 'policy_model_name'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-PORT_RANGE_HIGH_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.PORT_RANGE_HIGH_KEY_NAME = 'port_range_high'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-PORT_RANGE_LOW_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.PORT_RANGE_LOW_KEY_NAME = 'port_range_low'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-PYTHON_VERSION_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.PYTHON_VERSION_KEY_NAME = 'python_version'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-RAY_HEAD_NODE_ADDRESS_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.RAY_HEAD_NODE_ADDRESS_KEY_NAME = 'ray_head_node_address'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-RESPONSES_CREATE_PARAMS_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.RESPONSES_CREATE_PARAMS_KEY_NAME = 'responses_create_params'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-RESPONSE_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.RESPONSE_KEY_NAME = 'response'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-ROLLOUT_INDEX_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.ROLLOUT_INDEX_KEY_NAME = '_ng_rollout_index'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-SKIP_VENV_IF_PRESENT_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.SKIP_VENV_IF_PRESENT_KEY_NAME = 'skip_venv_if_present'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-TASK_INDEX_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.TASK_INDEX_KEY_NAME = '_ng_task_index'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-USE_ABSOLUTE_IP">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.USE_ABSOLUTE_IP = 'use_absolute_ip'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-UV_CACHE_DIR_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.UV_CACHE_DIR_KEY_NAME = 'uv_cache_dir'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-UV_PIP_SET_PYTHON_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.UV_PIP_SET_PYTHON_KEY_NAME = 'uv_pip_set_python'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-UV_VENV_DIR_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config.UV_VENV_DIR_KEY_NAME = 'uv_venv_dir'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-_GLOBAL_CONFIG_DICT">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config._GLOBAL_CONFIG_DICT = None
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-global_config-_WANDB_RUN">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.global_config._WANDB_RUN: Optional[Run] = None
    ```
  </CodeBlock>
</Anchor>