Closed GoogleCodeExporter closed 9 years ago
This looks to be a duplicate of issue 295, which contains a fix for the problem.
Original comment by dean.edm...@gmail.com
on 23 Jan 2014 at 1:33
While you can simply add __apicls__ to the list of accepted attributes, it
seemed like a sort of hacky fix to me, since __apicls__ was not present in the
exceptions in earlier versions of pymel, yet it still worked fine.
I did some digging and found a difference in
pymel.internal.factories.MetaMayaNodeWrapper.__new__ where the __apicls__
attribute is actually added to the nodes:
# 2014
if apicls is not None:
classdict['__apicls__'] = apicls
# 2011
if apicls is not None:
if apicls in MetaMayaNodeWrapper.completedClasses:
pass
else:
MetaMayaNodeWrapper.completedClasses[ apicls ] = classname
classdict['__apicls__'] = apicls
Essentially, in 2011, the __apicls__ attr was only added to a node if it had
not already been added to a parent node. This basically meant that abstract
node types had the __apicls__ attribute, while the concrete subclasses would
not, and would work as Virtual Classes.
I think this change is actually the source of the issue.
Original comment by kyle.mis...@gmail.com
on 24 Jan 2014 at 9:35
fixed with:
https://github.com/LumaPictures/pymel/commit/a257f00b37ef9796bbca154d4bc7293ac45
b18dc
Original comment by elron...@gmail.com
on 24 Jan 2014 at 10:37
Original issue reported on code.google.com by
kyle.mis...@gmail.com
on 20 Sep 2013 at 12:45