Re: RFC: python static typing PR

2019-12-12 Thread Chad Dombrova
Thanks for the kind words, everyone. Note that the PR that was merged was the first half, so the mypy-lint job is not yet setup to trigger failures. Part 2 is up now: https://github.com/apache/beam/pull/10367 My goal is to bundle up changes into smaller PRs from here on out. It might take

Re: RFC: python static typing PR

2019-12-11 Thread Chad Dombrova
Hi all, Robert has diligently reviewed the first batch of changes for this PR, and all review notes are addressed and tests are passing: https://github.com/apache/beam/pull/9915 Due to the number of file touched there's a short window of about one or two days before a merge conflict arrives on

Re: RFC: python static typing PR

2019-11-05 Thread Robert Bradshaw
Sounds like we have consensus. Let's move forward. I'll follow up with the discussions on the PRs themselves. On Wed, Oct 30, 2019 at 2:38 PM Robert Bradshaw wrote: > > On Wed, Oct 30, 2019 at 1:26 PM Chad Dombrova wrote: > > > >> Do you believe that a future mypy plugin could replace pipeline

Re: RFC: python static typing PR

2019-10-30 Thread Robert Bradshaw
On Wed, Oct 30, 2019 at 1:26 PM Chad Dombrova wrote: > >> Do you believe that a future mypy plugin could replace pipeline type checks >> in Beam, or are there limits to what it can do? > > mypy will get us quite far on its own once we completely annotate the beam > code. That said, my PR does

Re: RFC: python static typing PR

2019-10-30 Thread Ismaël Mejía
The herculean term is perfect to describe this impressive achievement Chad. Congratulations and thanks for the effort to make this happen. This will give Beam users not only improved functionality but as Robert mentioned help others to understand more quickly the internals of the python SDK.

Re: RFC: python static typing PR

2019-10-30 Thread Chad Dombrova
> Do you believe that a future mypy plugin could replace pipeline type > checks in Beam, or are there limits to what it can do? > mypy will get us quite far on its own once we completely annotate the beam code. That said, my PR does not include my efforts to turn PTransforms into Generics, which

Re: RFC: python static typing PR

2019-10-30 Thread Chad Dombrova
> > As Beam devs will be gaining more first-hand experience with the tooling, > we may need to add a style guide/best practices/FAQ to our contributor > guide to clarify known issues. > I'm happy to help out with that, just let me know. -chad

Re: RFC: python static typing PR

2019-10-30 Thread Luke Cwik
+1 for type annotations. On Mon, Oct 28, 2019 at 7:41 PM Robert Burke wrote: > As someone who cribs from the Python SDK to make changes in the Go SDK, > this will make things much easier to follow! Thank you. > > On Mon, Oct 28, 2019, 6:52 PM Chad Dombrova wrote: > >> >> Wow, that is an

Re: RFC: python static typing PR

2019-10-28 Thread Robert Burke
As someone who cribs from the Python SDK to make changes in the Go SDK, this will make things much easier to follow! Thank you. On Mon, Oct 28, 2019, 6:52 PM Chad Dombrova wrote: > > Wow, that is an incredible amount of work! >> > > Some people meditate. I annotate ;) > > I'm definitely of the

Re: RFC: python static typing PR

2019-10-28 Thread Chad Dombrova
> Wow, that is an incredible amount of work! > Some people meditate. I annotate ;) I'm definitely of the opinion that there's no viable counterargument to the > value of types, especially for large or complex codebases. > Agreed. That's part of why I waited until I got the whole thing passing

Re: RFC: python static typing PR

2019-10-28 Thread Ahmet Altay
Thank you Chad, everyone else who helped with reviews so far. I think this is a positive change. I do share the worry of one more lint. I hope that we can hear from majority of beam python contributors. Good tooling and educational information would be helpful here. Ideally this will serve

Re: RFC: python static typing PR

2019-10-28 Thread Kenneth Knowles
Wow, that is an incredible amount of work! I'm definitely of the opinion that there's no viable counterargument to the value of types, especially for large or complex codebases. This kind of check must be in precommit or it will become perma-red very quickly. Kenn On Mon, Oct 28, 2019 at 4:21

Re: RFC: python static typing PR

2019-10-28 Thread Valentyn Tymofieiev
Thanks a lot, Chad. Looking at the PR, I am incredibly happy to see explicit type annotations throughout Beam codebase. I believe this is a step in the right direction even if the tooling were not able to do any inference at all. The effort required from developers to add annotations in their code

Re: RFC: python static typing PR

2019-10-28 Thread Robert Bradshaw
Thanks, Chad, this has been a herculean task. I'm excited for the additional tooling and documentation explicit types can bring to our code, even if tooling such as mypy isn't able to do as much inference for obvious cases as I would like. This will, of course, put another burden on developers in

RFC: python static typing PR

2019-10-28 Thread Chad Dombrova
Hi all, I've been working on a PR to add static typing to the beam python sdk for the past 4 months or so. This has been an epic journey which has required chasing down numerous fixes across several other projects (mypy, pylint, python-future), but the mypy tests are now passing! I'm not sure