nodes: 0, module; 1, function_definition; 2, function_name:sort; 3, parameters; 4, block; 5, identifier:self; 6, default_parameter; 7, default_parameter; 8, expression_statement; 9, if_statement; 10, expression_statement; 11, return_statement; 12, identifier:by; 13, None; 14, identifier:reverse; 15, False; 16, comment:"""
          Sorts the data by the values along the supplied dimensions.
  
          Args:
              by: Dimension(s) to sort by
              reverse (bool, optional): Reverse sort order
  
          Returns:
              Sorted Dataset
          """; 17, comparison_operator:by is None; 18, block; 19, elif_clause; 20, assignment; 21, call; 22, identifier:by; 23, None; 24, expression_statement; 25, not_operator; 26, block; 27, identifier:sorted_columns; 28, call; 29, attribute; 30, argument_list; 31, assignment; 32, call; 33, expression_statement; 34, attribute; 35, argument_list; 36, identifier:self; 37, identifier:clone; 38, identifier:sorted_columns; 39, identifier:by; 40, attribute; 41, identifier:isinstance; 42, argument_list; 43, assignment; 44, attribute; 45, identifier:sort; 46, identifier:self; 47, identifier:by; 48, identifier:reverse; 49, identifier:self; 50, identifier:kdims; 51, identifier:by; 52, identifier:list; 53, identifier:by; 54, list; 55, identifier:self; 56, identifier:interface; 57, identifier:by
code: def sort(self, by=None, reverse=False):
          """
          Sorts the data by the values along the supplied dimensions.
  
          Args:
              by: Dimension(s) to sort by
              reverse (bool, optional): Reverse sort order
  
          Returns:
              Sorted Dataset
          """
          if by is None:
              by = self.kdims
          elif not isinstance(by, list):
              by = [by]
          sorted_columns = self.interface.sort(self, by, reverse)
          return self.clone(sorted_columns)