nodes: 0, module; 1, function_definition; 2, function_name:cummax; 3, parameters; 4, block; 5, identifier:expr; 6, default_parameter; 7, default_parameter; 8, default_parameter; 9, default_parameter; 10, default_parameter; 11, expression_statement; 12, return_statement; 13, identifier:sort; 14, None; 15, identifier:ascending; 16, True; 17, identifier:unique; 18, False; 19, identifier:preceding; 20, None; 21, identifier:following; 22, None; 23, comment:"""
      Calculate cumulative maximum of a sequence expression.
  
      :param expr: expression for calculation
      :param sort: name of the sort column
      :param ascending: whether to sort in ascending order
      :param unique: whether to eliminate duplicate entries
      :param preceding: the start point of a window
      :param following: the end point of a window
      :return: calculated column
      """; 24, call; 25, identifier:_cumulative_op; 26, argument_list; 27, identifier:expr; 28, identifier:CumMax; 29, keyword_argument; 30, keyword_argument; 31, keyword_argument; 32, keyword_argument; 33, keyword_argument; 34, identifier:sort; 35, identifier:sort; 36, identifier:ascending; 37, identifier:ascending; 38, identifier:unique; 39, identifier:unique; 40, identifier:preceding; 41, identifier:preceding; 42, identifier:following; 43, identifier:following
code: def cummax(expr, sort=None, ascending=True, unique=False,
             preceding=None, following=None):
      """
      Calculate cumulative maximum of a sequence expression.
  
      :param expr: expression for calculation
      :param sort: name of the sort column
      :param ascending: whether to sort in ascending order
      :param unique: whether to eliminate duplicate entries
      :param preceding: the start point of a window
      :param following: the end point of a window
      :return: calculated column
      """
      return _cumulative_op(expr, CumMax, sort=sort, ascending=ascending,
                            unique=unique, preceding=preceding,
                            following=following)