class_docstr: Market data dictionary representation.
docstr: The volatility surface object for the lsit of assets.
  
  Args:
    currency: A list of strings with currency names.
    asset: A list of strings with asset names.
  
  Returns:
    An instance of `VolatilitySurface`.
docstr_tok: ["The","volatility","surface","object","for","the","lsit","of","assets",".","Args",":","currency",":","A","list","of","strings","with","currency","names",".","asset",":","A","list","of","strings","with","asset","names",".","Returns",":","An","instance","of","`","VolatilitySurface","`","."]
code: def volatility_surface(
      self, currency: List[str], asset: List[str]
  ) -> volatility_surface.VolatilitySurface:
      """The volatility surface object for the lsit of assets.
  
      Args:
        currency: A list of strings with currency names.
        asset: A list of strings with asset names.
  
      Returns:
        An instance of `VolatilitySurface`.
      """
      dates = []
      strikes = []
      implied_vols = []
      for cur, s in zip(currency, asset):
          if s not in self.supported_assets(cur):
              raise ValueError(f"No data for asset {s}")
          data_spot = self._market_data_dict["equities"][cur][s]
          if "volatility_surface" not in data_spot:
              raise ValueError(
                  f"No volatility surface 'volatility_surface' for asset {s}"
              )
          vol_surface = data_spot["volatility_surface"]
          vol_dates = dateslib.convert_to_date_tensor(
              vol_surface["dates"]
          )
          vol_strikes = tf.convert_to_tensor(
              vol_surface["strikes"], dtype=self._dtype, name="strikes"
          )
          vols = tf.convert_to_tensor(
              vol_surface["implied_volatilities"],
              dtype=self._dtype,
              name="implied_volatilities",
          )
          dates.append(vol_dates)
          strikes.append(vol_strikes)
          implied_vols.append(vols)
      dates = math.pad.pad_date_tensors(dates)
      dates = dateslib.DateTensor.stack(dates, axis=0)
      implied_vols = math.pad.pad_tensors(implied_vols)
      implied_vols = tf.stack(implied_vols, axis=0)
      strikes = math.pad.pad_tensors(strikes)
      strikes = tf.stack(strikes, axis=0)
      vol_surface = volatility_surface.VolatilitySurface(
          self.date, dates, strikes, implied_vols
      )
      return vol_surface
  
imports: import datetime
  from typing import Dict, Any, List, Optional, Tuple
  import tensorflow.compat.v2
  from tf_quant_finance import datetime
  from tf_quant_finance import math
  from tf_quant_finance.experimental.pricing_platform.framework.core import currencies
  from tf_quant_finance.experimental.pricing_platform.framework.core import curve_types
  from tf_quant_finance.experimental.pricing_platform.framework.core import daycount_conventions
  from tf_quant_finance.experimental.pricing_platform.framework.core import processed_market_data
  from tf_quant_finance.experimental.pricing_platform.framework.core import types
  from tf_quant_finance.experimental.pricing_platform.framework.market_data import rate_curve
  from tf_quant_finance.experimental.pricing_platform.framework.market_data import volatility_surface
label_desc: Use image node_id 7 for calling the MarketDataDict obj's underlying member method code with example usage: obj.volatility_surface(currency, asset) and returns: vol_surface