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
:
# 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:
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):