code: def _cost_per_hour_from_resources(
      resource_rates: Dict[str, float],
      resources: List[QuantifiedResource],
  ) -> float:
      cost_per_msec = 0.0
      for r in resources:
          name = r["name"]
          quantity = r["quantity"]
          rate_unit_msec = resource_rates[name]
          cost_per_msec += quantity * rate_unit_msec
      return cost_per_msec * 1000 * 60 * 60
  
file_path: hail/batch/batch/instance_config.py
imports: import abc
  from typing import Dict, List, Sequence
  from .cloud.resource_utils import cores_mcpu_to_memory_bytes
  from .driver.billing_manager import ProductVersions
  from .resources import QuantifiedResource, Resource
label_desc: Use image node_id 7 for calling the InstanceConfig obj's underlying member method code with example usage: obj._cost_per_hour_from_resources(resource_rates, resources) and returns: unknown