code: def login(
      api_url: str = typer.Option(
          ..., help="The URL of the Argilla Server to login in to"
      ),
      api_key: str = typer.Option(
          ...,
          prompt="API Key",
          hide_input=True,
          help="The API key for logging into the Argilla Server",
      ),
      workspace: Optional[str] = typer.Option(
          None,
          help="The default workspace over which the operations will be performed",
      ),
      extra_headers: Optional[str] = typer.Option(
          None,
          help="A JSON string with extra headers to be sent in the requests to the Argilla Server",
      ),
  ):
      import json
  
      from argilla.cli.rich import echo_in_panel
      from argilla.client.login import login as login_func
  
      try:
          if extra_headers:
              headers = json.loads(extra_headers)
          else:
              headers = {}
          login_func(
              api_url=api_url,
              api_key=api_key,
              workspace=workspace,
              extra_headers=headers,
          )
      except json.JSONDecodeError as e:
          echo_in_panel(
              "The provided extra headers are not a valid JSON string.",
              title="Extra headers error",
              title_align="left",
              success=False,
          )
          raise typer.Exit(code=1) from e
      except ValueError as e:
          echo_in_panel(
              f"Could not login to the '{api_url}' Argilla server. Please check the provided credentials and try again.",
              title="Login error",
              title_align="left",
              success=False,
          )
          raise typer.Exit(code=1) from e
  
      echo_in_panel(
          f"Logged in successfully to '{api_url}' Argilla server!",
          title="Logged in",
          title_align="left",
      )
  
label_desc: Use image node_id 1 for calling a global function with example usage: login(api_url, api_key, workspace, extra_headers) without return types