Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
The argument self should not appear in any of the following static method declarations that are part of the generated Python C4D API skeletal/placeholder code, since any good Python IDE will complain and/or flag correct user code that use these methods.
In the future, you guys can do something like the following in ...resource\modules\python\libs:
...resource\modules\python\libs
# You can also add the -n flag to the first grep in the pipe chain below, to add line number info after the file name grep -R -A2 -H "@staticmethod" * 2>&1 | grep -v "MAXON_" | grep -PB2 "def.*?self"
I am not sure if the above grep comprehensively captures every one of these issues, but 99-100% of them should have been caught:
python39/c4d/bitmaps/__init__.py: @staticmethod python39/c4d/bitmaps/__init__.py- def AllocWrapper(self, bmp): -- python39/c4d/modules/mograph/__init__.py: @staticmethod python39/c4d/modules/mograph/__init__.py- def Create(self, flags, thread, doc, currentThreadIndex, threadCount, inputs, callers): -- python39/c4d/utils/__init__.py: @staticmethod python39/c4d/utils/__init__.py- def PickObject(self, bd, doc, x, y, rad, flags): -- python39/c4d/__init__.py: @staticmethod python39/c4d/__init__.py- def GetDistance(self, v1, v2): -- python39/maxon/decorators.py: @staticmethod python39/maxon/decorators.py- @wraps(fn) python39/maxon/decorators.py- def Auto(self, *args): -- python39/maxon/decorators.py: @staticmethod python39/maxon/decorators.py- @wraps(fn) python39/maxon/decorators.py- def ReferenceConvert(self, *args): -- python39/maxon/decorators.py: @staticmethod python39/maxon/decorators.py- @wraps(fn) python39/maxon/decorators.py- def Wrap(self, *args): -- python39/maxon/decorators.py: @staticmethod python39/maxon/decorators.py- @wraps(fn) python39/maxon/decorators.py- def NativeDataOrBuiltin(self, *args): -- python39/maxon/decorators.py: @staticmethod python39/maxon/decorators.py- @wraps(fn) python39/maxon/decorators.py- def _MaxonConvertOrFail(self, *args): -- python39/maxon/interface.py: @staticmethod python39/maxon/interface.py- def Free(self): -- python39/maxon/interface.py: @staticmethod python39/maxon/interface.py- def GetLocal(self): -- python39/maxon/interface.py: @staticmethod python39/maxon/interface.py- def AllocEmpty(self): -- python39/maxon/interface.py: @staticmethod python39/maxon/interface.py- def AllocFromUuid(self, uuid): -- python39/maxon/interface.py: @staticmethod python39/maxon/interface.py- def AllocFromString(self, uuidStr): -- python39/maxon/interface.py: @staticmethod python39/maxon/interface.py- def DescribeIO(self): -- python39/maxon/interface.py: @staticmethod python39/maxon/interface.py- def CreateUuidString(self): -- python39.win64.framework/lib/pathlib.py: @staticmethod python39.win64.framework/lib/pathlib.py- def link_to(self, target):
Also, for all of the following, the @classmethod attribute should be changed to @staticmethod and the self argument should be removed, just like for the above cases:
@classmethod
@staticmethod
self
python39.win64.framework/lib/importlib/_bootstrap.py- @classmethod python39.win64.framework/lib/importlib/_bootstrap.py: def create_module(self, spec): -- python39.win64.framework/lib/importlib/_bootstrap.py- @classmethod python39.win64.framework/lib/importlib/_bootstrap.py: def exec_module(self, module): -- python39.win64.framework/lib/_collections_abc.py- @classmethod python39.win64.framework/lib/_collections_abc.py: def _from_iterable(self, it): -- python39.win64.framework/lib/_collections_abc.py- @classmethod python39.win64.framework/lib/_collections_abc.py: def _from_iterable(self, it):
Thanks a lot some are false positive or even coming from the standard library.
But I will fix the one that are wrong and update the doc
Cheers, Maxime.
Hi, Maxime, great!
if I come across any additional issues of a similar nature, I'll update this post.