> 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.server_utils

## Module Contents

### Classes

| Name                                                                                      | Description                                                   |
| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| [`BaseServer`](#nemo_gym-server_utils-BaseServer)                                         | All instances of BaseServer are queryable using ServerClient. |
| [`GlobalAIOHTTPAsyncClientConfig`](#nemo_gym-server_utils-GlobalAIOHTTPAsyncClientConfig) | -                                                             |
| [`HeadServer`](#nemo_gym-server_utils-HeadServer)                                         | -                                                             |
| [`ProfilingMiddlewareConfig`](#nemo_gym-server_utils-ProfilingMiddlewareConfig)           | -                                                             |
| [`ProfilingMiddlewareInputConfig`](#nemo_gym-server_utils-ProfilingMiddlewareInputConfig) | -                                                             |
| [`ServerClient`](#nemo_gym-server_utils-ServerClient)                                     | -                                                             |
| [`ServerInstanceDisplayConfig`](#nemo_gym-server_utils-ServerInstanceDisplayConfig)       | -                                                             |
| [`SimpleServer`](#nemo_gym-server_utils-SimpleServer)                                     | -                                                             |
| [`UvicornLoggingConfig`](#nemo_gym-server_utils-UvicornLoggingConfig)                     | -                                                             |

### Functions

| Name                                                                                                                      | Description                          |
| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
| [`get_global_aiohttp_client`](#nemo_gym-server_utils-get_global_aiohttp_client)                                           | -                                    |
| [`get_nemo_gym_fastapi_num_workers`](#nemo_gym-server_utils-get_nemo_gym_fastapi_num_workers)                             | -                                    |
| [`get_response_json`](#nemo_gym-server_utils-get_response_json)                                                           | -                                    |
| [`get_server_url`](#nemo_gym-server_utils-get_server_url)                                                                 | -                                    |
| [`global_aiohttp_client_exit`](#nemo_gym-server_utils-global_aiohttp_client_exit)                                         | -                                    |
| [`initialize_ray`](#nemo_gym-server_utils-initialize_ray)                                                                 | Initialize ray cluster in a process. |
| [`is_global_aiohttp_client_request_debug_enabled`](#nemo_gym-server_utils-is_global_aiohttp_client_request_debug_enabled) | -                                    |
| [`is_global_aiohttp_client_setup`](#nemo_gym-server_utils-is_global_aiohttp_client_setup)                                 | -                                    |
| [`is_nemo_gym_fastapi_entrypoint`](#nemo_gym-server_utils-is_nemo_gym_fastapi_entrypoint)                                 | -                                    |
| [`is_nemo_gym_fastapi_worker`](#nemo_gym-server_utils-is_nemo_gym_fastapi_worker)                                         | -                                    |
| [`maybe_ray_cluster_exit`](#nemo_gym-server_utils-maybe_ray_cluster_exit)                                                 | -                                    |
| [`raise_for_status`](#nemo_gym-server_utils-raise_for_status)                                                             | -                                    |
| [`request`](#nemo_gym-server_utils-request)                                                                               | -                                    |
| [`set_global_aiohttp_client`](#nemo_gym-server_utils-set_global_aiohttp_client)                                           | -                                    |
| [`set_is_nemo_gym_fastapi_entrypoint`](#nemo_gym-server_utils-set_is_nemo_gym_fastapi_entrypoint)                         | -                                    |
| [`set_is_nemo_gym_fastapi_worker`](#nemo_gym-server_utils-set_is_nemo_gym_fastapi_worker)                                 | -                                    |
| [`set_nemo_gym_fastapi_num_workers`](#nemo_gym-server_utils-set_nemo_gym_fastapi_num_workers)                             | -                                    |

### Data

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

[`DISCONNECTED_CLIENT_OS_HELP_TEXT`](#nemo_gym-server_utils-DISCONNECTED_CLIENT_OS_HELP_TEXT)

[`DISCONNECTED_CLIENT_OS_PRINT_INTERVAL`](#nemo_gym-server_utils-DISCONNECTED_CLIENT_OS_PRINT_INTERVAL)

[`IS_NEMO_GYM_FASTAPI_ENTRYPOINT_KEY_NAME`](#nemo_gym-server_utils-IS_NEMO_GYM_FASTAPI_ENTRYPOINT_KEY_NAME)

[`IS_NEMO_GYM_FASTAPI_WORKER_KEY_NAME`](#nemo_gym-server_utils-IS_NEMO_GYM_FASTAPI_WORKER_KEY_NAME)

[`MAX_NUM_TRIES`](#nemo_gym-server_utils-MAX_NUM_TRIES)

[`NEMO_GYM_FASTAPI_NUM_WORKERS`](#nemo_gym-server_utils-NEMO_GYM_FASTAPI_NUM_WORKERS)

[`SESSION_ID_KEY`](#nemo_gym-server_utils-SESSION_ID_KEY)

[`ServerStatus`](#nemo_gym-server_utils-ServerStatus)

[`_GLOBAL_AIOHTTP_CLIENT`](#nemo_gym-server_utils-_GLOBAL_AIOHTTP_CLIENT)

[`_GLOBAL_AIOHTTP_CLIENT_REQUEST_DEBUG`](#nemo_gym-server_utils-_GLOBAL_AIOHTTP_CLIENT_REQUEST_DEBUG)

[`_NEMO_GYM_STARTED_RAY_CLUSTER`](#nemo_gym-server_utils-_NEMO_GYM_STARTED_RAY_CLUSTER)

[`_NUM_CLIENT_OS_ERROR`](#nemo_gym-server_utils-_NUM_CLIENT_OS_ERROR)

[`_NUM_SERVER_DISCONNECTED_ERROR`](#nemo_gym-server_utils-_NUM_SERVER_DISCONNECTED_ERROR)

### API

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

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

  All instances of BaseServer are queryable using ServerClient.

  <ParamField path="config" type="BaseRunServerInstanceConfig" />

  <Anchor id="nemo_gym-server_utils-BaseServer-load_config_from_global_config">
    <CodeBlock links={{"nemo_gym.config_types.BaseRunServerInstanceConfig":"/nemo-gym/nemo_gym/config_types#nemo_gym-config_types-BaseRunServerInstanceConfig"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.BaseServer.load_config_from_global_config() -> nemo_gym.config_types.BaseRunServerInstanceConfig
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    <Badge>
      classmethod
    </Badge>
  </Indent>
</Indent>

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

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

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

  <ParamField path="global_aiohttp_connector_limit" type="int = 100 * 1024" />

  <ParamField path="global_aiohttp_connector_limit_per_host" type="int = 1024" />
</Indent>

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

<Indent>
  **Bases:** [BaseServer](#nemo_gym-server_utils-BaseServer)

  <ParamField path="_server_instances" type="List[dict] = []" />

  <ParamField path="config" type="BaseServerConfig" />

  <Anchor id="nemo_gym-server_utils-HeadServer-get_server_instances">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.HeadServer.get_server_instances() -> typing.List[dict]
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-server_utils-HeadServer-global_config_dict_yaml">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.HeadServer.global_config_dict_yaml() -> str
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    <Badge>
      async
    </Badge>
  </Indent>

  <Anchor id="nemo_gym-server_utils-HeadServer-run_webserver">
    <CodeBlock links={{"nemo_gym.server_utils.HeadServer":"#nemo_gym-server_utils-HeadServer"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.HeadServer.run_webserver() -> typing.Tuple[uvicorn.Server, threading.Thread, nemo_gym.server_utils.HeadServer]
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    <Badge>
      classmethod
    </Badge>
  </Indent>

  <Anchor id="nemo_gym-server_utils-HeadServer-set_server_instances">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.HeadServer.set_server_instances(
          instances: typing.List
      ) -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-server_utils-HeadServer-setup_webserver">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.HeadServer.setup_webserver() -> fastapi.FastAPI
      ```
    </CodeBlock>
  </Anchor>

  <Indent />
</Indent>

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

<Indent>
  **Bases:** [ProfilingMiddlewareInputConfig](#nemo_gym-server_utils-ProfilingMiddlewareInputConfig)

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

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

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

  <ParamField path="profiling_results_dirpath" type="Optional[str] = None" />
</Indent>

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

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

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

  <ParamField path="head_server_config" type="BaseServerConfig" />

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

  <Anchor id="nemo_gym-server_utils-ServerClient-_build_server_base_url">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.ServerClient._build_server_base_url(
          server_config_dict: omegaconf.OmegaConf
      ) -> str
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-server_utils-ServerClient-get">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.ServerClient.get(
          server_name: str,
          url_path: str,
          kwargs: typing.Unpack[aiohttp.client._RequestOptions] = {}
      ) -> aiohttp.ClientResponse
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    <Badge>
      async
    </Badge>

    **Parameters:**

    <ParamField path="server_name" type="str">
      str
      The name of the server you are trying to call.
    </ParamField>

    <ParamField path="url_path" type="str">
      str
      The URL path in the server you are trying to call e.g. "/v1/responses".
    </ParamField>
  </Indent>

  <Anchor id="nemo_gym-server_utils-ServerClient-load_from_global_config">
    <CodeBlock links={{"nemo_gym.config_types.BaseServerConfig":"/nemo-gym/nemo_gym/config_types#nemo_gym-config_types-BaseServerConfig","nemo_gym.server_utils.ServerClient":"#nemo_gym-server_utils-ServerClient"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.ServerClient.load_from_global_config(
          head_server_config: typing.Optional[nemo_gym.config_types.BaseServerConfig] = None
      ) -> nemo_gym.server_utils.ServerClient
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    <Badge>
      classmethod
    </Badge>
  </Indent>

  <Anchor id="nemo_gym-server_utils-ServerClient-load_head_server_config">
    <CodeBlock links={{"nemo_gym.config_types.BaseServerConfig":"/nemo-gym/nemo_gym/config_types#nemo_gym-config_types-BaseServerConfig"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.ServerClient.load_head_server_config() -> nemo_gym.config_types.BaseServerConfig
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    <Badge>
      classmethod
    </Badge>
  </Indent>

  <Anchor id="nemo_gym-server_utils-ServerClient-poll_for_status">
    <CodeBlock links={{"nemo_gym.server_utils.ServerStatus":"#nemo_gym-server_utils-ServerStatus"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.ServerClient.poll_for_status(
          server_name: str
      ) -> nemo_gym.server_utils.ServerStatus
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-server_utils-ServerClient-post">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.ServerClient.post(
          server_name: str,
          url_path: str,
          kwargs: typing.Unpack[aiohttp.client._RequestOptions] = {}
      ) -> aiohttp.ClientResponse
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    <Badge>
      async
    </Badge>

    **Parameters:**

    <ParamField path="server_name" type="str">
      str
      The name of the server you are trying to call.
    </ParamField>

    <ParamField path="url_path" type="str">
      str
      The URL path in the server you are trying to call e.g. "/v1/responses".
    </ParamField>
  </Indent>

  <Anchor id="nemo_gym-server_utils-ServerClient-request">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.ServerClient.request(
          server_name: str,
          url_path: str,
          method: str,
          kwargs: typing.Unpack[aiohttp.client._RequestOptions] = {}
      ) -> aiohttp.ClientResponse
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    <Badge>
      async
    </Badge>
  </Indent>
</Indent>

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

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

  <ParamField path="config_path" type="Optional[str] = None" />

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

  <ParamField path="entrypoint" type="Optional[str] = None" />

  <ParamField path="host" type="Optional[str] = None" />

  <ParamField path="name" type="Optional[str] = None" />

  <ParamField path="pid" type="Optional[int] = None" />

  <ParamField path="port" type="Optional[int] = None" />

  <ParamField path="process_name" type="Optional[str] = None" />

  <ParamField path="server_type" type="Optional[str] = None" />

  <ParamField path="start_time" type="Optional[float] = None" />

  <ParamField path="status" type="Optional[ServerStatus] = None" />

  <ParamField path="uptime_seconds" type="Optional[float] = None" />

  <ParamField path="url" type="Optional[str] = None" />
</Indent>

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

<Indent>
  **Bases:** [BaseServer](#nemo_gym-server_utils-BaseServer)

  <ParamField path="server_client" type="ServerClient" />

  <Anchor id="nemo_gym-server_utils-SimpleServer-get_session_middleware_key">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.SimpleServer.get_session_middleware_key() -> str
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-server_utils-SimpleServer-prefix_server_logs">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.SimpleServer.prefix_server_logs() -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-server_utils-SimpleServer-run_webserver">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.SimpleServer.run_webserver() -> typing.Optional[fastapi.FastAPI]
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    <Badge>
      classmethod
    </Badge>
  </Indent>

  <Anchor id="nemo_gym-server_utils-SimpleServer-set_ulimit">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.SimpleServer.set_ulimit(
          target_soft_limit: int = 65535
      )
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-server_utils-SimpleServer-setup_exception_middleware">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.SimpleServer.setup_exception_middleware(
          app: fastapi.FastAPI
      ) -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-server_utils-SimpleServer-setup_profiling">
    <CodeBlock links={{"nemo_gym.server_utils.ProfilingMiddlewareConfig":"#nemo_gym-server_utils-ProfilingMiddlewareConfig"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.SimpleServer.setup_profiling(
          app: fastapi.FastAPI,
          profiling_config: nemo_gym.server_utils.ProfilingMiddlewareConfig
      ) -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-server_utils-SimpleServer-setup_session_middleware">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.SimpleServer.setup_session_middleware(
          app: fastapi.FastAPI
      ) -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-server_utils-SimpleServer-setup_webserver">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.server_utils.SimpleServer.setup_webserver() -> fastapi.FastAPI
      ```
    </CodeBlock>
  </Anchor>

  <Indent>
    <Badge>
      abstract
    </Badge>
  </Indent>
</Indent>

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

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

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

<Anchor id="nemo_gym-server_utils-get_global_aiohttp_client">
  <CodeBlock links={{"nemo_gym.global_config.GlobalConfigDictParserConfig":"/nemo-gym/nemo_gym/global_config#nemo_gym-global_config-GlobalConfigDictParserConfig","nemo_gym.global_config.GlobalConfigDictParser":"/nemo-gym/nemo_gym/global_config#nemo_gym-global_config-GlobalConfigDictParser"}} showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.get_global_aiohttp_client(
        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
    ) -> aiohttp.ClientSession
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-server_utils-get_nemo_gym_fastapi_num_workers">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.get_nemo_gym_fastapi_num_workers() -> int
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-server_utils-get_response_json">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.get_response_json(
        response: aiohttp.ClientResponse
    ) -> typing.Any
    ```
  </CodeBlock>
</Anchor>

<Indent>
  <Badge>
    async
  </Badge>
</Indent>

<Anchor id="nemo_gym-server_utils-get_server_url">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.get_server_url(
        server_name: str
    ) -> str
    ```
  </CodeBlock>
</Anchor>

<Indent />

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

<Indent />

<Anchor id="nemo_gym-server_utils-initialize_ray">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.initialize_ray() -> None
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Initialize ray cluster in a process.
  We store the Ray address in the global config dict so that child processes can connect to it.
  This avoids the need to start a new Ray cluster in each child process.
  Note: This function will modify the global config dict - update `ray_head_node_address`
</Indent>

<Anchor id="nemo_gym-server_utils-is_global_aiohttp_client_request_debug_enabled">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.is_global_aiohttp_client_request_debug_enabled() -> bool
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-server_utils-is_global_aiohttp_client_setup">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.is_global_aiohttp_client_setup() -> bool
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-server_utils-is_nemo_gym_fastapi_entrypoint">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.is_nemo_gym_fastapi_entrypoint(
        file: str
    ) -> bool
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-server_utils-is_nemo_gym_fastapi_worker">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.is_nemo_gym_fastapi_worker() -> bool
    ```
  </CodeBlock>
</Anchor>

<Indent />

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

<Indent />

<Anchor id="nemo_gym-server_utils-raise_for_status">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.raise_for_status(
        response: aiohttp.ClientResponse
    ) -> None
    ```
  </CodeBlock>
</Anchor>

<Indent>
  <Badge>
    async
  </Badge>
</Indent>

<Anchor id="nemo_gym-server_utils-request">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.request(
        method: str,
        url: str,
        _internal: bool = False,
        kwargs: typing.Unpack[aiohttp.client._RequestOptions] = {}
    ) -> aiohttp.ClientResponse
    ```
  </CodeBlock>
</Anchor>

<Indent>
  <Badge>
    async
  </Badge>
</Indent>

<Anchor id="nemo_gym-server_utils-set_global_aiohttp_client">
  <CodeBlock links={{"nemo_gym.server_utils.GlobalAIOHTTPAsyncClientConfig":"#nemo_gym-server_utils-GlobalAIOHTTPAsyncClientConfig"}} showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.set_global_aiohttp_client(
        cfg: nemo_gym.server_utils.GlobalAIOHTTPAsyncClientConfig
    ) -> aiohttp.ClientSession
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-server_utils-set_is_nemo_gym_fastapi_entrypoint">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.set_is_nemo_gym_fastapi_entrypoint(
        file: str
    ) -> None
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-server_utils-set_is_nemo_gym_fastapi_worker">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.set_is_nemo_gym_fastapi_worker() -> None
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-server_utils-set_nemo_gym_fastapi_num_workers">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.set_nemo_gym_fastapi_num_workers(
        num_workers: int
    ) -> None
    ```
  </CodeBlock>
</Anchor>

<Indent />

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

<Anchor id="nemo_gym-server_utils-DISCONNECTED_CLIENT_OS_HELP_TEXT">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.DISCONNECTED_CLIENT_OS_HELP_TEXT = "We've run into this issue in two different scenarios previously:\n1. Too many o...
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-server_utils-DISCONNECTED_CLIENT_OS_PRINT_INTERVAL">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.DISCONNECTED_CLIENT_OS_PRINT_INTERVAL: int = 100
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-server_utils-IS_NEMO_GYM_FASTAPI_ENTRYPOINT_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.IS_NEMO_GYM_FASTAPI_ENTRYPOINT_KEY_NAME = 'IS_NEMO_GYM_FASTAPI_ENTRYPOINT'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-server_utils-IS_NEMO_GYM_FASTAPI_WORKER_KEY_NAME">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.IS_NEMO_GYM_FASTAPI_WORKER_KEY_NAME = 'IS_NEMO_GYM_FASTAPI_WORKER'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-server_utils-MAX_NUM_TRIES">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.MAX_NUM_TRIES = 3
    ```
  </CodeBlock>
</Anchor>

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

<Anchor id="nemo_gym-server_utils-SESSION_ID_KEY">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.SESSION_ID_KEY = 'session_id'
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-server_utils-ServerStatus">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils.ServerStatus = Union[Literal['success'], Literal['connection_error'], Literal['timeout'], Liter...
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-server_utils-_GLOBAL_AIOHTTP_CLIENT">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils._GLOBAL_AIOHTTP_CLIENT: Union[None, ClientSession] = None
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-server_utils-_GLOBAL_AIOHTTP_CLIENT_REQUEST_DEBUG">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils._GLOBAL_AIOHTTP_CLIENT_REQUEST_DEBUG: bool = False
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-server_utils-_NEMO_GYM_STARTED_RAY_CLUSTER">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils._NEMO_GYM_STARTED_RAY_CLUSTER: bool = False
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-server_utils-_NUM_CLIENT_OS_ERROR">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils._NUM_CLIENT_OS_ERROR: int = 0
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_gym-server_utils-_NUM_SERVER_DISCONNECTED_ERROR">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.server_utils._NUM_SERVER_DISCONNECTED_ERROR: int = 0
    ```
  </CodeBlock>
</Anchor>