import celery.app.task

class Task(celery.app.task.Task):
    def __call__(self, *args, **kwargs):
        res = super().__call__(*args, **kwargs)
        return self._to_native(res)

    def _to_native(self, data):
        if hasattr(data, 'to_dict'):
            return data.to_dict()
        else:
            return data