<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def range(cls, collection, attribute, left, right, closed, index_id, skip=None, limit=None):
 """ This will find all documents within a given range. In order to execute a range query, a skip-list index on the queried attribute must be present. :param collection Collection instance :param attribute The attribute path to check :param left The lower bound :param right The upper bound :param closed If true, use interval including left and right, otherwise exclude right, but include left :param index_id ID of the index which should be used for the query :param skip The number of documents to skip in the query :param limit The maximal amount of documents to return. The skip is applied before the limit restriction. :returns Document list """


        kwargs = {
            'index': index_id,
            'attribute': attribute,
            'left': left,
            'right': right,
            'closed': closed,
            'skip': skip,
            'limit': limit,
        }

        return cls._construct_query(name='range',
                                    collection=collection, multiple=True,
                                    **kwargs)