Skip to main content

Flake8 plugin to check class attributes order

Project description

made-with-python Coverage Status Code style: black Checked with flake8 Imports: isort License PyPI version PyPI pyversions PyPi downloads Downloads EO principles respected here


A flake8 plugin that checks class attributes for the proper alphabetical order.






pip install flake8-cls-attr-order
✨ 🍰 

Source code

git clone
cd flake8-cls-attr-order
python3 -m venv venv 
. venv/bin/activate
pip install -e .



  • CL100 - class name should start with upper case letter.
  • CL101 - wrong class constants order.
  • CL200 - @staticmethod is detected, should be converted to function.
  • CL201 - wrong class methods order. Order should be @property, @classmethod, @staticmethod and instance methods.



class foo:
    BAR = ()
    ABRA = {}

    def smethod(): ...

    def imethod(self): ...

    def prop(self): ...
flake8 CL100 "foo" class name should start with upper case letter CL101 wrong "foo" class constants order, should be "ABRA, BAR" CL201 wrong "foo" class methods order. Comply with @property, @classmethod, @staticmethod, instance methods. Should be "prop, smethod, imethod" CL200 "smethod" @staticmethod is detected, should be converted to function

⬆ back to top

Development notes


Unit tests

Please run the following script to start plugin unit tests:


Package tests

Please run the following script to start plugin package tests:

bats test-package.bats 


To be able to run code analysis, please execute command below:



Author – Vladimir Yahello.

Distributed under the MIT license. See license for more information.

You can reach out me at:


I would highly appreciate any contribution and support. If you are interested to add your ideas into project please follow next simple steps:

  1. Clone the repository
  2. Configure git for the first time after cloning with your name and email
  3. pip install -r requirements.txt to install all project dependencies
  4. pip install -r requirements-dev.txt to install all development project dependencies
  5. Create your feature branch (git checkout -b feature/fooBar)
  6. Commit your changes (git commit -am 'Add some fooBar')
  7. Push to the branch (git push origin feature/fooBar)
  8. Create a new Pull Request

What's next

All recent activities and ideas are described at project issues page. If you have ideas you want to change/implement please do not hesitate and create an issue.

⬆ back to top

Project details

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

flake8_cls_attr_order-0.3.0-py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 3

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