A flake8 on both your houses
Катаев Денис
Tinkoff.ru
flake8
Утилита по принуждению к codestyle'у
Хорошо известна
Но не работает с кодом в документации
Sphinx docs
*.rst & docstrings
Code snippets

1. default lang, some text::
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///:memory:', echo=True)
2. explicit lang, Some text:
.. sourcecode:: python
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///:memory:', echo=True)
3. explicit lang too, some text:
.. code-block:: python
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///:memory:', echo=True)
styleguide for code snippets in docs
flake8-rst
pip install flake8-rst
all flake8 plugins and settings
Copy into [flake8-rst] settings block


Add to tox or/and CI
tests/data/test.py:14:42: F821 undefined name 'metadata'
tests/data/test.py:15:13: E128 continuation line under-indented for visual indent
tests/data/test.py:16:28: F821 undefined name 'JSONB'
tests/data/test.py:19:14: F821 undefined name 'engine'
tests/data/test.py:22:21: E251 unexpected spaces around keyword / parameter equals
tests/data/test.py:22:23: E251 unexpected spaces around keyword / parameter equals
tests/data/test.rst:27:48: F821 undefined name 'metadata'
tests/data/test.rst:41:22: F821 undefined name 'meta'
tests/data/test.rst:56:52: F821 undefined name 'meta'
tests/data/test.rst:57:32: F821 undefined name 'meta'
tests/data/test.rst:69:20: F821 undefined name 'Base'
tests/data/test.rst:72:56: F821 undefined name 'Base'
Fix issues & take fun
On board
- sqlalchemy (PR open)
- gensim (PR merged)
- ...
- PROFIT!!!
Flake8 на оба ваших дома!
By Denis Kataev
Flake8 на оба ваших дома!
- 1,060