code: def _parse_existing_requirements(
      launch_project: LaunchProject,
  ) -> str:
      requirements_line = ""
      assert launch_project.project_dir is not None
      base_requirements = os.path.join(
          launch_project.project_dir, "requirements.txt"
      )
      if os.path.exists(base_requirements):
          include_only = set()
          with open(base_requirements) as f:
              iter = pkg_resources.parse_requirements(f)
              while True:
                  try:
                      pkg = next(iter)
                      if hasattr(pkg, "name"):
                          name = pkg.name.lower()
                      else:
                          name = str(pkg)
                      include_only.add(shlex_quote(name))
                  except StopIteration:
                      break
                  # Different versions of pkg_resources throw different errors
                  # just catch them all and ignore packages we can't parse
                  except Exception as e:
                      _logger.warn(
                          f"Unable to parse requirements.txt: {e}"
                      )
                      continue
          requirements_line += "WANDB_ONLY_INCLUDE={} ".format(
              ",".join(include_only)
          )
      return requirements_line
  
imports: import hashlib
  import json
  import logging
  import os
  import shlex
  import shutil
  import sys
  import tempfile
  from typing import Any, Dict, List, Optional, Tuple
  import pkg_resources
  import yaml
  from dockerpycreds.utils import find_executable
  from six.moves import shlex_quote
  import wandb
  import wandb.docker
  import wandb.env
  from wandb.apis.internal import Api
  from wandb.sdk.launch.loader import builder_from_config, environment_from_config, registry_from_config
  from .._project_spec import EntryPoint, EntrypointDefaults, LaunchProject, fetch_and_validate_project
  from ..errors import ExecutionError, LaunchError
  from ..registry.abstract import AbstractRegistry
  from ..utils import AZURE_CONTAINER_REGISTRY_URI_REGEX, ELASTIC_CONTAINER_REGISTRY_URI_REGEX, GCP_ARTIFACT_REGISTRY_URI_REGEX, LAUNCH_CONFIG_FILE, LOG_PREFIX, event_loop_thread_exec, resolve_build_and_registry_config
label_desc: Use image node_id 11 for calling a global function with example usage: _parse_existing_requirements(launch_project) and returns: requirements_line