docstr: The list of markets for the specified symbols.
  
  Parameters
  ----------
  symbols: list[str]
  data_frequency: str
  is_exchange_symbol: bool
  is_local: bool
  
  Returns
  -------
  list[TradingPair]
      A list of asset objects.
  
  Notes
  -----
  See get_asset for details of each parameter.
docstr_tok: ["The","list","of","markets","for","the","specified","symbols",".","Parameters","--","--","--","--","--","symbols",":","list","[","str","]","data_frequency",":","str","is_exchange_symbol",":","bool","is_local",":","bool","Returns","--","--","--","-","list","[","TradingPair","]","A","list","of","asset","objects",".","Notes","--","--","-","See","get_asset","for","details","of","each","parameter","."]
code: def get_assets(
      self,
      symbols=None,
      data_frequency=None,
      is_exchange_symbol=False,
      is_local=None,
      quote_currency=None,
  ):
      """
      The list of markets for the specified symbols.
  
      Parameters
      ----------
      symbols: list[str]
      data_frequency: str
      is_exchange_symbol: bool
      is_local: bool
  
      Returns
      -------
      list[TradingPair]
          A list of asset objects.
  
      Notes
      -----
      See get_asset for details of each parameter.
  
      """
      if symbols is None:
          # Make a distinct list of all symbols
          symbols = list(set([asset.symbol for asset in self.assets]))
          symbols.sort()
  
          if quote_currency is not None:
              for symbol in symbols[:]:
                  suffix = "_{}".format(quote_currency.lower())
  
                  if not symbol.endswith(suffix):
                      symbols.remove(symbol)
  
          is_exchange_symbol = False
  
      assets = []
      for symbol in symbols:
          try:
              asset = self.get_asset(
                  symbol, data_frequency, is_exchange_symbol, is_local
              )
              assets.append(asset)
  
          except SymbolNotFoundOnExchange as e:
              log.warn(e)
      return assets
  
imports: import abc
  from abc import ABCMeta, abstractmethod, abstractproperty
  from datetime import timedelta
  from time import sleep
  import numpy
  import pandas
  from catalyst.constants import LOG_LEVEL
  from catalyst.data.data_portal import BASE_FIELDS
  from catalyst.exchange.exchange_bundle import ExchangeBundle
  from catalyst.exchange.exchange_errors import MismatchingQuoteCurrencies, SymbolNotFoundOnExchange, PricingDataNotLoadedError, NoDataAvailableOnExchange, NoValueForField, NoCandlesReceivedFromExchange, TickerNotFoundError, NotEnoughCashError
  from catalyst.exchange.utils.datetime_utils import get_delta, get_periods_range, get_periods, get_start_dt, get_frequency, get_candles_number_from_minutes
  from catalyst.exchange.utils.exchange_utils import get_exchange_symbols, resample_history_df, has_bundle, get_candles_df
  from logbook import Logger
label_desc: Use image node_id 9 for calling the Exchange obj's underlying member method code with example usage: obj.get_assets(symbols, data_frequency, is_exchange_symbol, is_local, quote_currency) and returns: assets