On Sun, Nov 14, 2021 at 6:14 PM Charles R Harris <charlesr.har...@gmail.com>
wrote:

> Hi All,
>
> This post is for discussing the automatic code formatters for C/C++/*.py
> that are now available. The current options, as I see them, are
> clang-format (C/C++) and black (*.py, *.pyi, etc). Neither is perfect to my
> eye, but I think they are good enough at this point and would reduce amount
> of style nitpicking.
>
> *clang-format*
>
> There is already a '.clang-format' file in the numpy repository. The main
> drawbacks that I see are:
>
>    - no automatic spacing between function definitions,
>    - all operators, including '*' and '/',  get spaces around them,
>    - no extra indenting of continued 'if' conditions,
>    - the order of includes is alphabetical within groups. The groups are
>    currently defined in the 'clang-format' file, but there may still be
>    problems with include order that we will need to fix.
>
> I think those can be lived with. The results are good enough that I think
> it can replace the official C coding style for most things. The maximum
> line length is currently 79 characters.
>
> *black*
>
> The black formatter is much improved in its latest version and I think
> good enough to start using. The main drawbacks that I see are:
>
>    - all operators, including '*' and '/',  get spaces around them,
>    - very long strings are not broken into multiple lines,
>    - lists, tuples, and function signatures are either on one line, or
>    broken into multiple lines of one element/argument each,
>    - the formatting of extended logical expressions could be improved to
>    emphasize the priority of 'and' over 'or' operators
>
> There is no current configuration in pyproject.toml, the default maximum
> line length is 88 characters. I note that setting the line length to 79
> notably increases the number of line breaks needed. Note that double quotes
> are now preferred to single quotes.
>
> I think that including black configuration in pyproject.toml would be a
> good idea, the main question is line length, 79 or 88 characters. The same
> question of line length can also be raised for clang-format. Lines much
> longer than 88 are characters are not only a problem for terminals, they
> are also hard to focus on if you have bad eyes, but lines longer
> than 79 characters also reduce the number of line breaks needed.
>
> Thoughts?
>

I'd suggest:
(1) let's discuss `clang-format` for C/C++ separately from `black` for
Python.
(2) to read https://github.com/scipy/scipy/pull/14330 and
https://github.com/scipy/scipy/issues/14354 and then not even continue the
discussion on `black`. A detailed proposal with an incremental formatter
may have a chance here (xref `darker` and our `tools/linter.py`), a "let's
just run black" one seems dead in the water given the people and opinions
in the linked SciPy PR and issue from a few months ago.

Cheers,
Ralf
_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to