code: def launch(
      # node information and deployment
      name: Optional[str] = None,
      node_type: Optional[Union[str, NodeType]] = None,
      deploy_to: Optional[str] = None,
      node_side_type: Optional[str] = None,
      # worker related inputs
      port: Optional[Union[int, str]] = None,
      processes: int = 1,  # temporary work around for jax in subprocess
      local_db: bool = False,
      dev_mode: bool = False,
      cmd: bool = False,
      reset: bool = False,
      tail: bool = False,
      host: Optional[str] = "0.0.0.0",  # nosec
      tag: Optional[str] = "latest",
      verbose: bool = False,
      render: bool = False,
      enable_warnings: bool = False,
      n_consumers: int = 0,
      thread_workers: bool = False,
      create_producer: bool = False,
      queue_port: Optional[int] = None,
      in_memory_workers: bool = True,
  ) -> Optional[NodeHandle]:
      if dev_mode is True:
          os.environ["DEV_MODE"] = "True"
          thread_workers = True
  
      # syft 0.8.1
      if node_type == "python":
          node_type = NodeType.DOMAIN
          if deploy_to is None:
              deploy_to = "python"
  
      dev_mode = str_to_bool(os.environ.get("DEV_MODE", f"{dev_mode}"))
  
      node_type_enum: Optional[NodeType] = get_node_type(
          node_type=node_type
      )
      if not node_type_enum:
          return None
  
      node_side_type_enum = (
          NodeSideType.HIGH_SIDE
          if node_side_type is None
          else NodeSideType(node_side_type)
      )
  
      deployment_type_enum: Optional[
          DeploymentType
      ] = get_deployment_type(deployment_type=deploy_to)
      if not deployment_type_enum:
          return None
  
      if deployment_type_enum == DeploymentType.PYTHON:
          return deploy_to_python(
              node_type_enum=node_type_enum,
              deployment_type_enum=deployment_type_enum,
              port=port,
              name=name,
              host=host,
              reset=reset,
              tail=tail,
              dev_mode=dev_mode,
              processes=processes,
              local_db=local_db,
              node_side_type=node_side_type_enum,
              enable_warnings=enable_warnings,
              n_consumers=n_consumers,
              thread_workers=thread_workers,
              create_producer=create_producer,
              queue_port=queue_port,
          )
  
      elif deployment_type_enum == DeploymentType.K8S:
          return deploy_to_k8s(
              node_type_enum=node_type_enum,
              deployment_type_enum=deployment_type_enum,
              name=name,
              node_side_type=node_side_type_enum,
          )
  
      elif (
          deployment_type_enum == DeploymentType.CONTAINER_STACK
          or deployment_type_enum == DeploymentType.SINGLE_CONTAINER
      ):
          return deploy_to_container(
              node_type_enum=node_type_enum,
              deployment_type_enum=deployment_type_enum,
              reset=reset,
              cmd=cmd,
              tail=tail,
              verbose=verbose,
              tag=tag,
              render=render,
              dev_mode=dev_mode,
              port=port,
              name=name,
              node_side_type=node_side_type_enum,
              enable_warnings=enable_warnings,
              in_memory_workers=in_memory_workers,
          )
      elif deployment_type_enum == DeploymentType.PODMAN:
          return deploy_to_podman(
              node_type_enum=node_type_enum,
              deployment_type_enum=deployment_type_enum,
              name=name,
              node_side_type=node_side_type_enum,
          )
  
imports: from __future__ import annotations
  from enum import Enum
  import getpass
  import inspect
  import os
  import subprocess
  from threading import Thread
  from typing import Any
  from typing import Callable
  from typing import Optional
  from typing import Union
  from .cli import str_to_bool
  from .grammar import find_available_port
  from .names import random_name
  from .util import shell
label_desc: Use image node_id 1 for calling the Orchestra obj's underlying member method code with example usage: obj.launch(name, node_type, deploy_to, node_side_type, port, processes, local_db, dev_mode, cmd, reset, tail, host, tag, verbose, render, enable_warnings, n_consumers, thread_workers, create_producer, queue_port, in_memory_workers) and returns: None, None, deploy_to_python, deploy_to_k8s, deploy_to_container, deploy_to_podman