GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — bpo-46066: Deprecate kwargs syntax for TypedDict definitions by 97littleleaf11 · Pull Request #31126 · python/cpython Conversation
|
|
Surely this is a breaking change — even if type-checkers only understand the literal-dict assignment-based syntax, I'm not sure we can change the runtime behaviour like this without a deprecation period. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Yeah, it changes the typing module. However I seldom see this syntax in real-world projects since we already have class based one. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I am not really familiar with the cpython developing period. It's not a big deal since neither mypy nor other widely-used type checkers implement this feature and I barely see this syntax in real world projects. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
I appreciate that — but given that this is a change to the stdlib, I think the standard deprecation policy probably still applies :) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Thanks for pointing out! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
For now, I think I would:
Here's an example of a previous PR deprecating features, that you could look to as an example: #23064 |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Co-authored-by: AlexWaygood <[email protected]>
| Ka-Ping Yee | ||
| Chi Hsuan Yen | ||
| Jason Yeo | ||
| Jingchen Ye |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
It feels absurd to bring this up (sorry!!), but: I think "Jingchen Ye" should go before "Ka-Ping Yee", if we're keeping this list alphabetised.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Also, it looks like there's some trailing whitespace in some of the documentation changes you've made, which is making the documentation-related tests fail -- could you possibly fix those issues? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@AlexWaygood Thanks for your reviews! btw, it seems that CI reports wrong line number about the trailing whitespace. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
No worries, it's a good PR!
Huh — no idea what might be causing that :) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
As this is a deprecation of an existing feature, I think it probably warrants a mention in "What's New in Python 3.11". I think @JelleZijlstra is planning on doing a PR for that document mentioning a bunch of recent changes to |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@gvanrossum, could we possibly get the full test suite run on this PR, please? :) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
I can't stand "firstly" and "secondly" for some reason. :-(
Sorry, something went wrong.
There was an error while loading. Please reload this page.
How about "The first one" and "The other one"? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Probably, a bullet list will be better. Like this:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here's a concrete wording suggestion that avoids "Firstly" and "Secondly"
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| support :pep:`526`, ``TypedDict`` supports two additional equivalent | ||
| syntactic forms:: | ||
| syntactic forms. Firstly, using a literal :class:`dict` as the | ||
| second argument:: |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
I'd suggest just writing "a TypedDict may be created using a functional form". This parallels https://docs.python.org/3.10/library/enum.html#functional-api
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this!
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| Point2D = TypedDict('Point2D', x=int, y=int, label=str) | ||
| Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str}) | ||
|
|
||
| Secondly, using keyword arguments:: |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
| Secondly, using keyword arguments:: | |
| Keyword arguments may also be used:: |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I was just hoping to see “first“ and “second”. No “ly” needed, these are flat adverbs. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
In a few days Jelle can likely merge this himself. :-) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
Congrats Jelle! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
And congrats @97littleleaf11 on your first CPython contribution! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
TypedDict alternative definition syntax with keyword args is confusing
There was an error while loading. Please reload this page.