docstr: Populate the 'assets' attribute with a dictionary of Assets.
  The key of the resulting dictionary is the exchange specific
  currency pair symbol. The universal symbol is contained in the
  'symbol' attribute of each asset.
  
  Notes
  -----
  The sid of each asset is calculated based on a numeric hash of the
  universal symbol. This simple approach avoids maintaining a mapping
  of sids.
  
  This method can be omerridden if an exchange offers equivalent data
  via its api.
docstr_tok: ["Populate","the","'assets","'","attribute","with","a","dictionary","of","Assets",".","The","key","of","the","resulting","dictionary","is","the","exchange","specific","currency","pair","symbol",".","The","universal","symbol","is","contained","in","the","'symbol","'","attribute","of","each","asset",".","Notes","--","--","-","The","sid","of","each","asset","is","calculated","based","on","a","numeric","hash","of","the","universal","symbol",".","This","simple","approach","avoids","maintaining","a","mapping","of","sids",".","This","method","can","be","omerridden","if","an","exchange","offers","equivalent","data","via","its","api","."]
code: def load_assets(self, is_local=False):
      """
      Populate the 'assets' attribute with a dictionary of Assets.
      The key of the resulting dictionary is the exchange specific
      currency pair symbol. The universal symbol is contained in the
      'symbol' attribute of each asset.
  
      Notes
      -----
      The sid of each asset is calculated based on a numeric hash of the
      universal symbol. This simple approach avoids maintaining a mapping
      of sids.
  
      This method can be omerridden if an exchange offers equivalent data
      via its api.
  
      """
      pass
  
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 13 for calling the Exchange obj's underlying member method code with example usage: obj.load_assets(is_local) without return types