nodes: 0, module; 1, function_definition; 2, function_name:sort; 3, parameters; 4, block; 5, identifier:self; 6, default_parameter; 7, default_parameter; 8, default_parameter; 9, expression_statement; 10, try_statement; 11, identifier:axis; 12, unary_operator; 13, identifier:kind; 14, string; 15, identifier:order; 16, None; 17, comment:"""Sort an array, in-place.
  
          This function extends the standard numpy record array in-place sort
          to allow the basic use of Field array virtual fields. Only a single
          field is currently supported when referencing a virtual field.
  
          Parameters
          ----------
          axis : int, optional
              Axis along which to sort. Default is -1, which means sort along the
              last axis.
          kind : {'quicksort', 'mergesort', 'heapsort'}, optional
              Sorting algorithm. Default is 'quicksort'.
          order : list, optional
              When `a` is an array with fields defined, this argument specifies
              which fields to compare first, second, etc.  Not all fields need be
              specified.
          """; 18, block; 19, except_clause; 20, integer:1; 21, string_content:quicksort; 22, expression_statement; 23, identifier:ValueError; 24, block; 25, call; 26, if_statement; 27, expression_statement; 28, attribute; 29, argument_list; 30, call; 31, block; 32, assignment; 33, attribute; 34, identifier:sort; 35, identifier:self; 36, keyword_argument; 37, keyword_argument; 38, keyword_argument; 39, identifier:isinstance; 40, argument_list; 41, raise_statement; 42, subscript; 43, subscript; 44, identifier:numpy; 45, identifier:recarray; 46, identifier:axis; 47, identifier:axis; 48, identifier:kind; 49, identifier:kind; 50, identifier:order; 51, identifier:order; 52, identifier:order; 53, identifier:list; 54, call; 55, identifier:self; 56, slice; 57, identifier:self; 58, call; 59, identifier:ValueError; 60, argument_list; 61, attribute; 62, argument_list; 63, string:"Cannot process more than one order field"; 64, identifier:numpy; 65, identifier:argsort; 66, subscript; 67, identifier:self; 68, identifier:order
code: def sort(self, axis=-1, kind='quicksort', order=None):
          """Sort an array, in-place.
  
          This function extends the standard numpy record array in-place sort
          to allow the basic use of Field array virtual fields. Only a single
          field is currently supported when referencing a virtual field.
  
          Parameters
          ----------
          axis : int, optional
              Axis along which to sort. Default is -1, which means sort along the
              last axis.
          kind : {'quicksort', 'mergesort', 'heapsort'}, optional
              Sorting algorithm. Default is 'quicksort'.
          order : list, optional
              When `a` is an array with fields defined, this argument specifies
              which fields to compare first, second, etc.  Not all fields need be
              specified.
          """
          try:
              numpy.recarray.sort(self, axis=axis, kind=kind, order=order)
          except ValueError:
              if isinstance(order, list):
                  raise ValueError("Cannot process more than one order field")
              self[:] = self[numpy.argsort(self[order])]