code: def cost_per_hour(
      self,
      resource_rates: Dict[str, float],
      cpu_in_mcpu: int,
      memory_in_bytes: int,
      storage_in_gb: int,
  ) -> float:
      resources = self.quantified_resources(
          cpu_in_mcpu, memory_in_bytes, storage_in_gb
      )
      return InstanceConfig._cost_per_hour_from_resources(
          resource_rates, resources
      )
  
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 8 for calling the InstanceConfig obj's underlying member method code with example usage: obj.cost_per_hour(resource_rates, cpu_in_mcpu, memory_in_bytes, storage_in_gb) and returns: InstanceConfig