1 | initial version |
Here are some ideas for making the @parallel
decorator usable on methods.
I did not check the code. But usually, a decorator takes as its argument a function f. Now, it is easy to check whether f is a plain function or a method: Use ismethod()
or ismethoddescriptor()
from the inspect
module.
On top of that, one may even think of making @parallel
usable on wrapped methods, such as
@parallel
@cached_method
def my_method(self, L,**args):
In that case, the function put into the @parallel decorator would be an instance of a CachedMethodCaller. Those things could be tested with the function isclassinstance()
from sage.misc.sageinspect
. Perhaps that particular example does not make sense, but it may still be a case to be taken into account.