Skip to main content

flake8 plugin that checks rules regarding the staticmethod and classmethod decorators.

Project description

flake8-classmethod-staticmethod

Build Status Build Status

flake8 plugin that checks rules regarding the staticmethod and classmethod decorators.

Options

The plugin offers one flag, --select_csm1, accepting a list of error codes (see below) to be enabled. By default, the enabled errors are CSM101 and CSM131.

Error Codes

CSM100

@staticmethod should not be used.

CSM101

A method marked as @staticmethod should not reference the class it is defined in. Use @classmethod otherwise.

Bad

class MyClass:
    @staticmethod
    def my_name():
        return MyClass.__name__

Good

class MyClass:
    @classmethod
    def my_name(cls):
        return cls.__name__

CSM102

Do not inherit and override a method marked as @staticmethod.

Bad

class MyClass:
    @staticmethod
    def my_name():
        return "MyClass"

class MyChild:
    @staticmethod
    def my_name():
        return "MyChild"

Good

class MyClass:
    @classmethod
    def my_name(cls):
        return cls.__name__

CSM130

@classmethod should not be used.

CSM131

A method marked as @classmethod should access the parameter cls. Use @staticmethod otherwise.

Bad

class MyClass:
    @classmethod
    def my_name(cls):
        return "MyClass"

Good

class MyClass:
    @staticmethod
    def my_name():
        return "MyClass"

CSM132

A method marked as @classmethod should not reference the class it is defined in. Use the cls parameter.

class MyClass:
    @classmethod
    def my_name(cls):
        return MyClass.__name__

Good

class MyClass:
    @classmethod
    def my_name(cls):
        return cls.__name__

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flake8-classmethod-staticmethod-2.0.tar.gz (3.8 kB view hashes)

Uploaded Source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page