By convention, the first argument to class methods, i.e. methods decorated with ``++@classmethod++``, is named ``++cls++`` as a representation and a reminder that the argument is the class itself. Name the argument something else, and you stand a good chance of confusing both users and maintainers of the code. It might also indicate that the ``++cls++`` parameter was forgotten, in which case calling the method will most probably fail. This rule also applies to methods ``++__init_subclass__++``, ``++__class_getitem__++`` and ``++__new__++`` as their first argument is always the class instead of "self".
By default this rule accepts ``++cls++`` and ``++mcs++``, which is sometime used in metaclasses, as valid names for class parameters. You can set your own list of accepted names via the parameter ``++classParameterNames++``.
This rule raises an issue when the first parameter of a class method is not an accepted name.
\[~ann.campbell.2] I would suggest label "convention" here
=== on 18 Mar 2015, 16:24:14 Ann Campbell wrote:
There is some question about class vs metaclass method vs instance method. Postponing this rule until that's settled. Updates may be needed at that time.