Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

flake8-classmethod-staticmethod

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flake8-classmethod-staticmethod

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

  • 2.1
  • PyPI
  • Socket score

Maintainers
1

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__

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc