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