<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def list(self, pagination=True, page_size=None, page=None, **queryparams):
 """ Retrieves a list of objects. By default uses local cache and remote pagination If pagination is used and no page is requested (the default), all the remote objects are retrieved and appended in a single list. If pagination is disabled, all the objects are fetched from the endpoint and returned. This may trigger some parsing error if the result set is very large. :param pagination: Use pagination (default: `True`) :param page_size: Size of the pagination page (default: `100`). Any non numeric value will be casted to the default value :param page: Page number to retrieve (default: `None`). Ignored if `pagination` is `False` :param queryparams: Additional filter parameters as accepted by the remote API :return: <SearchableList> """

        if page_size and pagination:
            try:
                page_size = int(page_size)
            except (ValueError, TypeError):
                page_size = 100
            queryparams['page_size'] = page_size
        result = self.requester.get(
            self.instance.endpoint, query=queryparams, paginate=pagination
        )
        objects = SearchableList()
        objects.extend(self.parse_list(result.json()))
        if result.headers.get('X-Pagination-Next', False) and not page:
            next_page = 2
        else:
            next_page = None
        while next_page:
            pageparams = queryparams.copy()
            pageparams['page'] = next_page
            result = self.requester.get(
                self.instance.endpoint, query=pageparams,
            )
            objects.extend(self.parse_list(result.json()))
            if result.headers.get('X-Pagination-Next', False):
                next_page += 1
            else:
                next_page = None
        return objects