code: def get_cg_crypto_symbols(qlib_data_path: [str, Path] = None) -> list:
      """get crypto symbols in coingecko
  
      Returns
      -------
          crypto symbols in given exchanges list of coingecko
      """
      global _CG_CRYPTO_SYMBOLS  # pylint: disable=W0603
  
      @deco_retry
      def _get_coingecko():
          try:
              cg = CoinGeckoAPI()
              resp = pd.DataFrame(
                  cg.get_coins_markets(vs_currency="usd")
              )
          except Exception as e:
              raise ValueError("request error") from e
          try:
              _symbols = resp["id"].to_list()
          except Exception as e:
              logger.warning(f"request error: {e}")
              raise
          return _symbols
  
      if _CG_CRYPTO_SYMBOLS is None:
          _all_symbols = _get_coingecko()
  
          _CG_CRYPTO_SYMBOLS = sorted(set(_all_symbols))
  
      return _CG_CRYPTO_SYMBOLS
  
imports: import abc
  import sys
  import datetime
  from abc import ABC
  from pathlib import Path
  import fire
  import pandas
  from loguru import logger
  from dateutil.tz import tzlocal
  from data_collector.base import BaseCollector, BaseNormalize, BaseRun
  from data_collector.utils import deco_retry
  from pycoingecko import CoinGeckoAPI
  from time import mktime
  from datetime import datetime
  import time
label_desc: Use image node_id 1 for calling a global function with example usage: get_cg_crypto_symbols(qlib_data_path) and returns: _CG_CRYPTO_SYMBOLS, _symbols