code: def get_loader_options(key, properties, options):
      """
      Filters dictionary of click parameters for ones which start with a certain prefix
  
      :param key: click option prefix
      :type key: str
      :param properties: sub-properties of the click command key
      :type properties: list of str
      :param options: click options
      :type options: dict
      :return: dictionary of click options with start with key
      :rtype: dict
      """
  
      def _build_key(option):
          segs = option.split("_")
          if len(segs) == 1:
              return ""
          return option.split("{}_".format(key))[-1]
  
      final_key = "_".join(key.split("-"))
      selected_opts = []
      if not len(make_list(properties)):
          selected_opts = [final_key]
      else:
          for prop in properties:
              p_names = make_list(
                  prop["name"] if isinstance(prop, dict) else prop
              )
              for p_name in p_names:
                  selected_opts.append(
                      "{}_{}".format(final_key, p_name)
                  )
  
      return dict(
          (
              (_build_key(k), v)
              for k, v in options.items()
              if k in selected_opts
              if v is not None
          )
      )
  
imports: import logging
  import requests
  import socket
  import sys
  from builtins import str
  from datetime import datetime
  import click
  import pkg_resources
  from six import PY3, BytesIO, StringIO, string_types
  from dtale.utils import make_list
label_desc: Use image node_id 3 for calling a global function with example usage: get_loader_options(key, properties, options) and returns: dict, option, str