nodes: 0, module; 1, function_definition; 2, function_name:keys; 3, parameters; 4, block; 5, identifier:self; 6, expression_statement; 7, expression_statement; 8, for_statement; 9, return_statement; 10, comment:"""
          Returns a sorted list of keys
          """; 11, assignment; 12, identifier:n; 13, call; 14, comment:# only append the valid keys; 15, block; 16, identifier:keys; 17, identifier:keys; 18, call; 19, identifier:range; 20, argument_list; 21, expression_statement; 22, if_statement; 23, identifier:list; 24, argument_list; 25, call; 26, assignment; 27, not_operator; 28, block; 29, identifier:len; 30, argument_list; 31, identifier:key; 32, call; 33, comparison_operator:key in ['', None]; 34, expression_statement; 35, identifier:self; 36, attribute; 37, argument_list; 38, identifier:key; 39, list; 40, call; 41, identifier:self; 42, identifier:get_value; 43, string; 44, None; 45, attribute; 46, argument_list; 47, identifier:keys; 48, identifier:append; 49, identifier:key
code: def keys(self):
          """
          Returns a sorted list of keys
          """
          keys = list()
          for n in range(len(self)):
  
              # only append the valid keys
              key = self.get_value()
              if not key in ['', None]: keys.append(key)
  
          return keys