docs: def returner_doc(*args):
      '''
      Return the docstrings for all returners. Optionally, specify a returner or a
      function to narrow the selection.
  
      The strings are aggregated into a single document on the master for easy
      reading.
  
      Multiple returners/functions can be specified.
  
      .. versionadded:: 2014.7.0
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' sys.returner_doc
          salt '*' sys.returner_doc sqlite3
          salt '*' sys.returner_doc sqlite3.get_fun
          salt '*' sys.returner_doc sqlite3.get_fun etcd.get_fun
  
      Returner names can be specified as globs.
  
      .. versionadded:: 2015.5.0
  
      .. code-block:: bash
  
          salt '*' sys.returner_doc 'sqlite3.get_*'
  
      '''
  
      returners_ = salt.loader.returners(__opts__, [])
      docs = {}
      if not args:
          for fun in returners_:
              docs[fun] = returners_[fun].__doc__
          return _strip_rst(docs)
  
      for module in args:
          _use_fnmatch = False
          if '*' in module:
              target_mod = module
              _use_fnmatch = True
          elif module:
              # allow both "sys" and "sys." to match sys, without also matching
              # sysctl
              target_mod = module + '.' if not module.endswith('.') else module
          else:
              target_mod = ''
          if _use_fnmatch:
              for fun in returners_:
                  if fun == module or fun.startswith(target_mod):
                      docs[fun] = returners_[fun].__doc__
          else:
              for fun in six.iterkeys(returners_):
                  if fun == module or fun.startswith(target_mod):
                      docs[fun] = returners_[fun].__doc__
      return _strip_rst(docs)