#NEWLINE# def push( self , task , func , * args , **kwargs ) : #NEWLINE# #INDENT# "\n        Pushes a configured task onto the queue.\n\n        Typically, you'll favor using the ``Gator.task`` method or\n        ``Gator.options`` context manager for creating a task. Call this\n        only if you have specific needs or know what you're doing.\n\n        If the ``Task`` has the ``async = False`` option, the task will be\n        run immediately (in-process). This is useful for development and\n        in testing.\n\n        Ex::\n\n            task = Task(async=False, retries=3)\n            finished = gator.push(task, increment, incr_by=2)\n\n        :param task: A mostly-configured task\n        :type task: A ``Task`` instance\n\n        :param func: The callable with business logic to execute\n        :type func: callable\n\n        :param args: Positional arguments to pass to the callable task\n        :type args: list\n\n        :param kwargs: Keyword arguments to pass to the callable task\n        :type kwargs: dict\n\n        :returns: The ``Task`` instance\n        " #NEWLINE# task . to_call ( func , * args , ** kwargs ) #NEWLINE# data = task . serialize ( ) #NEWLINE# if task . async : #NEWLINE# #INDENT# task . task_id = self . backend . push ( self . queue_name , task . task_id , data ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# self . execute ( task ) #NEWLINE# #UNINDENT# return task