nodes: 0, module; 1, function_definition; 2, function_name:zrevrange; 3, parameters; 4, block; 5, identifier:self; 6, identifier:key; 7, identifier:start; 8, identifier:stop; 9, default_parameter; 10, default_parameter; 11, expression_statement; 12, if_statement; 13, if_statement; 14, if_statement; 15, expression_statement; 16, if_statement; 17, return_statement; 18, identifier:withscores; 19, False; 20, identifier:encoding; 21, identifier:_NOTSET; 22, comment:"""Return a range of members in a sorted set, by index,
          with scores ordered from high to low.
  
          :raises TypeError: if start or stop is not int
          """; 23, not_operator; 24, block; 25, not_operator; 26, block; 27, identifier:withscores; 28, block; 29, else_clause; 30, assignment; 31, identifier:withscores; 32, block; 33, identifier:fut; 34, call; 35, raise_statement; 36, call; 37, raise_statement; 38, expression_statement; 39, block; 40, identifier:fut; 41, call; 42, return_statement; 43, identifier:isinstance; 44, argument_list; 45, call; 46, identifier:isinstance; 47, argument_list; 48, call; 49, assignment; 50, expression_statement; 51, attribute; 52, argument_list; 53, call; 54, identifier:start; 55, identifier:int; 56, identifier:TypeError; 57, argument_list; 58, identifier:stop; 59, identifier:int; 60, identifier:TypeError; 61, argument_list; 62, identifier:args; 63, list; 64, assignment; 65, identifier:self; 66, identifier:execute; 67, string; 68, identifier:key; 69, identifier:start; 70, identifier:stop; 71, list_splat; 72, keyword_argument; 73, identifier:wait_convert; 74, argument_list; 75, string:"start argument must be int"; 76, string:"stop argument must be int"; 77, string; 78, identifier:args; 79, list; 80, string_content:ZREVRANGE; 81, identifier:args; 82, identifier:encoding; 83, identifier:encoding; 84, identifier:fut; 85, identifier:pairs_int_or_float; 86, string_content:WITHSCORES
code: def zrevrange(self, key, start, stop, withscores=False, encoding=_NOTSET):
          """Return a range of members in a sorted set, by index,
          with scores ordered from high to low.
  
          :raises TypeError: if start or stop is not int
          """
          if not isinstance(start, int):
              raise TypeError("start argument must be int")
          if not isinstance(stop, int):
              raise TypeError("stop argument must be int")
          if withscores:
              args = [b'WITHSCORES']
          else:
              args = []
          fut = self.execute(b'ZREVRANGE', key, start, stop, *args,
                             encoding=encoding)
          if withscores:
              return wait_convert(fut, pairs_int_or_float)
          return fut