Skip to content

Commit f93cb87

Browse files
orbeckstlilyminium
andauthored
updated line length in code contrib section (#348)
* updated line length in code contrib section - fix #347 - add note on black * trimmed trailing whitespace * revert back to 79 chars as default * encouraged use of darker instead of black * Update doc/source/contributing_code.rst Co-authored-by: Lily Wang <[email protected]> --------- Co-authored-by: Lily Wang <[email protected]>
1 parent 85800e8 commit f93cb87

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

doc/source/contributing_code.rst

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -397,8 +397,8 @@ Code formatting in Python
397397

398398
MDAnalysis is a project with a long history and many contributors; it hasn't used a consistent coding style. Since version 0.11.0, we are trying to update all the code to conform with `PEP8`_. Our strategy is to update the style every time we touch an old function and thus switch to `PEP8`_ continuously.
399399

400-
**Important requirements (from PEP8):**
401-
- keep line length to **79 characters or less**; break long lines sensibly
400+
**Important requirements (from PEP8)**:
401+
- keep line length to **79 characters or less**; break long lines sensibly although for readability we may allow longer lines
402402
- indent with **spaces** and use **4 spaces per level**
403403
- naming:
404404

@@ -408,6 +408,7 @@ MDAnalysis is a project with a long history and many contributors; it hasn't use
408408
We recommend that you use a Python Integrated Development Environment (IDE) (`PyCharm`_ and others) or external tools like `flake8`_ for code linting. For integration of external tools with emacs and vim, check out `elpy`_ (emacs) and `python-mode`_ (vim).
409409

410410
To apply the code formatting in an automated way, you can also use code formatters. External tools include `autopep8`_ and `yapf`_. Most IDEs either have their own code formatter or will work with one of the above through plugins.
411+
See :ref:`format-darker` for notes on maintaining code style compliance with existing tools.
411412

412413

413414
.. _`PEP8`: https://www.python.org/dev/peps/pep-0008/
@@ -475,7 +476,7 @@ Changes to the code should be reflected in the ongoing ``CHANGELOG``. Add an ent
475476
Ensure PEP8 compliance (mandatory) and format your code with Darker (optional)
476477
-------------------------------------------------------------------------------
477478

478-
`Darker <https://github.com/akaihola/darker>`_ is a *partial formatting* tool that helps to reformat new or modified code
479+
`darker`_ is a *partial formatting* tool that helps to reformat new or modified code
479480
lines so the codebase progressively adapts a code style instead of doing a full reformat,
480481
which would be a big commitment. It was designed with the ``black`` formatter in mind, hence the name.
481482

@@ -515,6 +516,20 @@ Or if you're ok with the suggested formatting changes, just apply the suggested
515516
darker -r upstream/develop testsuite/MDAnalysisTests -L flake8
516517

517518

519+
.. note::
520+
521+
MDAnalysis does *not* currently use the popular `black`_ code formatter across the whole project, therefore please consider the following rules:
522+
523+
* **Do not run** ``black`` on an existing file that you are editing. This makes the diff for the PR very difficult to read. Instead use ``darker`` as explained above to only reformat your changes.
524+
* You *may* run ``black`` on a *new file* that you are adding to the code base.
525+
526+
For an ongoing discussion (which you are welcome to join) see `issue #2450`_.
527+
528+
.. _`darker`: https://github.com/akaihola/darker
529+
.. _`black`: https://black.readthedocs.io/
530+
.. _`issue #2450`: https://github.com/MDAnalysis/mdanalysis/issues/2450
531+
532+
518533
.. _adding-code-to-mda:
519534

520535
------------------------------

0 commit comments

Comments
 (0)