So to summarize, it seems that what we are agreeing in this thread is
to not debate readability about otherwise PEP8-compliant Python code
in code reviews, is that right? Absent a consensus about a change, the
outcome is basically "no change". The addition of autopep8 as a tool
for automated PEP8 fixes (as opposed to manual ones, which is what's
required right now) seems reasonable in that it does not make invasive
changes to the current codebase.

We can also abandon this discussion and not use any tool. Either way
it would be good to reach a conclusion and move on.

- Wes

On Thu, Apr 9, 2020 at 3:05 AM Uwe L. Korn <uw...@xhochy.com> wrote:
>
> The non-configurability of black is one of the strongest arguments I see for 
> black. The codestyle will always be subjective. From previous discussions I 
> know that my personal preference of readability conflicts with that of 
> Antoine and Wes, so will probably others. We have the same issue with using 
> the Google C++ style guide in C++. Not everyone agrees with it but at least 
> it is a guide that is adopted widely (and thus seen in other projects quite 
> often) and has well outlined reasonings for most of its choices.
>
> On Wed, Apr 8, 2020, at 10:25 PM, Xinbin Huang wrote:
> > Another option that we can look into is yapf (
> > https://github.com/google/yapf). It is similar to black but more tweakable.
> > Also, it is recently adopted by the Apache Beam project. PR is here
> > https://github.com/apache/beam/pull/10684/files
> >
> > Bin
> >
> > On Wed, Apr 8, 2020 at 1:18 PM Wes McKinney <wesmck...@gmail.com> wrote:
> >
> > > I don't think it's possible unfortunately. From the README: "Black
> > > reformats entire files in place. It is not configurable."
> > >
> > > The main concern about Black is the impact that it has on readability.
> > > I share this concern as the subjective style choices it makes are
> > > quite different from the way I've been writing Python code the last 12
> > > years. That doesn't mean I'm right and it's wrong, of course. In this
> > > project, it doesn't seem like we're losing much energy to people
> > > reformatting arguments lists or adding line breaks here and there,
> > > etc. FWIW, from reading the Black docs, it doesn't strike me that the
> > > tool is designed to maximize readability, but rather to make
> > > formatting deterministic and reduce code diffs caused by reformatting.
> > >
> > > My opinion is that we should simply avoid debating code style in code
> > > reviews as long as the code passes the PEP8 checks. Employing autopep8
> > > is an improvement over the status quo (which is that developers must
> > > fix flake8 / PEP8 warnings by hand). We can always revisit the Black
> > > discussion in the future if we find that subjective code formatting
> > > (beyond PEP8 compliance) is taking up our energy inappropriately.
> > >
> > > On Wed, Apr 8, 2020 at 2:13 PM Rok Mihevc <rok.mih...@gmail.com> wrote:
> > > >
> > > > Could we 'tone down' black to get the desired behavior?
> > > > I'm ok with either tool.
> > > >
> > > > Rok
> > > >
> > > > On Wed, Apr 8, 2020 at 8:00 PM Wes McKinney <wesmck...@gmail.com> wrote:
> > > >
> > > > > On Wed, Apr 8, 2020 at 12:47 PM Neal Richardson
> > > > > <neal.p.richard...@gmail.com> wrote:
> > > > > >
> > > > > > So autopep8 doesn't fix everything? Sounds inferior to me. That
> > > said, I'm
> > > > > > in favor of any resolution that increases our automation of this and
> > > > > > decreases the energy we expend debating it.
> > > > >
> > > > > It does fix everything, where "everything" is compliance with PEP8,
> > > > > which I think is the thing we are most interested in.
> > > > >
> > > > > Black makes a bunch of other arbitrary (albeit consistent)
> > > > > reformattings that don't affect PEP8 compliance.
> > > > >
> > > > > > Neal
> > > > > >
> > > > > >
> > > > > > On Wed, Apr 8, 2020 at 10:34 AM Wes McKinney <wesmck...@gmail.com>
> > > > > wrote:
> > > > > >
> > > > > > > Circling back on this, it seems there isn't consensus about
> > > switching
> > > > > > > to Black, and using autopep8 at least will give us an easy way to
> > > > > > > maintain PEP8 compliance and help contributors fix linting 
> > > > > > > failures
> > > > > > > detected by flake8 (but not all, e.g. unused imports would need to
> > > be
> > > > > > > manually removed). Would everyone be on board with using autopep8?
> > > > > > >
> > > > > > > On Thu, Apr 2, 2020 at 9:07 AM Wes McKinney <wesmck...@gmail.com>
> > > > > wrote:
> > > > > > > >
> > > > > > > > I'm personally fine with the Black changes. After the one-time
> > > cost
> > > > > of
> > > > > > > > reformatting the codebase, it will take any personal preferences
> > > out
> > > > > > > > of code formatting (I admit that I have several myself, but I
> > > don't
> > > > > > > > mind the normalization provided by Black). I hope that Cython
> > > support
> > > > > > > > comes soon since a great deal of our code is Cython
> > > > > > > >
> > > > > > > > On Thu, Apr 2, 2020 at 9:00 AM Jacek Pliszka <
> > > > > jacek.plis...@gmail.com>
> > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > Hi!
> > > > > > > > >
> > > > > > > > > I believe amount of changes is not that important.
> > > > > > > > >
> > > > > > > > > In my opinion, what matters is which format will allow
> > > reviewers
> > > > > to be
> > > > > > > > > more efficient.
> > > > > > > > >
> > > > > > > > > The committer can always reformat as they like. It is harder
> > > for
> > > > > the
> > > > > > > reviewer.
> > > > > > > > >
> > > > > > > > > BR,
> > > > > > > > >
> > > > > > > > > Jacek
> > > > > > > > >
> > > > > > > > > czw., 2 kwi 2020 o 15:32 Antoine Pitrou <anto...@python.org>
> > > > > > > napisał(a):
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > PS: in both cases, Cython files are not processed.  autopep8
> > > is
> > > > > > > actually
> > > > > > > > > > able to process them, but the comparison wouldn't be
> > > > > > > apples-to-apples.
> > > > > > > > > >
> > > > > > > > > > (that said, autopep8 gives suboptimal results on Cython
> > > files,
> > > > > for
> > > > > > > > > > example it changes "&c_variable" to "& c_variable" and
> > > > > > > > > > "void* ptr" to "void * ptr")
> > > > > > > > > >
> > > > > > > > > > Regards
> > > > > > > > > >
> > > > > > > > > > Antoine.
> > > > > > > > > >
> > > > > > > > > > Le 02/04/2020 à 15:30, Antoine Pitrou a écrit :
> > > > > > > > > > >
> > > > > > > > > > > Hello,
> > > > > > > > > > >
> > > > > > > > > > > I've put up two PRs to compare the effect of running black
> > > vs.
> > > > > > > autopep8
> > > > > > > > > > > on the Python codebase.
> > > > > > > > > > >
> > > > > > > > > > > * black: https://github.com/apache/arrow/pull/6810
> > > > > > > > > > >  65 files changed, 7855 insertions(+), 5215 deletions(-)
> > > > > > > > > > >
> > > > > > > > > > > * autopep8: https://github.com/apache/arrow/pull/6811
> > > > > > > > > > >  20 files changed, 137 insertions(+), 118 deletions(-)
> > > > > > > > > > >
> > > > > > > > > > > I've configured black to try and minimize changes (for
> > > example,
> > > > > > > avoid
> > > > > > > > > > > normalizing string quoting style).  Still, the number of
> > > > > changes is
> > > > > > > > > > > humongous and they add 2600 lines to the codebase (which
> > > is a
> > > > > > > tangible
> > > > > > > > > > > amount of vertical space).
> > > > > > > > > > >
> > > > > > > > > > > Regards
> > > > > > > > > > >
> > > > > > > > > > > Antoine.
> > > > > > > > > > >
> > > > > > >
> > > > >
> > >
> >

Reply via email to