docstr: Gets available dataset and function names.
  
  Returns
  -------
  available_data: dict
      Available dataset and function names.
docstr_tok: ["Gets","available","dataset","and","function","names",".","Returns","--","--","--","-","available_data",":","dict","Available","dataset","and","function","names","."]
code: def get_fetcher_datanames():
      """Gets available dataset and function names.
  
      Returns
      -------
      available_data: dict
          Available dataset and function names.
  
      """
  
      fetcher_module = FetchFlow.load_module("dipy.data.fetcher")
  
      available_data = dict(
          [
              (name.replace("fetch_", ""), func)
              for name, func in getmembers(fetcher_module, isfunction)
              if name.lower().startswith("fetch_")
              and func is not fetcher_module.fetch_data
              if name.lower() not in ["fetch_hbn", "fetch_hcp"]
          ]
      )
  
      return available_data
  
imports: import importlib
  import os
  import sys
  import logging
  from inspect import getmembers, isfunction
  import warnings
  import trx.trx_file_memmap
  import numpy
  from dipy.io.image import load_nifti, save_nifti
  from dipy.io.streamline import load_tractogram, save_tractogram
  from dipy.reconst.shm import convert_sh_descoteaux_tournier
  from dipy.tracking.streamlinespeed import length
  from dipy.utils.tractogram import concatenate_tractogram
  from dipy.workflows.workflow import Workflow
label_desc: Use image node_id 2 for calling the FetchFlow obj's underlying member method code with example usage: obj.get_fetcher_datanames() and returns: available_data