Comments (31)
Talin and I did a round of triage. All open issues are now marked as "needs more pep", "fully pepped", and "unpeppable". The "needs more pep" issues all need edits to the PEP. Can we do a divide and conquer pass on that?
from patma.
By my count there's now only one item that needs more pep: #76 (where I plead that we need a few more of the suggested sections from PEP 1/12). But I'm exhausted after this afternoon's session.
Once that is done (or we decide we don't need it), perhaps some time next week we should just send the PEP to python-dev?
from patma.
I would like all the forms of pattern syntax (name pattern, sequence pattern etc.) to have level 3 headings so you can find them in the auto-generated ToC (currently they're bullets that don't show in the ToC). Also I want the |
and :=
syntax to be described in the same section rather than being considered somehow special. And I have ideas for a more complete grammar.
from patma.
Can we perhaps rename the file from proto_pep_notes.rst? It seems like it is no longer 'proto' or 'notes'.
Also, what's the best method to comment on specific lines of text without actually creating a PR?
from patma.
One thing that would be helpful is if you could assign any issues that you want to work on to yourself.
from patma.
Honestly, a PEP is usually not the thing that turns outsiders on to a new feature -- it has to sell core devs and be as precise as possible a specification for the proposal, to answer future nitpicking about the intention of the proposal for edge cases we haven't thought of yet (as you're continually discovering while implementing things :-).
For outsiders a tutorial that's as superficial as a cheat sheet might work much better.
And yes, having a working implementation is spectacular. (Though there are limits -- most people are not in the habit of building a working Python executable from source.)
from patma.
It doesn't necessarily have to happen in that order. We could start discussing the PEP on python-ideas or -dev before having resolved all open issues. And even issues we mark as resolved now may well be reopened as a result of the public discussion. (These are not the good old BDFL days when you only had to convince one person. :-)
Also, the crucial step "get Steering Council approval" is missing from your list (it happens some time after public feedback has mostly died out, or when it's stuck in an endless cycle of bikeshedding).
from patma.
I've updated the OP with the 'get steering council approval' step.
With regards to open issues, my question is, how do we know when we are ready? Maybe we don't need to resolve all issues - but which ones do we need to resolve?
from patma.
Honestly, we're close enough that it's fine to go ask for feedback. But before we request a PEP number we need to do a lot of editing to the PEP -- many decisions aren't argued there and I'm not even sure it records all recent decisions. @ilevkivskyi mentioned he was going to do a fairly major PR over the weekend. In the US it's still the weekend. :-) I was waiting for that before doing another editing pass myself.
from patma.
I was waiting for that before doing another editing pass myself.
I've been thinking of doing a round of copy edits too. Not sure what sort of edits you're proposing (content, or grammar/spelling), but maybe I should just hold off since there are already a few major PRs in-the-works already. I can just add my changes after the dust has settled.
from patma.
@ilevkivskyi mentioned he was going to do a fairly major PR over the weekend.
Actually I will not be able to do this, sorry.
from patma.
Actually I will not be able to do this, sorry.
Okay, @brandtbucher (and anyone else): This is your cue to start proposing edits to the doc.
from patma.
Cool, I'll have a copy-edit PR up this week.
from patma.
On the line "isinstance() is one of the most called functions in large scale Python code-bases", I would love it if there were a citation for this (if possible).
from patma.
Just rename it to pep-9999.rst. You can add comments to a line in the code on GitHub, but I don’t know if it notifies anyone. The citation probably won’t be more than “personal reference”, but maybe Ivan can give you an actual number.
from patma.
Is anyone in the middle of working on a PR? It's impolite to go around renaming files when other people are working on them, makes merging difficult :)
from patma.
Whoops, sorry! I didn't realize anyone else was working on the PEP.
from patma.
Sorry, I wasn't clear - I am not working on the PEP yet - I wanted to know if it was OK to rename it. If someone else is working on it now, I will hold off.
I wasn't accusing you of being impolite, rather I was attempting to avoid impoliteness myself :)
from patma.
BTW does anyone think that a zoom meeting would be of value? Or do we want to keep everything in written form so that there is an audit trail?
from patma.
Hm... A Zoom meeting can eat up time and will be hard to schedule -- Ivan is in Dublin and I believe Tobias is in Switzerland? And IIUC everyone has a day job apart from me. A Zoom meeting would be most appropriate when there's a specific issue that seems hard to get agreement on via the tracker, but right now I don't think we have such a thing.
In my other project the only time we did a Zoom meeting was to practice and provide feedback on a talk we were preparing for the Python Language Summit.
from patma.
However, we use Hangouts all the time to coordinate things like conflicting PRs. Maybe we should set that up? I've got a channel open with Brandt already -- let me see if I can expand that.
from patma.
@ilevkivskyi, @Tobias-Kohn -- here's a link to join: https://hangouts.google.com/group/p1Bq9vJZwRE9c68TA (needs login with Google/GMail/YouTube account).
from patma.
In my latest round of edits on the PEP, I added several items marked with **TODO**
, indicating sections that need to be updated but I was not confident that I could write the text myself. Most of these were cases where the PEP was advocating for a particular point - 'as' vs. 'case' for example - and I didn't want to start arguing by proxy (IANAL). I would prefer those sections be written by someone who feels strongly about it, or at least has a coherent set of justifications that they can express.
from patma.
Thanks for your work organizing this!
I can take care of the 4-5 that I recently brought up edge case questions for. I probably won't get to it until later this week (I'm hoping to finish sprinting on the first draft of a full implementation tonight or tomorrow, while I have my momentum)... so if others want to make other PRs or take the issues, feel free.
Do we have any rough timeline yet for when we're planning to introduce this?
from patma.
All right, so I marked 6 of the remaining 'needs more pep' issues as 'fully pepped' now that they have been addressed in the PEP.
There are 11 issues remaining that need more pep.
5 are assigned to brandt.
2 are assigned to other people.
Of the remaining 4 unassigned, I am not actually sure what needs to be said.
from patma.
Thanks! I'll have mine done today or tomorrow, and I'm hoping to have the implementation spec-complete in the next week or so.
from patma.
So we are very close to having all the 'needs more pep' issues resolved.
The next step after that, I'm guessing, would be to distribute to a wider audience. This can be done in parallel with finishing up the reference implementation / standard library work.
from patma.
Not that it matters (at all!), but I just got a random idea: how do we feel about jumping a few places in line and using PEP number 777? It's simple, memorable, and is evocative of a Vegas slot machine (itself a sort of "pattern matching" device).
I just feel like this PEP deserves better than 621 (or whatever boring number is next sequentially). 🙃
from patma.
I prefer to stick with the boring PEP number.
from patma.
Great! I have a couple more things I want to finish up on the implementation this weekend... mostly testing class patterns, improving performance for large sequences and mappings, and other assorted cleanup.
I think letting people play with a spec-complete implementation is a great marketing tool for the proposal. I've shown the PEP to a few people, but they weren't fully sold on it until they tried it out in the REPL. There's a point when they realize that they don't really need to think much about the mini-grammar or __match__
protocol to find the feature truly useful and intuitive, which I think is a great testament to the elegant design that we've come up with here.
from patma.
This issue has outlived its usefulness. The rest of the process is just following PEP 1.
from patma.
Related Issues (20)
- Phrasing update in abstract and overview HOT 2
- Disallow guards when using an "open pattern"? HOT 11
- Can the compiler move guards around? HOT 7
- JSON example HOT 5
- Add link to DLS paper to PEP 635 HOT 1
- Reach out to Pablo for code review HOT 1
- Use "as" for named patterns HOT 2
- Raise SyntaxErrors for anything following irrefutable patterns
- Finish AST validation for patterns
- Catch remaining errors in the compiler HOT 1
- Unify the PEP 634 and implementation grammars HOT 2
- Review progress for the reference implementation HOT 5
- Thomas Wouters' objections HOT 13
- Nick Coghlan's (revised) PEP 642 HOT 1
- Dedicated AST nodes for patterns? HOT 5
- PyCon 2021 HOT 10
- work error with zip param "strict=False" on py386 HOT 1
- Please document the design decisions behind PEP 634. HOT 7
- Case goto's? HOT 1
- PyCon JP 2021 HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from patma.