code: def _inplace_subtract(
      node: ResourceDict, resources: ResourceDict
  ) -> None:
      for k, v in resources.items():
          if v == 0:
              # This is an edge case since some reasonable programs/computers can
              # do `ray.autoscaler.sdk.request_resources({"GPU": 0}"})`.
              continue
          if k not in node:
              assert k.startswith(
                  ray._raylet.IMPLICIT_RESOURCE_PREFIX
              ), (k, node)
              node[k] = 1
          assert k in node, (k, node)
          node[k] -= v
          assert node[k] >= 0.0, (node, k, v)
  
imports: import collections
  import copy
  import logging
  import os
  from abc import abstractmethod
  from functools import partial
  from typing import Callable, Dict, List, Optional, Tuple
  import ray
  from ray._private.gcs_utils import PlacementGroupTableData
  from ray.autoscaler._private.constants import AUTOSCALER_CONSERVE_GPU_NODES, AUTOSCALER_UTILIZATION_SCORER_KEY
  from ray.autoscaler._private.loader import load_function_or_class
  from ray.autoscaler._private.node_provider_availability_tracker import NodeAvailabilitySummary
  from ray.autoscaler._private.util import NodeID, NodeIP, NodeType, NodeTypeConfigDict, ResourceDict, is_placement_group_resource
  from ray.autoscaler.node_provider import NodeProvider
  from ray.autoscaler.tags import NODE_KIND_HEAD, NODE_KIND_UNMANAGED, NODE_KIND_WORKER, TAG_RAY_NODE_KIND, TAG_RAY_USER_NODE_TYPE
  from ray.core.generated.common_pb2 import PlacementStrategy
label_desc: Use image node_id 8 for calling a global function with example usage: _inplace_subtract(node, resources) without return types