Setup¶
Remember that wemake-python-styleguide
is just a flake8
plugin.
Running¶
To run our linter you will need to run flake8
in any way you like:
flake8 your_module.py
flake8 your_package
See the flake8
docs for options
and usage examples.
Golden rule is to run your linter on each commit locally and inside the CI. And to fail the build if there are any style violations.
Ignoring violations¶
We know that people might not agree with 100% of our rules. But we still want to provide the best experience for all users.
So, you can disable some checks, that you are not ok with. Note: you might accidentally break the consistency of this project, when you disable some checks. We do not officially recommend to do it.
There are three ways to ignore some specific violations:
Inline ignore with
# noqa:
comment and comma separated violation codesCommand line argument
--ignore
with comma separated violation codesConfiguration line inside
setup.cfg
ortox.ini
, example
You can ignore:
Whole
Z
letter, this will completely turn off all our custom checksSome specific group (naming, complexity, consistency, best practices) with
Z
and the first numberSome specific violation with the full violation code
Use per-file-ignores option, so it is possible to ignore violations on a per-file bases. It means, that you can have different set of violations ignored for different files.
Read more about ignoring violations in the official docs.
Legacy projects¶
Introducing this package to a legacy project is almost impossible. Due to strict quality, consistency, and complexity rules.
But, you still can do several things to integrate this linter step by step:
Fix consistency, naming and best-practices violations, they are the easiest to clean up.
Per-file ignore complexity checks that are failing for your project. Sometimes it is possible to rewrite several parts of your code, but generally complexity rules are the hardest to fix.
Use boyscout rule: always leave your code better than you found it.
You can also only lint recently changed files.
You can also use –diff option
of flake8
to lint the latest changes only.
This might have different errors,
and this mode is not officially supported for now.