code: def get_offers(
      self, requirements: Optional[Requirements] = None
  ) -> List[InstanceOfferWithAvailability]:
      offers = get_catalog_offers(
          backend=BackendType.TENSORDOCK,
          requirements=requirements,
      )
      offers = [
          InstanceOfferWithAvailability(
              **offer.dict(),
              availability=InstanceAvailability.AVAILABLE,
          )
          for offer in offers
      ]
      return offers
  
file_path: dstack/src/dstack/_internal/core/backends/tensordock/compute.py
imports: import json
  from typing import List, Optional
  import requests
  from dstack._internal.core.backends.base import Compute
  from dstack._internal.core.backends.base.compute import get_instance_name, get_shim_commands
  from dstack._internal.core.backends.base.offers import get_catalog_offers
  from dstack._internal.core.backends.tensordock.api_client import TensorDockAPIClient
  from dstack._internal.core.backends.tensordock.config import TensorDockConfig
  from dstack._internal.core.errors import NoCapacityError
  from dstack._internal.core.models.backends.base import BackendType
  from dstack._internal.core.models.instances import InstanceAvailability, InstanceOfferWithAvailability, LaunchedInstanceInfo
  from dstack._internal.core.models.runs import Job, Requirements, Run
  from dstack._internal.utils.logging import get_logger
label_desc: Use image node_id 2 for calling the TensorDockCompute obj's underlying member method code with example usage: obj.get_offers(requirements) and returns: offers