21 lines
594 B
Python
21 lines
594 B
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Decorators for bound classes
|
|
"""
|
|
from decorator import decorator
|
|
|
|
@decorator
|
|
def suspend(func, self, *args, **kw):
|
|
"""
|
|
This decorator will try to suspend DF and start needed module before running func.
|
|
If DF was resumed when decorator was run, it will try to resume back after executing func
|
|
"""
|
|
susp = not self.api.is_attached or self.api.is_suspended
|
|
if self.prepare():
|
|
res = func(self, *args, **kw)
|
|
if not susp:
|
|
self.api.Resume()
|
|
return res
|
|
else:
|
|
raise Exception(u"Could not suspend/start")
|