<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def tasks(self, pattern=None, negate=False, state=None, limit=None, reverse=True, params=None, success=False, error=True):
 """Filters stored tasks and displays their current statuses. Note that, to be able to list the tasks sorted chronologically, celery retrieves tasks from the LRU event heap instead of the dict storage, so the total number of tasks fetched may be different than the server `max_tasks` setting. For instance, the `limit` field refers to max events searched, not max tasks. Args: Filter args: pattern (Optional[str]):
 a pattern to filter tasks ex.: '^dispatch|^email' to filter names starting with that or 'dispatch.*123456' to filter that exact name and number or even '123456' to filter that exact number anywhere. negate (bool):
 if True, finds tasks that do not match criteria state (Optional[str]):
 a celery task state to filter limit (int):
 the maximum number of events to fetch if None or 0, fetches all. reverse (bool):
 if True (default), shows the most recent first Display args: params (Optional[bool]):
 if True shows args and kwargs in the first and last seen states, if False never shows, and if None follows the success and error arguments. default is None success (bool):
 if True shows successful tasks' results default is False error (bool):
 if True shows failed and retried tasks' tracebacks. default is True, as you're monitoring to find errors, right? """

        request = clearly_pb2.FilterTasksRequest(
            tasks_filter=clearly_pb2.PatternFilter(pattern=pattern or '.',
                                                   negate=negate),
            state_pattern=state or '.', limit=limit, reverse=reverse
        )

        for task in about_time(ClearlyClient._fetched_callback, self._stub.filter_tasks(request)):
            ClearlyClient._display_task(task, params, success, error)