class_docstr: Base class for schedulers.
  
  Not meant to be used directly.
docstr: Some search algorithms require additional packages to be installed, check that they are available.
docstr_tok: ["Some","search","algorithms","require","additional","packages","to","be","installed",",","check","that","they","are","available","."]
code: def dependencies_installed(self):
      """Some search algorithms require additional packages to be installed, check that they are available."""
      missing_packages = []
      missing_installs = []
      for (
          package_name,
          install_name,
      ) in hyperopt_utils.get_scheduler_dependencies(self.type):
          try:
              import_module(package_name)
          except ImportError:
              missing_packages.append(package_name)
              missing_installs.append(install_name)
  
      if missing_packages:
          missing_packages = ", ".join(missing_packages)
          missing_installs = " ".join(missing_installs)
          raise ImportError(
              f"Some packages needed to use hyperopt scheduler {self.type} are not installed: "
              f"{missing_packages}. To add these dependencies, run `pip install {missing_installs}`. For more "
              "details, please refer to Ray Tune documentation for this scheduler."
          )
      return True
  
imports: from abc import ABC
  from dataclasses import field
  from importlib import import_module
  from typing import Callable, Dict, Optional, Tuple, Union
  from marshmallow import fields, ValidationError
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.schema import utils
  from ludwig.schema.hyperopt import utils
  from ludwig.schema.utils import ludwig_dataclass
label_desc: Use image node_id 1 for calling the BaseSchedulerConfig obj's underlying member method code with example usage: obj.dependencies_installed() and returns: True