<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, policy_id, limit=None, offset=None):
 """ This API endpoint returns a paginated list of alert conditions for infrastucture metrics associated with the given policy_id. :type policy_id: int :param policy_id: Alert policy id :type limit: string :param limit: Max amount of results to return :type offset: string :param offset: Starting record to return :rtype: dict :return: The JSON response of the API, with an additional 'pages' key if there are paginated results :: { "data": [ { "id": "integer", "policy_id": "integer", "type": "string", "name": "string", "enabled": "boolean", "where_clause": "string", "comparison": "string", "filter": "hash", "critical_threshold": "hash", "process_where_clause": "string", "created_at_epoch_millis": "time", "updated_at_epoch_millis": "time" } ], "meta": { "limit": "integer", "offset": "integer", "total": "integer" } } """


        filters = [
            'policy_id={0}'.format(policy_id),
            'limit={0}'.format(limit) if limit else '50',
            'offset={0}'.format(offset) if offset else '0'
        ]

        return self._get(
            url='{0}alerts/conditions'.format(self.URL),
            headers=self.headers,
            params=self.build_param_string(filters)
        )