code: def build_url(
      _server,
      ui=None,
      server_proxy_enabled=None,
      server_proxy_prefix=None,
      host="localhost",
      protocol="http",
  ):  # numpydoc ignore=PR01,RT01
      """Build the URL for the iframe."""
      params = f"?ui={ui}&reconnect=auto" if ui else "?reconnect=auto"
      if server_proxy_enabled is None:
          server_proxy_enabled = (
              pyvista.global_theme.trame.server_proxy_enabled
          )
      if server_proxy_enabled:
          if server_proxy_prefix is None:
              server_proxy_prefix = (
                  pyvista.global_theme.trame.server_proxy_prefix
              )
          # server_proxy_prefix assumes trailing slash
          src = f"{server_proxy_prefix if server_proxy_prefix else ''}{_server.port}/index.html{params}"
      else:
          src = f"{protocol}://{host}:{_server.port}/index.html{params}"
      logger.debug(src)
      return src
  
imports: import asyncio
  import logging
  import os
  import warnings
  from trame.widgets import html, vtk, vuetify, vuetify3
  import pyvista
  from pyvista.trame.ui import UI_TITLE, get_viewer
  from pyvista.trame.views import CLOSED_PLOTTER_ERROR, get_server
label_desc: Use image node_id 2 for calling a global function with example usage: build_url(_server, ui, server_proxy_enabled, server_proxy_prefix, host, protocol) and returns: src