code: def symbols_serial(obj):
      """
      JSON serializer for objects not serializable by default json code
  
      Parameters
      ----------
      obj: Object
  
      Returns
      -------
      str
  
      """
      if isinstance(obj, (datetime, date)):
          return obj.floor("1D").strftime(DATE_FORMAT)
  
      raise TypeError("Type %s not serializable" % type(obj))
  
imports: import hashlib
  import json
  import os
  import pickle
  import shutil
  from datetime import date, datetime
  import pandas
  from catalyst.assets._assets import TradingPair
  from six import string_types
  from six.moves.urllib import request
  from catalyst.constants import DATE_FORMAT, SYMBOLS_URL
  from catalyst.exchange.exchange_errors import ExchangeSymbolsNotFound
  from catalyst.exchange.utils.serialization_utils import ExchangeJSONEncoder, ExchangeJSONDecoder
  from catalyst.utils.memoize import weak_lru_cache
  from catalyst.utils.paths import data_root, ensure_directory, last_modified_time
label_desc: Use image node_id 23 for calling a global function with example usage: symbols_serial(obj) and returns: obj