![]() * Re-indent the contents of docstrings when indentation changes Keeping the contents of docstrings completely unchanged when re-indenting (from 2-space intents to 4, for example) can cause incorrect docstring indentation: ``` class MyClass: """Multiline class docstring """ def method(self): """Multiline method docstring """ pass ``` ...becomes: ``` class MyClass: """Multiline class docstring """ def method(self): """Multiline method docstring """ pass ``` This uses the PEP 257 algorithm for determining docstring indentation, and adjusts the contents of docstrings to match their new indentation after `black` is applied. A small normalization is necessary to `assert_equivalent` because the trees are technically no longer precisely equivalent -- some constant strings have changed. When comparing two ASTs, whitespace after newlines within constant strings is thus folded into a single space. Co-authored-by: Luka Zakrajšek <luka@bancek.net> * Extract the inner `_v` method to decrease complexity This reduces the cyclomatic complexity to a level that makes flake8 happy. * Blacken blib2to3's docstring which had an over-indent Co-authored-by: Luka Zakrajšek <luka@bancek.net> Co-authored-by: Zsolt Dollenstein <zsol.zsol@gmail.com> |
||
---|---|---|
.. | ||
pgen2 | ||
__init__.py | ||
Grammar.txt | ||
LICENSE | ||
PatternGrammar.txt | ||
pygram.py | ||
pytree.py | ||
README |
A subset of lib2to3 taken from Python 3.7.0b2. Commit hash: 9c17e3a1987004b8bcfbe423953aad84493a7984 Reasons for forking: - consistent handling of f-strings for users of Python < 3.6.2 - backport of BPO-33064 that fixes parsing files with trailing commas after *args and **kwargs - backport of GH-6143 that restores the ability to reformat legacy usage of `async` - support all types of string literals - better ability to debug (better reprs) - INDENT and DEDENT don't hold whitespace and comment prefixes - ability to Cythonize Change Log: - Changes default logger used by Driver