code: def _list(self):
      n_d_sources = (
          self.mkt_contract.functions.getProviderNamesSize().call()
      )
      data_sources = [
          self.mkt_contract.functions.getNameAt(x).call()
          for x in range(n_d_sources)
      ]
  
      data = []
      for index, data_source in enumerate(data_sources):
          if index >= 0:
              if "test" not in Web3.toText(data_source).lower():
                  data.append(dict(dataset=self.to_text(data_source)))
      return pd.DataFrame(data)
  
imports: from __future__ import print_function
  import glob
  import json
  import os
  import re
  import shutil
  import sys
  import time
  import webbrowser
  import bcolz
  import logbook
  import pandas
  import requests
  from requests_toolbelt import MultipartDecoder
  from requests_toolbelt.multipart.decoder import NonMultipartContentTypeException
  from catalyst.constants import LOG_LEVEL, AUTH_SERVER, ETH_REMOTE_NODE, MARKETPLACE_CONTRACT, MARKETPLACE_CONTRACT_ABI, ENIGMA_CONTRACT, ENIGMA_CONTRACT_ABI, TERMS_AND_CONDITIONS
  from catalyst.exchange.utils.stats_utils import set_print_settings
  from catalyst.marketplace.marketplace_errors import MarketplaceDatasetNotFound, MarketplaceNoAddressMatch, MarketplaceHTTPRequest, MarketplaceNoCSVFiles, MarketplaceRequiresPython3
  from catalyst.marketplace.utils.auth_utils import get_key_secret, get_signed_headers
  from catalyst.marketplace.utils.eth_utils import bin_hex, from_grains, to_grains
  from catalyst.marketplace.utils.path_utils import get_bundle_folder, get_data_source_folder, get_marketplace_folder, get_user_pubaddr, get_temp_bundles_folder, extract_bundle, save_user_pubaddr
  from catalyst.utils.paths import ensure_directory
label_desc: Use image node_id 6 for calling the Marketplace obj's underlying member method code with example usage: obj._list() and returns: pd