<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def members_from_rank_range_in(
            self, leaderboard_name, starting_rank, ending_rank, **options):
        '''
        Retrieve members from the named leaderboard within a given rank range.

        @param leaderboard_name [String] Name of the leaderboard.
        @param starting_rank [int] Starting rank (inclusive).
        @param ending_rank [int] Ending rank (inclusive).
        @param options [Hash] Options to be used when retrieving the data from the leaderboard.
        @return members from the leaderboard that fall within the given rank range.
        '''
        starting_rank -= 1
        if starting_rank < 0:
            starting_rank = 0

        ending_rank -= 1
        if ending_rank > self.total_members_in(leaderboard_name):
            ending_rank = self.total_members_in(leaderboard_name) - 1

        raw_leader_data = []
        if self.order == self.DESC:
            raw_leader_data = self.redis_connection.zrevrange(
                leaderboard_name,
                starting_rank,
                ending_rank,
                withscores=False)
        else:
            raw_leader_data = self.redis_connection.zrange(
                leaderboard_name,
                starting_rank,
                ending_rank,
                withscores=False)

        return self._parse_raw_members(
            leaderboard_name, raw_leader_data, **options)