When you define a method on an object that is inheriting from NSObject (as all the plugin base classes do) you need to make sure the method names form a valid selector that works with the pyobjc runtime. To avoid that trouble, add a @objc.python_method decorator (as you did in the method mentioned in the other thread).
All function definitions have self parameters added and are defined in your order. And I found that if I had only one function to call other functions, I wouldn’t have reported an error. Several functions have called other functions, and the Python argument that reported an error will be.