nodes: 0, module; 1, function_definition; 2, function_name:zrevrangebylex; 3, parameters; 4, block; 5, identifier:self; 6, identifier:name; 7, identifier:max; 8, identifier:min; 9, default_parameter; 10, default_parameter; 11, expression_statement; 12, with_statement; 13, identifier:start; 14, None; 15, identifier:num; 16, None; 17, comment:"""
          Return the reversed lexicographical range of values from the sorted set
           between ``max`` and ``min``.
  
          If ``start`` and ``num`` are specified, then return a slice of the
          range.
  
          :param name: str     the name of the redis key
          :param max: int or '+inf'
          :param min: int or '-inf'
          :param start: int
          :param num: int
          :return: Future()
          """; 18, with_clause; 19, block; 20, with_item; 21, expression_statement; 22, expression_statement; 23, function_definition; 24, expression_statement; 25, return_statement; 26, as_pattern; 27, assignment; 28, assignment; 29, function_name:cb; 30, parameters; 31, block; 32, call; 33, identifier:f; 34, attribute; 35, as_pattern_target; 36, identifier:f; 37, call; 38, identifier:res; 39, call; 40, expression_statement; 41, attribute; 42, argument_list; 43, identifier:self; 44, identifier:pipe; 45, identifier:pipe; 46, identifier:Future; 47, argument_list; 48, attribute; 49, argument_list; 50, call; 51, identifier:pipe; 52, identifier:on_execute; 53, identifier:cb; 54, identifier:pipe; 55, identifier:zrevrangebylex; 56, call; 57, identifier:max; 58, identifier:min; 59, keyword_argument; 60, keyword_argument; 61, attribute; 62, argument_list; 63, attribute; 64, argument_list; 65, identifier:start; 66, identifier:start; 67, identifier:num; 68, identifier:num; 69, identifier:f; 70, identifier:set; 71, list_comprehension; 72, identifier:self; 73, identifier:redis_key; 74, identifier:name; 75, call; 76, for_in_clause; 77, attribute; 78, argument_list; 79, identifier:v; 80, identifier:res; 81, attribute; 82, identifier:decode; 83, identifier:v; 84, identifier:self; 85, identifier:valueparse
code: def zrevrangebylex(self, name, max, min, start=None, num=None):
          """
          Return the reversed lexicographical range of values from the sorted set
           between ``max`` and ``min``.
  
          If ``start`` and ``num`` are specified, then return a slice of the
          range.
  
          :param name: str     the name of the redis key
          :param max: int or '+inf'
          :param min: int or '-inf'
          :param start: int
          :param num: int
          :return: Future()
          """
          with self.pipe as pipe:
              f = Future()
              res = pipe.zrevrangebylex(self.redis_key(name), max, min,
                                        start=start, num=num)
  
              def cb():
                  f.set([self.valueparse.decode(v) for v in res])
  
              pipe.on_execute(cb)
              return f