Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[dataclass_transform] support implicit default for "init" parameter in field specifiers#15010

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
JukkaL merged 13 commits intomasterfromwesleywright-field-specifier-defaults
Apr 5, 2023

Conversation

@JukkaL
Copy link
Collaborator

@JukkaLJukkaL commentedApr 5, 2023
edited
Loading

(Basic functionality was implemented by@wesleywright in#14870. I added overload resolution.)

This notefrom PEP 681 was missed in the initial implementation of field specifiers:

If unspecified, init defaults to True. Field specifier functions can use overloads that implicitly specify the value of init using a literal bool value type (Literal[False] or Literal[True]).

This commit adds support for reading a default from the declared type of theinit parameter if possible. Otherwise, it continues to use the typical default ofTrue.

The implementation was non-trivial, since regular overload resolution can't be used in the dataclass plugin, which is applied before type checking. As a workaround, I added a simple overload resolution helper that should be enough to support typical use cases. It doesn't do full overload resolution using types, but it knows aboutNone,Literal[True] andLiteral[False] and a few other things.

@github-actions
Copy link
Contributor

According tomypy_primer, this change has no effect on the checked open source code. 🤖🎉

@JukkaLJukkaL merged commit0f09be4 intomasterApr 5, 2023
@JukkaLJukkaL deleted the wesleywright-field-specifier-defaults branchApril 5, 2023 16:51
JukkaL added a commit that referenced this pull requestApr 5, 2023
…n field specifiers (#15010)(Basic functionality was implemented by@wesleywright in#14870. I addedoverload resolution.)This note from PEP 681 was missed in the initial implementation of field specifiers:> If unspecified, init defaults to True. Field specifier functions canuse overloads that implicitly specify the value of init using a literalbool value type (Literal[False] or Literal[True]).This commit adds support for reading a default from the declared type ofthe `init` parameter if possible. Otherwise, it continues to use thetypical default of `True`.The implementation was non-trivial, since regular overload resolutioncan't be used in the dataclass plugin, which is applied before typechecking. As a workaround, I added a simple overload resolution helperthat should be enough to support typical use cases. It doesn't do fulloverload resolution using types, but it knows about `None`,`Literal[True]` and `Literal[False]` and a few other things.---------Co-authored-by: Wesley Collin Wright <wesleyw@dropbox.com>
@JukkaLJukkaL mentioned this pull requestApr 5, 2023
2 tasks
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@jhancejhancejhance approved these changes

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

3 participants

@JukkaL@jhance@wesleywright

[8]ページ先頭

©2009-2025 Movatter.jp