gh-130881: Handle conditionally defined annotations#130935
gh-130881: Handle conditionally defined annotations#130935JelleZijlstra merged 11 commits intopython:mainfrom
Conversation
There was a problem hiding this comment.
I won't force you to follow PEP-7 as the file has a mix of everything which makes it very hard to choose a convention. You can also ignore my suggestion in symtable.c if you think it's not necessary and if the surrounding code is using the same writing style.
picnixz
left a comment
There was a problem hiding this comment.
I think I reviewed the changes, though I'm not entirely sure about the tests themselves so another eye is welcome
|
Once this is merged, should the text in PEP 649 be updated to reflect this change?
|
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
tomasr8
left a comment
There was a problem hiding this comment.
Just some comments/questions for the tests, otherwise looks good :)
I don't own PEP 649 so I can't update it. Could add it to PEP 749 but I already submitted it to the SC. |
Larry is the owner. @larryhastings should the PEP be updated? |
|
Accepted PEPs are historical documents; as a rule I'm averse to changing them after they're accepted. PEP 749 is the perfect place to document this change to what's specified in 649. |
picnixz
left a comment
There was a problem hiding this comment.
Two nits I missed but otherwise, looks good to me
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
On Python 3.14, this module attribute seems to exist in certain
situations:
```pycon
>>> if True:
... a: str
...
>>> __conditional_annotations__
{0}
```
It's a pretty esoteric attribute without any documentation. It seems to
have been added in python/cpython#130935
Either way, stubtest was complaining about it in scipy-stubs. So all
things considered, I figured it'd be best to just ignore it.
|
EDIT: I was reading PEP 749 too quickly and missed that there is a section on conditionally-defined annotations (because it does not mention the new dunder by name). I guess the PEP is pretty descriptive, but my question about adding doc of the dunder still stands, I think. I had to consult a blame for @JelleZijlstra I just stumbled across this functionality and was surprised that I had to dive into the codebase's history to find out what it was all about. Looks like the window for including this info in PEP 749 has passed, but should there perhaps be an issue for adding information about this feature to the Data Model docs? |
|
The dunder is private. Do we have documentation for other purely internal dunders? |
There is a section on internal types which might count towards answering that question? Downstreams I think would have fewer reasons for looking at I can see the argument for "nobody should need to know about this" but figured I'd ask on behalf of anyone else who was surprised to discover the dunder's existence and then have trouble dredging up more information about what it's for. |
|
If you'd like this documented please open a new issue. But note that several other private class attributes, such as |
Uh oh!
There was an error while loading. Please reload this page.