nodes: 0, module; 1, function_definition; 2, function_name:shelli; 3, parameters; 4, comment:# Works!, use this as example for "I/O" parameters; 5, block; 6, identifier:ndim; 7, identifier:array; 8, expression_statement; 9, expression_statement; 10, expression_statement; 11, expression_statement; 12, return_statement; 13, comment:"""
      Sort an integer array using the Shell Sort algorithm.
  
      http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/shelli_c.html
  
      :param ndim: Dimension of the array.
      :type ndim: int
      :param array: The array to be sorted.
      :type array: Array of ints
      :return: The sorted array.
      :rtype: Array of ints
      """; 14, assignment; 15, assignment; 16, call; 17, call; 18, identifier:array; 19, call; 20, identifier:ndim; 21, call; 22, attribute; 23, argument_list; 24, attribute; 25, argument_list; 26, attribute; 27, argument_list; 28, attribute; 29, argument_list; 30, identifier:libspice; 31, identifier:shelli_c; 32, identifier:ndim; 33, call; 34, identifier:stypes; 35, identifier:cVectorToPython; 36, identifier:array; 37, identifier:stypes; 38, identifier:toIntVector; 39, identifier:array; 40, identifier:ctypes; 41, identifier:c_int; 42, identifier:ndim; 43, attribute; 44, argument_list; 45, identifier:ctypes; 46, identifier:cast; 47, identifier:array; 48, call; 49, attribute; 50, argument_list; 51, identifier:ctypes; 52, identifier:POINTER; 53, attribute; 54, identifier:ctypes; 55, identifier:c_int
code: def shelli(ndim, array):
      # Works!, use this as example for "I/O" parameters
      """
      Sort an integer array using the Shell Sort algorithm.
  
      http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/shelli_c.html
  
      :param ndim: Dimension of the array.
      :type ndim: int
      :param array: The array to be sorted.
      :type array: Array of ints
      :return: The sorted array.
      :rtype: Array of ints
      """
      array = stypes.toIntVector(array)
      ndim = ctypes.c_int(ndim)
      libspice.shelli_c(ndim, ctypes.cast(array, ctypes.POINTER(ctypes.c_int)))
      return stypes.cVectorToPython(array)