code: def kdata(which, kind, fillen=_default_len_out, typlen=_default_len_out, srclen=_default_len_out):
      
      which = ctypes.c_int(which)
      kind = stypes.stringToCharP(kind)
      fillen = ctypes.c_int(fillen)
      typlen = ctypes.c_int(typlen)
      srclen = ctypes.c_int(srclen)
      file = stypes.stringToCharP(fillen)
      filtyp = stypes.stringToCharP(typlen)
      source = stypes.stringToCharP(srclen)
      handle = ctypes.c_int()
      found = ctypes.c_int()
      libspice.kdata_c(which, kind, fillen, typlen, srclen, file, filtyp, source,
                       ctypes.byref(handle), ctypes.byref(found))
      return stypes.toPythonString(file), stypes.toPythonString(
              filtyp), stypes.toPythonString(source), handle.value, bool(found.value)
docs: Return data for the nth kernel that is among a list of specified
      kernel types.
  
      http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/kdata_c.html
  
      :param which: Index of kernel to fetch from the list of kernels.
      :type which: int
      :param kind: The kind of kernel to which fetches are limited.
      :type kind: str
      :param fillen: Available space in output file string.
      :type fillen: int
      :param typlen: Available space in output kernel type string.
      :type typlen: int
      :param srclen: Available space in output source string.
      :type srclen: int
      :return:
              The name of the kernel file, The type of the kernel,
              Name of the source file used to load file,
              The handle attached to file.
      :rtype: tuple