Skip to content

Commit

Permalink
Refs #33476 -- Adjusted docs and config files for Black.
Browse files Browse the repository at this point in the history
Co-authored-by: Mariusz Felisiak <[email protected]>
  • Loading branch information
carltongibson and felixxm committed Feb 7, 2022
1 parent 6f185a5 commit ba94488
Show file tree
Hide file tree
Showing 9 changed files with 54 additions and 45 deletions.
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ charset = utf-8

# Docstrings and comments use max_line_length = 79
[*.py]
max_line_length = 119
max_line_length = 88

# Use 2 spaces for the HTML files
[*.html]
Expand Down
4 changes: 4 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
repos:
- repo: https://github.com/psf/black
rev: 22.1.0
hooks:
- id: black
- repo: https://github.com/PyCQA/isort
rev: 5.9.3
hooks:
Expand Down
42 changes: 14 additions & 28 deletions docs/internals/contributing/writing-code/coding-style.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,13 @@ them.
Python style
============

* Please conform to the indentation style dictated in the ``.editorconfig``
file. We recommend using a text editor with `EditorConfig`_ support to avoid
indentation and whitespace issues. The Python files use 4 spaces for
indentation and the HTML files use 2 spaces.
* All files should be formatted using the `black`_ auto-formatter. This will be
run by ``pre-commit`` if that is configured.

* The project repository includes an ``.editorconfig`` file. We recommend using
a text editor with `EditorConfig`_ support to avoid indentation and
whitespace issues. The Python files use 4 spaces for indentation and the HTML
files use 2 spaces.

* Unless otherwise specified, follow :pep:`8`.

Expand All @@ -51,33 +54,11 @@ Python style

An exception to :pep:`8` is our rules on line lengths. Don't limit lines of
code to 79 characters if it means the code looks significantly uglier or is
harder to read. We allow up to 119 characters as this is the width of GitHub
code review; anything longer requires horizontal scrolling which makes review
more difficult. This check is included when you run ``flake8``. Documentation,
harder to read. We allow up to 88 characters as this is the line length used
by ``black``. This check is included when you run ``flake8``. Documentation,
comments, and docstrings should be wrapped at 79 characters, even though
:pep:`8` suggests 72.

* Use four spaces for indentation.

* Use four space hanging indentation rather than vertical alignment::

raise AttributeError(
'Here is a multiline error message '
'shortened for clarity.'
)

Instead of::

raise AttributeError('Here is a multiline error message '
'shortened for clarity.')

This makes better use of space and avoids having to realign strings if the
length of the first line changes.

* Use single quotes for strings, or a double quote if the string contains a
single quote. Don't waste time doing unrelated refactoring of existing code
to conform to this style.

* String variable interpolation may use
:py:ref:`%-formatting <old-string-formatting>`, :py:ref:`f-strings
<f-strings>`, or :py:meth:`str.format` as appropriate, with the goal of
Expand Down Expand Up @@ -146,6 +127,10 @@ Python style
"""
...

.. versionchanged:: 4.0.3

All Python code in Django was reformatted with `black`_.

.. _coding-style-imports:

Imports
Expand Down Expand Up @@ -397,5 +382,6 @@ JavaScript style
For details about the JavaScript code style used by Django, see
:doc:`javascript`.

.. _black: https://black.readthedocs.io/en/stable/
.. _editorconfig: https://editorconfig.org/
.. _flake8: https://pypi.org/project/flake8/
Original file line number Diff line number Diff line change
Expand Up @@ -290,9 +290,9 @@ All code changes

* Does the :doc:`coding style
</internals/contributing/writing-code/coding-style>` conform to our
guidelines? Are there any ``flake8`` errors? You can install the
:ref:`pre-commit <coding-style-pre-commit>` hooks to automatically catch
these errors.
guidelines? Are there any ``black``, ``flake8``, or ``isort`` errors? You
can install the :ref:`pre-commit <coding-style-pre-commit>` hooks to
automatically catch these errors.
* If the change is backwards incompatible in any way, is there a note
in the release notes (``docs/releases/A.B.txt``)?
* Is Django's test suite passing?
Expand Down
12 changes: 7 additions & 5 deletions docs/internals/contributing/writing-code/unit-tests.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,16 +69,18 @@ command from any place in the Django source tree:
$ tox

By default, ``tox`` runs the test suite with the bundled test settings file for
SQLite, ``flake8``, ``isort``, and the documentation spelling checker. In
addition to the system dependencies noted elsewhere in this documentation,
the command ``python3`` must be on your path and linked to the appropriate
version of Python. A list of default environments can be seen as follows:
SQLite, ``black``, ``flake8``, ``isort``, and the documentation spelling
checker. In addition to the system dependencies noted elsewhere in this
documentation, the command ``python3`` must be on your path and linked to the
appropriate version of Python. A list of default environments can be seen as
follows:

.. console::

$ tox -l
py3
flake8
black
flake8>=3.7.0
docs
isort>=5.1.0

Expand Down
5 changes: 4 additions & 1 deletion docs/releases/4.0.3.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ Django 4.0.3 release notes

*Expected March 1, 2022*

Django 4.0.3 fixes several bugs in 4.0.2.
Django 4.0.3 fixes several bugs in 4.0.2. Also, all Python code in Django is
reformatted with `black`_.

.. _black: https://pypi.org/project/black/

Bugfixes
========
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
[build-system]
requires = ['setuptools>=40.8.0', 'wheel']
build-backend = 'setuptools.build_meta:__legacy__'

[tool.black]
target-version = ['py38']
extend-exclude = 'tests/test_runner_apps/tagged/tests_syntax_error.py'
14 changes: 8 additions & 6 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,15 @@ install_script = scripts/rpm-install.sh

[flake8]
exclude = build,.git,.tox,./tests/.env
ignore = W504,W601
max-line-length = 119
extend-ignore = E203
max-line-length = 88
per-file-ignores =
django/core/cache/backends/filebased.py:W601
django/core/cache/backends/base.py:W601
django/core/cache/backends/redis.py:W601
tests/cache/tests.py:W601

[isort]
combine_as_imports = true
profile = black
default_section = THIRDPARTY
include_trailing_comma = true
known_first_party = django
line_length = 79
multi_line_output = 5
10 changes: 9 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ minversion = 3.18
skipsdist = true
envlist =
py3
flake8
black
flake8 >= 3.7.0
docs
isort >= 5.1.0

Expand All @@ -31,6 +32,13 @@ changedir = tests
commands =
{envpython} runtests.py {posargs}

[testenv:black]
basepython = python3
usedevelop = false
deps = black
changedir = {toxinidir}
commands = black --check --diff .

[testenv:flake8]
basepython = python3
usedevelop = false
Expand Down

0 comments on commit ba94488

Please sign in to comment.