Internal Docs¶
Here you can find:
- How our development process works
- How to contribute to the project
- How to write new rules
- How our internal API looks like
This information will also be helpful
if you would like to create our own flake8
plugin.
How to read this documentation¶
You will need to start from the glossary where we define the terms for this project.
Then move to the contributing guide where we specify all technical details about our workflow and tools.
Then you will be ready to dive into our “Creating a new rule tutorial”.
And finally you will need to go through the API reference to cover specific technical questions you will encounter.
Philosophy¶
- Done is better than perfect
- However, we pursuit perfect software
- False negatives over false positives
- If you can not sustain your promise - do not promise
- Code must be written for people to read, and only incidentally for machines to execute
- Value consistency over syntax-ish readability
- Consistent code is more readable then inconsistent
- Do not force people to choose, they will make mistakes
- Made choices must be respected
Overview¶
This schema should give you a brief overview of what is happening inside our linter. This is a very simplified architecture that will help you to understand how all components are bound together.
We use a layered architecture that follows this contract:
Linting process:
containers:
- wemake_python_styleguide
layers:
- checker
- transformations
- presets
- visitors
- violations
- logics
- options