nodes: 0, module; 1, function_definition; 2, function_name:percent_rank; 3, parameters; 4, block; 5, identifier:expr; 6, default_parameter; 7, default_parameter; 8, expression_statement; 9, return_statement; 10, identifier:sort; 11, None; 12, identifier:ascending; 13, True; 14, comment:"""
      Calculate percentage rank of a sequence expression.
  
      :param expr: expression for calculation
      :param sort: name of the sort column
      :param ascending: whether to sort in ascending order
      :return: calculated column
      """; 15, call; 16, identifier:_rank_op; 17, argument_list; 18, identifier:expr; 19, identifier:PercentRank; 20, attribute; 21, keyword_argument; 22, keyword_argument; 23, identifier:types; 24, identifier:float64; 25, identifier:sort; 26, identifier:sort; 27, identifier:ascending; 28, identifier:ascending
code: def percent_rank(expr, sort=None, ascending=True):
      """
      Calculate percentage rank of a sequence expression.
  
      :param expr: expression for calculation
      :param sort: name of the sort column
      :param ascending: whether to sort in ascending order
      :return: calculated column
      """
      return _rank_op(expr, PercentRank, types.float64, sort=sort, ascending=ascending)