Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/grantmcconnaughey/flake8rules

Descriptions and examples for the rules in Flake8 (pyflakes, pycodestyle, and mccabe).
https://github.com/grantmcconnaughey/flake8rules

flake8 mccabe pycodestyle pyflakes python

Last synced: 5 days ago
JSON representation

Descriptions and examples for the rules in Flake8 (pyflakes, pycodestyle, and mccabe).

Awesome Lists containing this project

README

        

# Flake8 Rules

Documentation and examples for the rules in [Flake8](http://flake8.pycqa.org/en/latest/index.html) ([pyflakes](https://github.com/PyCQA/pyflakes), [pycodestyle](http://pycodestyle.pycqa.org/en/latest/), and [mccabe](https://github.com/pycqa/mccabe)).

## API

Flake8 Rules includes simple API with two endpoints.

### Retrieve a single rule

This endpoints returns a single Flake8 rule.

**Heads up:** This endpoint returns JSON content but the Content-Type is set to `text/html`. This is due to Jekyll's inability to generate files with permalinks that end in `.json`.

```
$ curl https://www.flake8rules.com/api/rules/E111/
{
"code": "E111",
"message": "Indentation is not a multiple of four",
"content": "The rendered HTML content",
"links": ["https://www.python.org/dev/peps/pep-0008/#indentation"]
}
```

* `code` - The 4 character Flake8 issue code.
* `message` - A short message describing the issue.
* `content` - The fully rendered HTML content describing the issue and how to fix it.
* `links` - A list of additional links to visit for more information.

### Retrieve a list of all rules

This endpoint returns a list of all Flake8 rules.

```
$ curl https://www.flake8rules.com/api/rules.json
[
{
"code": "F812",
"message": "List comprehension redefines name from line n",
"content": "The rendered HTML content",
"links": ["https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions"]
}
]
```

## Contributing

All rules go in the `_rules` directory. They should be named with their 4 character code, like `E301.md`.

To run the jekyll development server first [install Jekyll](https://jekyllrb.com/docs/installation/). Then run the following:

```
$ bundle exec jekyll serve
```

### Documenting Errors

* pyflakes error codes: http://flake8.pycqa.org/en/latest/user/error-codes.html#error-violation-codes
* pycodestyle error codes: http://pycodestyle.pycqa.org/en/latest/intro.html#error-codes

Examples of pycodestyle error violations can be found in the project's [test suite](https://github.com/PyCQA/pycodestyle/tree/master/testsuite). This is useful for understanding violations and documenting them.