Skip to main content

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. A special case that is exempt is a method that has a call to super().

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__

Release files for flake8-classmethod-staticmethod 2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flake8-classmethod-staticmethod 2.1
File Size Uploaded
flake8_classmethod_staticmethod-2.1.tar.gz 4.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flake8-classmethod-staticmethod 2.1
File Interpreter ABI Platform
flake8_classmethod_staticmethod-2.1-py3-none-any.whl Python 3 none any Details

Total release size: 9.4 kB

Release files / flake8_classmethod_staticmethod-2.1.tar.gz

Download URL flake8_classmethod_staticmethod-2.1.tar.gz
Size 4.6 kB
Tags Source
SHA-256 checksum
How to use checksums
26eba8e11e44f7f6a41cca49bf875e3e7d1ef8b06de84ebf496bb9b6845d3d52
BLAKE2b-256 checksum
How to use checksums
cd5e35b53a5fb9e490260365b03443065b68221d5596970579807bf560e37bf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.3

Release files / flake8_classmethod_staticmethod-2.1-py3-none-any.whl

Download URL flake8_classmethod_staticmethod-2.1-py3-none-any.whl
Size 4.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
44ca4822be9e403456d650c3edba0b2805dcd51f10dbe5bde05b8b104ffcd74f
BLAKE2b-256 checksum
How to use checksums
2cefb7292f6a3146d86bd2be38ec35db5c53116f4511b4ed92d585c06ef46b97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

2.1 This release

2 release files

2.0

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page