I've done a pass on the PR on code I'm familiar with. Please make a pass and add your suggestions on the PR.
On Fri, Jan 24, 2020 at 7:15 AM Ismaël Mejía <ieme...@gmail.com> wrote: > Java build fails on any unformatted code so python probably should be like > that. > We have to ensure however that it fails early on that. > As Robert said time to debate the knobs :) > > On Fri, Jan 24, 2020 at 3:19 PM Kamil Wasilewski < > kamil.wasilew...@polidea.com> wrote: > >> PR is ready: https://github.com/apache/beam/pull/10684. Please share >> your comments ;-) I've managed to reduce the impact a bit: >> 501 files changed, 18245 insertions(+), 19495 deletions(-) >> >> We still need to consider how to enforce the usage of autoformatter. >> Pre-commit sounds like a nice addition, but it still needs to be installed >> manually by a developer. On the other hand, Jenkins precommit job that >> fails if any unformatted code is detected looks like too strict. What do >> you think? >> >> On Thu, Jan 23, 2020 at 8:37 PM Robert Bradshaw <rober...@google.com> >> wrote: >> >>> Thanks! Now we get to debate what knobs to twiddle :-P >>> >>> FYI, I did a simple run (just pushed to >>> https://github.com/apache/beam/compare/master...robertwb:yapf) to see >>> the impact. The diff is >>> >>> $ git diff --stat master >>> ... >>> 547 files changed, 22118 insertions(+), 21129 deletions(-) >>> >>> For reference >>> >>> $ find sdks/python/apache_beam -name '*.py' | xargs wc >>> ... >>> 200424 612002 7431637 total >>> >>> which means a little over 10% of lines get touched. I think there are >>> some options, such as SPLIT_ALL_TOP_LEVEL_COMMA_SEPARATED_VALUES and >>> COALESCE_BRACKETS, that will conform more to the style we are already >>> (mostly) following. >>> >>> >>> On Thu, Jan 23, 2020 at 1:59 AM Kamil Wasilewski >>> <kamil.wasilew...@polidea.com> wrote: >>> > >>> > Thank you Michał for creating the ticket. I have some free time and >>> I'd like to volunteer myself for this task. >>> > Indeed, it looks like there's consensus for `yapf`, so I'll try `yapf` >>> first. >>> > >>> > Best, >>> > Kamil >>> > >>> > >>> > On Thu, Jan 23, 2020 at 10:37 AM Michał Walenia < >>> michal.wale...@polidea.com> wrote: >>> >> >>> >> Hi all, >>> >> I created a JIRA issue for this and summarized the available tools >>> >> >>> >> https://issues.apache.org/jira/browse/BEAM-9175 >>> >> >>> >> Cheers, >>> >> Michal >>> >> >>> >> On Thu, Jan 23, 2020 at 1:49 AM Udi Meiri <eh...@google.com> wrote: >>> >>> >>> >>> Sorry, backing off on this due to time constraints. >>> >>> >>> >>> On Wed, Jan 22, 2020 at 3:39 PM Udi Meiri <eh...@google.com> wrote: >>> >>>> >>> >>>> It sounds like there's a consensus for yapf. I volunteer to take >>> this on >>> >>>> >>> >>>> On Wed, Jan 22, 2020, 10:31 Udi Meiri <eh...@google.com> wrote: >>> >>>>> >>> >>>>> +1 to autoformatting >>> >>>>> >>> >>>>> On Wed, Jan 22, 2020 at 9:57 AM Luke Cwik <lc...@google.com> >>> wrote: >>> >>>>>> >>> >>>>>> +1 to autoformatters. Also the Beam Java SDK went through a one >>> time pass to apply the spotless formatting. >>> >>>>>> >>> >>>>>> On Tue, Jan 21, 2020 at 9:52 PM Ahmet Altay <al...@google.com> >>> wrote: >>> >>>>>>> >>> >>>>>>> +1 to autoformatters and yapf. It appears to be a well >>> maintained project. I do support making a one time pass to apply formatting >>> the whole code base. >>> >>>>>>> >>> >>>>>>> On Tue, Jan 21, 2020 at 5:38 PM Chad Dombrova <chad...@gmail.com> >>> wrote: >>> >>>>>>>>> >>> >>>>>>>>> >>> >>>>>>>>> It'd be good if there was a way to only apply to violating (or >>> at >>> >>>>>>>>> least changed) lines. >>> >>>>>>>> >>> >>>>>>>> >>> >>>>>>>> I assumed the first thing we’d do is convert all of the code in >>> one go, since it’s a very safe operation. Did you have something else in >>> mind? >>> >>>>>>>> >>> >>>>>>>> -chad >>> >>>>>>>> >>> >>>>>>>> >>> >>>>>>>> >>> >>>>>>>> >>> >>>>>>>>> >>> >>>>>>>>> >>> >>>>>>>>> On Tue, Jan 21, 2020 at 1:56 PM Chad Dombrova < >>> chad...@gmail.com> wrote: >>> >>>>>>>>> > >>> >>>>>>>>> > +1 to autoformatting >>> >>>>>>>>> > >>> >>>>>>>>> > Let me add some nuance to that. >>> >>>>>>>>> > >>> >>>>>>>>> > The way I see it there are 2 varieties of formatters: those >>> which take the original formatting into consideration (autopep8) and those >>> which disregard it (yapf, black). >>> >>>>>>>>> > >>> >>>>>>>>> > I much prefer yapf to black, because you have plenty of >>> options to tweak with yapf (enough to make the output a pretty close match >>> to the current Beam style), and you can mark areas to preserve the original >>> formatting, which could be very useful with Pipeline building with pipe >>> operators. Please don't pick black. >>> >>>>>>>>> > >>> >>>>>>>>> > autopep8 is more along the lines of spotless in Java -- it >>> only corrects code that breaks the project's style rules. The big problem >>> with Beam's current style is that it is so esoteric that autopep8 can't >>> enforce it -- and I'm not just talking about 2-spaces, which I don't really >>> have a problem with -- the problem is the use of either 2 or 4 spaces >>> depending on context (expression start vs hanging indent, etc). This is my >>> *biggest* gripe about the current style. PyCharm doesn't have enough >>> control either. So, if we can choose a style that can be expressed by >>> flake8 or pycodestyle then we can use autopep8 to enforce it. >>> >>>>>>>>> > >>> >>>>>>>>> > I'd prefer autopep8 to yapf because I like having a little >>> wiggle room to influence the style, but on a big project like Beam all that >>> wiggle room ends up to minor but noticeable inconsistencies in style >>> throughout the project. yapf ensures completely consistent style, but the >>> tradeoff is that it's sometimes ugly, especially in scenarios with similar >>> repeated entries like argparse, where yapf might insert line breaks in >>> visually inconsistent and unappealing ways depending on the lengths of the >>> keywords and expressions involved. >>> >>>>>>>>> > >>> >>>>>>>>> > Either way (but especially if we choose yapf) I think it'd >>> be a nice addition to setup a pre-commit [1] config so that people can opt >>> in to running *lightweight* autofixers prior to commit. This will not only >>> reduce dev frustration but will also reduce the amount of cpu cycles that >>> Jenkins spends pointing out lint errors. >>> >>>>>>>>> > >>> >>>>>>>>> > [1] https://pre-commit.com/ >>> >>>>>>>>> > >>> >>>>>>>>> > -chad >>> >>>>>>>>> > >>> >>>>>>>>> > >>> >>>>>>>>> > >>> >>>>>>>>> > >>> >>>>>>>>> > On Tue, Jan 21, 2020 at 12:52 PM Ismaël Mejía < >>> ieme...@gmail.com> wrote: >>> >>>>>>>>> >> >>> >>>>>>>>> >> Last time we discussed this there seems not to be much >>> progress into autoformatting. >>> >>>>>>>>> >> This tool looks more tweakable, so maybe it could be more >>> appropriate for Beam's use case. >>> >>>>>>>>> >> https://github.com/google/yapf/ >>> >>>>>>>>> >> WDYT? >>> >>>>>>>>> >> >>> >>>>>>>>> >> >>> >>>>>>>>> >> On Thu, May 30, 2019 at 10:50 AM Łukasz Gajowy < >>> lgaj...@apache.org> wrote: >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> +1 for any autoformatter for Python SDK that does the job. >>> My experience is that since spotless in Java SDK I would never start a new >>> Java project without it. So many great benefits not only for one person >>> coding but for all community. >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> It is a GitHub UI issue that you cannot easily browse past >>> the reformat. It is not actually that hard, but does take a couple extra >>> clicks to get GitHub to display blame before a reformat. It is easier with >>> the command line. I do a lot of code history digging and the global Java >>> reformat is not really a problem. >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> It's actually one more click on Github but I agree it's >>> not the best way to search the history. The most convenient and clear one >>> I've found so far is in Jetbrains IDEs (Intelij) where you can: >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> right click on line number -> "annotate" -> click again -> >>> "annotate previous revision" -> ... >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> You can also use "compare with" to see the diff between >>> two revisions. >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> Łukasz >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> >>> >>>>>>>>> >>> czw., 30 maj 2019 o 06:15 Kenneth Knowles <k...@apache.org> >>> napisał(a): >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> +1 pending good enough tooling (I can't quite tell - >>> seems there are some issues?) >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> On Wed, May 29, 2019 at 2:40 PM Katarzyna Kucharczyk < >>> ka.kucharc...@gmail.com> wrote: >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> What else actually we gain? My guess is faster PR review >>> iteration. We will skip some of conversations about code style. >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> ... >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> Last but not least, new contributor may be less >>> discouraged. When I started contribute I didn’t know how to format my code >>> and I lost a lot of time to add pylint and adjust IntelliJ. I eventually >>> failed. Currently I write code intuitively and when I don’t forget I rerun >>> tox. >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> This is a huge benefit. This is why I supported it so >>> much for Java. It is a community benefit. You do not have to be a >>> contributor to the Python SDK to support this. That is why I am writing >>> here. Just eliminate all discussion of formatting. It doesn't really matter >>> what the resulting format is, if it is not crazy to read. I strongly oppose >>> maintaining a non-default format. >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> Reformating 20k lines or 200k is not hard. The Java >>> global reformat touched 50k lines. It does not really matter how big it is. >>> Definitely do it all at once if you think the tool is good enough. And you >>> should pin a version, so churn is not a problem. You can upgrade the >>> version and reformat in a PR later and that is also easy. >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> It is a GitHub UI issue that you cannot easily browse >>> past the reformat. It is not actually that hard, but does take a couple >>> extra clicks to get GitHub to display blame before a reformat. It is easier >>> with the command line. I do a lot of code history digging and the global >>> Java reformat is not really a problem. >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> Kenn >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> Also everything will be formatted in a same way, so >>> eventually it would be easier to read. >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> Moreover, as it was mentioned in previous emails - a lot >>> of Jenkins failures won’t take place, so we save time and resources. >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> One of disadvantages is that our pipelines has custom >>> syntax and after formatting they looks a little bit weird, but maybe >>> extending the only configurable option in Black - lines, from 88 to 110 >>> would be solution. >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> Second one is that Black requires Python 3 to be run. I >>> don’t know how big obstacle it would be. >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> I believe there are two options how it would be possible >>> to introduce Black. First: just do it, it will hurt but then it would be ok >>> (same as a dentist appointment). Of course it may require some work to >>> adjust linters. On the other hand we can do it gradually and start >>> including sdk parts one by one - maybe it will be less painful? >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> As an example I can share one of projects [2] I know >>> that uses Black (they use also other cool checkers and pre-commit [3]). >>> This is how looks their build with all checks [4]. >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> To sum up I believe that if we want improve our coding >>> experience, we should improve our toolset. Black seems be recent and quite >>> popular tool what makes think they won’t stop developing it. >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> [1] >>> https://stackoverflow.com/questions/4112410/git-change-styling-whitespace-without-changing-ownership-blame >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> [2] >>> https://github.com/GoogleCloudPlatform/oozie-to-airflow >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> [3] https://pre-commit.com >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> [4] >>> https://travis-ci.org/GoogleCloudPlatform/oozie-to-airflow/builds/538725689 >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> >>> >>>>>>>>> >>>>> On Wed, May 29, 2019 at 2:01 PM Robert Bradshaw < >>> rober...@google.com> wrote: >>> >>>>>>>>> >>>>>> >>> >>>>>>>>> >>>>>> Reformatting to 4 spaces seems a non-starter to me, as >>> it would change nearly every single line in the codebase (and the loss of >>> all context as well as that particular line). >>> >>>>>>>>> >>>>>> >>> >>>>>>>>> >>>>>> This is probably why the 2-space fork exists. However, >>> we don't conform to that either--we use 2 spaces for indentation, but 4 for >>> continuation indentation. (As for the history of this, this goes back to >>> Google's internal style guide, probably motivated by consistency with C++, >>> Java, ... and the fact that with an indent level of 4 one ends up wrapping >>> lines quite frequently (it's telling that black's default line length is >>> 88)). This turns out to be an easy change to the codebase. >>> >>>>>>>>> >>>>>> >>> >>>>>>>>> >>>>>> Once we move beyond the 2 vs. 4 whitespace thing, I >>> found that this tool introduces a huge amount of vertical whitespace (e.g. >>> closing parentheses on their own line), e.g. >>> >>>>>>>>> >>>>>> >>> >>>>>>>>> >>>>>> def foo( >>> >>>>>>>>> >>>>>> args >>> >>>>>>>>> >>>>>> ): >>> >>>>>>>>> >>>>>> if ( >>> >>>>>>>>> >>>>>> long expression) >>> >>>>>>>>> >>>>>> ): >>> >>>>>>>>> >>>>>> func( >>> >>>>>>>>> >>>>>> args >>> >>>>>>>>> >>>>>> ) >>> >>>>>>>>> >>>>>> >>> >>>>>>>>> >>>>>> I wrote a simple post-processor to put closing >>> parentheses on the same lines, as well as omit the newline after "if (", >>> and disabling formatting of strings, which reduce the churn in our codebase >>> to 15k lines (adding about 4k) out of 200k total. >>> >>>>>>>>> >>>>>> >>> >>>>>>>>> >>>>>> https://github.com/apache/beam/pull/8712/files >>> >>>>>>>>> >>>>>> >>> >>>>>>>>> >>>>>> It's still very opinionated, often in different ways >>> then me, and doesn't understand the semantics of the code, but possibly >>> something we could live with given the huge advantages of an autoformatter. >>> >>>>>>>>> >>>>>> >>> >>>>>>>>> >>>>>> An intermediate point would be to allow, but not >>> require, autoformatting of changed lines. >>> >>>>>>>>> >>>>>> >>> >>>>>>>>> >>>>>> As for being beta quality, it looks like it's got a >>> decent number of contributors and in my book being in the python github >>> project is a strong positive signal. But, due to the above issues, I think >>> we'd have to maintain a fork. (The code is pretty lightweight, the 2 vs. 4 >>> space issue is a 2-line change, and the rest implemented as a >>> post-processing step (for now, incomplete), so it'd be easy to stay in sync >>> with upstream.) >>> >>>>>>>>> >>>>>> >>> >>>>>>>>> >>>>>> On Wed, May 29, 2019 at 11:03 AM Ismaël Mejía < >>> ieme...@gmail.com> wrote: >>> >>>>>>>>> >>>>>> > >>> >>>>>>>>> >>>>>> > > I think the question is if it can be configured in >>> a way to fit our >>> >>>>>>>>> >>>>>> > > current linter's style. I don't think it is >>> feasible to reformat the >>> >>>>>>>>> >>>>>> > > entire Python SDK. >>> >>>>>>>>> >>>>>> > >>> >>>>>>>>> >>>>>> > It cannot be configured to do what we actually do >>> because Black is >>> >>>>>>>>> >>>>>> > configurable only to support the standard python >>> codestyle guidelines >>> >>>>>>>>> >>>>>> > (PEP-8) which recommends 4 spaces and is what most >>> projects in the >>> >>>>>>>>> >>>>>> > python world use. >>> >>>>>>>>> >>>>>> > >>> >>>>>>>>> >>>>>> > > Reformatted lines don't allow quick access to the >>> Git history. This >>> >>>>>>>>> >>>>>> > > effect is still visible in the Java SDK. However, I >>> have the feeling >>> >>>>>>>>> >>>>>> > > that this might be less of a problem with Python >>> because the linter has >>> >>>>>>>>> >>>>>> > > more rules than Checkstyle had. >>> >>>>>>>>> >>>>>> > >>> >>>>>>>>> >>>>>> > Yes that’s the bad side effect but there are always >>> tradeoffs we have >>> >>>>>>>>> >>>>>> > to deal with. >>> >>>>>>>>> >>>>>> > >>> >>>>>>>>> >>>>>> > >>> >>>>>>>>> >>>>>> > >>> >>>>>>>>> >>>>>> > >>> >>>>>>>>> >>>>>> > On Wed, May 29, 2019 at 10:52 AM Maximilian Michels < >>> m...@apache.org> wrote: >>> >>>>>>>>> >>>>>> > > >>> >>>>>>>>> >>>>>> > > I think the question is if it can be configured in >>> a way to fit our >>> >>>>>>>>> >>>>>> > > current linter's style. I don't think it is >>> feasible to reformat the >>> >>>>>>>>> >>>>>> > > entire Python SDK. >>> >>>>>>>>> >>>>>> > > >>> >>>>>>>>> >>>>>> > > Reformatted lines don't allow quick access to the >>> Git history. This >>> >>>>>>>>> >>>>>> > > effect is still visible in the Java SDK. However, I >>> have the feeling >>> >>>>>>>>> >>>>>> > > that this might be less of a problem with Python >>> because the linter has >>> >>>>>>>>> >>>>>> > > more rules than Checkstyle had. >>> >>>>>>>>> >>>>>> > > >>> >>>>>>>>> >>>>>> > > -Max >>> >>>>>>>>> >>>>>> > > >>> >>>>>>>>> >>>>>> > > On 29.05.19 10:16, Ismaël Mejía wrote: >>> >>>>>>>>> >>>>>> > > >> My concerns are: >>> >>>>>>>>> >>>>>> > > >> - The product is clearly marked as beta with a >>> big warning. >>> >>>>>>>>> >>>>>> > > >> - It looks like mostly a single person project. >>> For the same reason I also strongly prefer not using a fork for a specific >>> setting. Fork will only have less people looking at it. >>> >>>>>>>>> >>>>>> > > > >>> >>>>>>>>> >>>>>> > > > I suppose the project is marked as beta because >>> it is recent, it was >>> >>>>>>>>> >>>>>> > > > presented in 2018’s pycon, and because some >>> things can change since >>> >>>>>>>>> >>>>>> > > > auto-formatters are pretty tricky beasts, I think >>> beta in that case is >>> >>>>>>>>> >>>>>> > > > like our own ‘@Experimental’. If you look at the >>> contribution page [1] >>> >>>>>>>>> >>>>>> > > > you can notice that it is less and less a single >>> person project, there >>> >>>>>>>>> >>>>>> > > > have been 93 independent contributions since the >>> project became >>> >>>>>>>>> >>>>>> > > > public, and the fact that it is hosted in the >>> python organization >>> >>>>>>>>> >>>>>> > > > github [2] gives some confidence on the project >>> continuity. >>> >>>>>>>>> >>>>>> > > > >>> >>>>>>>>> >>>>>> > > > You are right however about the fact that the >>> main author seems to be >>> >>>>>>>>> >>>>>> > > > the ‘benevolent’ dictator, and in the 2-spaces >>> issue he can seem >>> >>>>>>>>> >>>>>> > > > arbitrary, but he is just following pep8 style >>> guide recommendations >>> >>>>>>>>> >>>>>> > > > [3]. I am curious of why we (Beam) do not follow >>> the 4 spaces >>> >>>>>>>>> >>>>>> > > > recommendation of PEP-8 or even Google's own >>> Python style guide [4], >>> >>>>>>>>> >>>>>> > > > So, probably it should be to us to reconsider the >>> current policy to >>> >>>>>>>>> >>>>>> > > > adapt to the standards (and the tool). >>> >>>>>>>>> >>>>>> > > > >>> >>>>>>>>> >>>>>> > > > I did a quick run of black with python 2.7 >>> compatibility on >>> >>>>>>>>> >>>>>> > > > sdks/python and got only 4 parsing errors which >>> is positive given the >>> >>>>>>>>> >>>>>> > > > size of our code base. >>> >>>>>>>>> >>>>>> > > > >>> >>>>>>>>> >>>>>> > > > 415 files reformatted, 45 files left unchanged, 4 >>> files failed to reformat. >>> >>>>>>>>> >>>>>> > > > >>> >>>>>>>>> >>>>>> > > > error: cannot format >>> >>>>>>>>> >>>>>> > > > >>> /home/ismael/upstream/beam/sdks/python/apache_beam/runners/interactive/display/display_manager.py: >>> >>>>>>>>> >>>>>> > > > Cannot parse: 47:22: _display_progress = print >>> >>>>>>>>> >>>>>> > > > error: cannot format >>> >>>>>>>>> >>>>>> > > > >>> /home/ismael/upstream/beam/sdks/python/apache_beam/runners/worker/log_handler.py: >>> >>>>>>>>> >>>>>> > > > Cannot parse: 151:18: >>> file=sys.stderr) >>> >>>>>>>>> >>>>>> > > > error: cannot format >>> >>>>>>>>> >>>>>> > > > >>> /home/ismael/upstream/beam/sdks/python/apache_beam/runners/worker/sdk_worker.py: >>> >>>>>>>>> >>>>>> > > > Cannot parse: 160:34: >>> print(traceback_string, file=sys.stderr) >>> >>>>>>>>> >>>>>> > > > error: cannot format >>> >>>>>>>>> >>>>>> > > > >>> /home/ismael/upstream/beam/sdks/python/apache_beam/typehints/trivial_inference.py: >>> >>>>>>>>> >>>>>> > > > Cannot parse: 335:51: print('-->' if pc == >>> last_pc else ' ', >>> >>>>>>>>> >>>>>> > > > end=' ') >>> >>>>>>>>> >>>>>> > > > >>> >>>>>>>>> >>>>>> > > > I still think this can be positive for the >>> project but well I am >>> >>>>>>>>> >>>>>> > > > barely a contributor to the python code base so I >>> let you the python >>> >>>>>>>>> >>>>>> > > > maintainers to reconsider this, in any case it >>> seems like a good >>> >>>>>>>>> >>>>>> > > > improvement for the project. >>> >>>>>>>>> >>>>>> > > > >>> >>>>>>>>> >>>>>> > > > [1] >>> https://github.com/python/black/graphs/contributors >>> >>>>>>>>> >>>>>> > > > [2] https://github.com/python >>> >>>>>>>>> >>>>>> > > > [3] >>> https://www.python.org/dev/peps/pep-0008/#indentation >>> >>>>>>>>> >>>>>> > > > [4] >>> https://github.com/google/styleguide/blob/gh-pages/pyguide.md#34-indentation >>> >>>>>>>>> >>>>>> > > > >>> >>>>>>>>> >>>>>> > > > On Tue, May 28, 2019 at 11:15 PM Ahmet Altay < >>> al...@google.com> wrote: >>> >>>>>>>>> >>>>>> > > >> >>> >>>>>>>>> >>>>>> > > >> I am in the same boat with Robert, I am in favor >>> of autoformatters but I am not familiar with this one. My concerns are: >>> >>>>>>>>> >>>>>> > > >> - The product is clearly marked as beta with a >>> big warning. >>> >>>>>>>>> >>>>>> > > >> - It looks like mostly a single person project. >>> For the same reason I also strongly prefer not using a fork for a specific >>> setting. Fork will only have less people looking at it. >>> >>>>>>>>> >>>>>> > > >> >>> >>>>>>>>> >>>>>> > > >> IMO, this is in an early stage for us. That said >>> lint issues are real as pointed in the thread. If someone would like to >>> give it a try and see how it would look like for us that would be >>> interesting. >>> >>>>>>>>> >>>>>> > > >> >>> >>>>>>>>> >>>>>> > > >> On Tue, May 28, 2019 at 4:44 AM Katarzyna >>> Kucharczyk <ka.kucharc...@gmail.com> wrote: >>> >>>>>>>>> >>>>>> > > >>> >>> >>>>>>>>> >>>>>> > > >>> This sounds really good. A lot of Jenkins jobs >>> failures are caused by lint problems. >>> >>>>>>>>> >>>>>> > > >>> I think it would be great to have something >>> similar to Spotless in Java SDK (I heard there is problem with configuring >>> Black with IntelliJ). >>> >>>>>>>>> >>>>>> > > >>> >>> >>>>>>>>> >>>>>> > > >>> On Mon, May 27, 2019 at 10:52 PM Robert >>> Bradshaw <rober...@google.com> wrote: >>> >>>>>>>>> >>>>>> > > >>>> >>> >>>>>>>>> >>>>>> > > >>>> I'm generally in favor of autoformatters, >>> though I haven't looked at >>> >>>>>>>>> >>>>>> > > >>>> how well this particular one works. We might >>> have to go with >>> >>>>>>>>> >>>>>> > > >>>> https://github.com/desbma/black-2spaces given >>> >>>>>>>>> >>>>>> > > >>>> https://github.com/python/black/issues/378 . >>> >>>>>>>>> >>>>>> > > >>>> >>> >>>>>>>>> >>>>>> > > >>>> On Mon, May 27, 2019 at 10:43 PM Pablo Estrada >>> <pabl...@google.com> wrote: >>> >>>>>>>>> >>>>>> > > >>>>> >>> >>>>>>>>> >>>>>> > > >>>>> This looks pretty good:) I know at least a >>> couple people (myself included) who've been annoyed by having to take care >>> of lint issues that maybe a code formatter could save us. >>> >>>>>>>>> >>>>>> > > >>>>> Thanks for sharing Ismael. >>> >>>>>>>>> >>>>>> > > >>>>> -P. >>> >>>>>>>>> >>>>>> > > >>>>> >>> >>>>>>>>> >>>>>> > > >>>>> >>> >>>>>>>>> >>>>>> > > >>>>> On Mon, May 27, 2019, 12:24 PM Ismaël Mejía < >>> ieme...@gmail.com> wrote: >>> >>>>>>>>> >>>>>> > > >>>>>> >>> >>>>>>>>> >>>>>> > > >>>>>> I stumbled by chance into Black [1] a python >>> code auto formatter that >>> >>>>>>>>> >>>>>> > > >>>>>> is becoming the 'de-facto' auto-formatter >>> for python, and wanted to >>> >>>>>>>>> >>>>>> > > >>>>>> bring to the ML Is there interest from the >>> python people to get this >>> >>>>>>>>> >>>>>> > > >>>>>> into the build? >>> >>>>>>>>> >>>>>> > > >>>>>> >>> >>>>>>>>> >>>>>> > > >>>>>> The introduction of spotless for Java has >>> been a good improvement and >>> >>>>>>>>> >>>>>> > > >>>>>> maybe the python code base may benefit of >>> this too. >>> >>>>>>>>> >>>>>> > > >>>>>> >>> >>>>>>>>> >>>>>> > > >>>>>> WDYT? >>> >>>>>>>>> >>>>>> > > >>>>>> >>> >>>>>>>>> >>>>>> > > >>>>>> [1] https://github.com/python/black >>> >> >>> >> >>> >> >>> >> -- >>> >> >>> >> Michał Walenia >>> >> Polidea | Software Engineer >>> >> >>> >> M: +48 791 432 002 <+48%20791%20432%20002> >>> >> E: michal.wale...@polidea.com >>> >> >>> >> Unique Tech >>> >> Check out our projects! >>> >>
smime.p7s
Description: S/MIME Cryptographic Signature