hi everyone,
I try to make a decorator to add a command in the "repeatlast" python maya
command.
Only every time it returns me an error :
// Error: Line 2.91: Invalid use of Maya object "False". //
So I would try to do the same command but mel and it works.
But! the decorator needs a language Python and when I repeat command (G
key) I have an error message.
I can shunt the problem with a try / except but I think it's not very
clean. I would like to run the Python command.
Here is my code:
def repeat_command(function):
def wrapper(*args, **kwargs):
modules = ''
arguments = args
if [x for x in ['cls', 'self'] if x in function.func_code.co_varnames]:
arguments = args[1:]
modules = '%s.' % args[0]
args_string = ''
if args:
for each in arguments:
args_string = '%s, ' % each
kwargs_string = ''
if kwargs:
for key, item in kwargs.iteritems():
kwargs_string = '%s=%s, ' % (key, item)
ret = function(*args, **kwargs)
repeat_command = '%s%s(%s%s)' % (modules, function.__name__,
args_string, kwargs_string)
if not args_string == '' and not kwargs_string == '':
repeat_command = '%s%s(%s, %s)' % (modules, function.__name__,
args_string, kwargs_string)
pmc.repeatLast(addCommand='import qdTools\n%s\n' % repeat_command,
addCommandLabel='qdCommand')
# try:
# pm.callLastCommand('python("import qdTools;%s")' % repeat_command)
# except:
# pass
return ret
return wrapper
Any one have idea?
--
You received this message because you are subscribed to the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/16534d51-4209-4ce5-882f-2b8dbf976d38%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.