code: def make_symbols(symbols, *args):
      
      if (hasattr(symbols, '__iter__') and not any(symbols)) \
              or (isinstance(symbols, (list, tuple, Mapping)) and not symbols):
          return []
      if isinstance(symbols, basestring):
          # # FIXME: find a direct API for listing all possible symbols
          # try:
          #     return list(set(dataobj.get_symbols_from_list(symbols)))
          # except:
          return [s.upper().strip() for s in (symbols.split(',') + list(str(a) for a in args))]
      else:
          ans = []
          for sym in (list(symbols) + list(args)):
              tmp = make_symbols(sym)
              ans = ans + tmp
          return list(set(ans))
docs: Return a list of uppercase strings like "GOOG", "$SPX, "XOM"...
  
      Arguments:
        symbols (str or list of str): list of market ticker symbols to normalize
          If `symbols` is a str a get_symbols_from_list() call is used to retrieve the list of symbols
  
      Returns:
        list of str: list of cananical ticker symbol strings (typically after .upper().strip())
  
      See Also:
        pug.dj.db.normalize_names
  
      Examples:
        >>> make_symbols("Goog")
        ['GOOG']
        >>> make_symbols("  $SPX   ", " aaPL ")
        ['$SPX', 'AAPL']
        >>> make_symbols(["$SPX", ["GOOG", "AAPL"]])
        ['GOOG', 'AAPL', '$SPX']
        >>> make_symbols(" $Spy, Goog, aAPL ")
        ['$SPY', 'GOOG', 'AAPL']