code: def __init__(self, cluster_node_info_cache: ClusterNodeInfoCache):
      # {deployment_id: scheduling_policy}
      self._deployments = {}
      # Replicas that are waiting to be scheduled.
      # {deployment_id: {replica_name: deployment_upscale_request}}
      self._pending_replicas = defaultdict(dict)
      # Replicas that are being scheduled.
      # The underlying actors have been submitted.
      # {deployment_id: {replica_name: target_node_id}}
      self._launching_replicas = defaultdict(dict)
      # Replicas that are recovering.
      # We don't know where those replicas are running.
      # {deployment_id: {replica_name}}
      self._recovering_replicas = defaultdict(set)
      # Replicas that are running.
      # We know where those replicas are running.
      # {deployment_id: {replica_name: running_node_id}}
      self._running_replicas = defaultdict(dict)
  
      self._cluster_node_info_cache = cluster_node_info_cache
  
      self._head_node_id = get_head_node_id()
  
imports: import copy
  import sys
  from abc import ABC, abstractmethod
  from collections import defaultdict
  from dataclasses import dataclass
  from typing import Callable, Dict, List, Optional, Set, Tuple
  import ray
  from ray.serve._private.cluster_node_info_cache import ClusterNodeInfoCache
  from ray.serve._private.common import DeploymentID
  from ray.serve._private.utils import get_head_node_id
  from ray.util.scheduling_strategies import PlacementGroupSchedulingStrategy
label_desc: Use image node_id 1 to create a new DefaultDeploymentScheduler object from inherited base classes: DeploymentScheduler with example: obj = DefaultDeploymentScheduler(cluster_node_info_cache)