code: def submit(
      ctx: typer.Context,
      script: str,
      arguments: Ann[
          Optional[List[str]],
          Arg(
              help="You should use -- if you want to pass option-like arguments through."
          ),
      ] = None,
      files: Ann[
          Optional[List[str]],
          Opt(
              help="Files or directories to add to the working directory of the job."
          ),
      ] = None,
      name: Ann[str, Opt(help="The name of the batch.")] = "",
      image_name: Ann[
          Optional[str],
          Opt(
              help="Name of Docker image for the job (default: hailgenetics/hail)"
          ),
      ] = None,
      output: StructuredFormatPlusTextOption = StructuredFormatPlusText.TEXT,
  ):
      """Submit a batch with a single job that runs SCRIPT with the arguments ARGUMENTS.
  
      If you wish to pass option-like arguments you should use "--". For example:
  
  
  
      $ hailctl batch submit --image-name docker.io/image my_script.py -- some-argument --animal dog
      """
      asyncio.run(
          _submit.submit(
              name,
              image_name,
              files or [],
              output,
              script,
              [*(arguments or []), *ctx.args],
          )
      )
  
imports: import asyncio
  from enum import Enum
  import typer
  from typer import Option, Argument
  import json
  from typing import Optional, List, Annotated, cast, Dict, Any
  from .None import list_batches
  from .None import billing
  from .initialize import async_basic_initialize
  from .None import submit
  from .batch_cli_utils import get_batch_if_exists, get_job_if_exists, make_formatter, StructuredFormat, StructuredFormatOption, StructuredFormatPlusText, StructuredFormatPlusTextOption, ExtendedOutputFormat, ExtendedOutputFormatOption
label_desc: Use image node_id 8 for calling a global function with example usage: submit(ctx, script, arguments, files, name, image_name, output) without return types