nodes: 0, module; 1, function_definition; 2, function_name:zrevrangebyscore; 3, parameters; 4, block; 5, identifier:self; 6, identifier:key; 7, default_parameter; 8, default_parameter; 9, keyword_separator; 10, default_parameter; 11, default_parameter; 12, default_parameter; 13, default_parameter; 14, default_parameter; 15, expression_statement; 16, if_statement; 17, if_statement; 18, if_statement; 19, if_statement; 20, if_statement; 21, expression_statement; 22, expression_statement; 23, if_statement; 24, if_statement; 25, expression_statement; 26, if_statement; 27, return_statement; 28, identifier:max; 29, call; 30, identifier:min; 31, call; 32, identifier:exclude; 33, None; 34, identifier:withscores; 35, False; 36, identifier:offset; 37, None; 38, identifier:count; 39, None; 40, identifier:encoding; 41, identifier:_NOTSET; 42, comment:"""Return a range of members in a sorted set, by score,
          with scores ordered from high to low.
  
          :raises TypeError: if min or max is not float or int
          :raises TypeError: if both offset and count are not specified
          :raises TypeError: if offset is not int
          :raises TypeError: if count is not int
          """; 43, not_operator; 44, block; 45, not_operator; 46, block; 47, boolean_operator; 48, block; 49, boolean_operator; 50, block; 51, boolean_operator; 52, block; 53, assignment; 54, assignment; 55, identifier:withscores; 56, block; 57, boolean_operator; 58, block; 59, assignment; 60, identifier:withscores; 61, block; 62, identifier:fut; 63, identifier:float; 64, argument_list; 65, identifier:float; 66, argument_list; 67, call; 68, raise_statement; 69, call; 70, raise_statement; 71, parenthesized_expression; 72, line_continuation:\; 73, parenthesized_expression; 74, raise_statement; 75, comparison_operator:offset is not None; 76, not_operator; 77, raise_statement; 78, comparison_operator:count is not None; 79, not_operator; 80, raise_statement; 81, pattern_list; 82, call; 83, identifier:args; 84, list; 85, expression_statement; 86, comparison_operator:offset is not None; 87, comparison_operator:count is not None; 88, expression_statement; 89, identifier:fut; 90, call; 91, return_statement; 92, string; 93, string; 94, identifier:isinstance; 95, argument_list; 96, call; 97, identifier:isinstance; 98, argument_list; 99, call; 100, boolean_operator; 101, boolean_operator; 102, call; 103, identifier:offset; 104, None; 105, call; 106, call; 107, identifier:count; 108, None; 109, call; 110, call; 111, identifier:min; 112, identifier:max; 113, identifier:_encode_min_max; 114, argument_list; 115, assignment; 116, identifier:offset; 117, None; 118, identifier:count; 119, None; 120, call; 121, attribute; 122, argument_list; 123, call; 124, string_content:inf; 125, string_content:-inf; 126, identifier:min; 127, tuple; 128, identifier:TypeError; 129, argument_list; 130, identifier:max; 131, tuple; 132, identifier:TypeError; 133, argument_list; 134, comparison_operator:offset is not None; 135, comparison_operator:count is None; 136, comparison_operator:count is not None; 137, comparison_operator:offset is None; 138, identifier:TypeError; 139, argument_list; 140, identifier:isinstance; 141, argument_list; 142, identifier:TypeError; 143, argument_list; 144, identifier:isinstance; 145, argument_list; 146, identifier:TypeError; 147, argument_list; 148, identifier:exclude; 149, identifier:min; 150, identifier:max; 151, identifier:args; 152, list; 153, attribute; 154, argument_list; 155, identifier:self; 156, identifier:execute; 157, string; 158, identifier:key; 159, identifier:max; 160, identifier:min; 161, list_splat; 162, keyword_argument; 163, identifier:wait_convert; 164, argument_list; 165, identifier:int; 166, identifier:float; 167, string:"min argument must be int or float"; 168, identifier:int; 169, identifier:float; 170, string:"max argument must be int or float"; 171, identifier:offset; 172, None; 173, identifier:count; 174, None; 175, identifier:count; 176, None; 177, identifier:offset; 178, None; 179, string:"offset and count must both be specified"; 180, identifier:offset; 181, identifier:int; 182, string:"offset argument must be int"; 183, identifier:count; 184, identifier:int; 185, string:"count argument must be int"; 186, string; 187, identifier:args; 188, identifier:extend; 189, list; 190, string_content:ZREVRANGEBYSCORE; 191, identifier:args; 192, identifier:encoding; 193, identifier:encoding; 194, identifier:fut; 195, identifier:pairs_int_or_float; 196, string_content:WITHSCORES; 197, string; 198, identifier:offset; 199, identifier:count; 200, string_content:LIMIT
code: def zrevrangebyscore(self, key, max=float('inf'), min=float('-inf'),
                           *, exclude=None, withscores=False,
                           offset=None, count=None, encoding=_NOTSET):
          """Return a range of members in a sorted set, by score,
          with scores ordered from high to low.
  
          :raises TypeError: if min or max is not float or int
          :raises TypeError: if both offset and count are not specified
          :raises TypeError: if offset is not int
          :raises TypeError: if count is not int
          """
          if not isinstance(min, (int, float)):
              raise TypeError("min argument must be int or float")
          if not isinstance(max, (int, float)):
              raise TypeError("max argument must be int or float")
  
          if (offset is not None and count is None) or \
                  (count is not None and offset is None):
              raise TypeError("offset and count must both be specified")
          if offset is not None and not isinstance(offset, int):
              raise TypeError("offset argument must be int")
          if count is not None and not isinstance(count, int):
              raise TypeError("count argument must be int")
  
          min, max = _encode_min_max(exclude, min, max)
  
          args = []
          if withscores:
              args = [b'WITHSCORES']
          if offset is not None and count is not None:
              args.extend([b'LIMIT', offset, count])
          fut = self.execute(b'ZREVRANGEBYSCORE', key, max, min, *args,
                             encoding=encoding)
          if withscores:
              return wait_convert(fut, pairs_int_or_float)
          return fut