Skip to the content.

Screenshot

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

flake8-cls-attr-order

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

Tools

Production

Development

Installation

PYPI

pip install flake8-cls-attr-order
✨ 🍰 ✨

Source code

git clone git@github.com:vyahello/flake8-cls-attr-order.git
cd flake8-cls-attr-order
python3 -m venv venv 
. venv/bin/activate
pip install -e .

Errors

Codes

Sample

# cls.py

class foo:
    BAR = ()
    ABRA = {}

    @staticmethod
    def smethod(): ...

    def bmethod(self): ...

    def amethod(self): ...

    @property
    def pmethod(self): ...

    @classmethod
    def cmethod(cls): ...
flake8 cls.py
cls.py:1:1: CL100 "foo" class name should start with upper case letter
cls.py:1:1: CL101 wrong "foo" class constants order, should be "ABRA, BAR"
cls.py:1:1: CL201 wrong "foo" class methods order. Comply with @property, @classmethod, @staticmethod, instance methods. Should be "pmethod, cmethod, smethod, amethod, bmethod"
cls.py:6:5: CL200 "smethod" @staticmethod is detected, should be converted to function

⬆ back to top

Development notes

Testing

Unit tests

Please run the following script to start plugin unit tests:

pytest 

Package tests

Please run the following script to start plugin package tests:

bats test-package.bats 

CI

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

./analyse-source-code.sh

Meta

Author – Vladimir Yahello.

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

You can reach out me at:

Contributing

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