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

Only fetch__pydantic_core_schema__ from the current class during schema generation#10518

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
sydney-runkle merged 1 commit intomainfromgen-schema-from-property-dict
Sep 30, 2024

Conversation

Viicos
Copy link
Member

In some cases, the core schema of a class is not the right one:

frompydantic.dataclassesimportdataclassaspd_dcfromdataclassesimportdataclassasstdlib_dc@pd_dcclassA:a:int@stdlib_dcclassB(A):b:strB.__pydantic_core_schema__#> Core schema of `A`

Until now, we had theexisting_schema.get('cls', None) is obj check to avoid incorrectly using the core schema in this case. However, this doesn't work if the core schema is of typedefinitions, in which caseexisting_schema.get('cls', None) is obj isFalse even though it is the correct schema. This was found during the ns refactor.

Change Summary

Related issue number

Checklist

  • The pull request title is a good summary of the changes - it will be used in the changelog
  • Unit tests for the changes exist
  • Tests pass on CI
  • Documentation reflects the changes where applicable
  • My PR is ready to review,please add a comment including the phrase "please review" to assign reviewers

sydney-runkle reacted with heart emoji
@github-actionsgithub-actionsbot added the relnotes-fixUsed for bugfixes. labelSep 30, 2024
@@ -813,9 +813,12 @@ def _generate_schema_from_property(self, obj: Any, source: Any) -> core_schema.C
source, CallbackGetCoreSchemaHandler(self._generate_schema_inner, self, ref_mode=ref_mode)
)
elif (
(existing_schema := getattr(obj, '__pydantic_core_schema__', None)) is not None
hasattr(obj, '__dict__')
Copy link
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

We could also check for__slots__ but there's no such type with a__pydantic_core_schema__ property as of today, so I'm keeping things simple here by only checking for__dict__

sydney-runkle reacted with thumbs up emoji
@ViicosViicosforce-pushed thegen-schema-from-property-dict branch from3f853bb to8dff26dCompareSeptember 30, 2024 15:00
@cloudflare-workers-and-pagesCloudflare Workers and Pages
Copy link

cloudflare-workers-and-pagesbot commentedSep 30, 2024
edited
Loading

Deploying pydantic-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit:8dff26d
Status: ✅  Deploy successful!
Preview URL:https://1988b6bf.pydantic-docs.pages.dev
Branch Preview URL:https://gen-schema-from-property-dic.pydantic-docs.pages.dev

View logs

@codspeed-hqCodSpeed HQ
Copy link

codspeed-hqbot commentedSep 30, 2024
edited
Loading

CodSpeed Performance Report

Merging#10518 willnot alter performance

Comparinggen-schema-from-property-dict (8dff26d) withmain (01b5929)

Summary

✅ 38 untouched benchmarks

@github-actionsGitHub Actions
Copy link
Contributor

Coverage report

This PR does not seem to contain any modification to coverable code.

Copy link
Contributor

@sydney-runklesydney-runkle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Nice find!

@sydney-runklesydney-runkle merged commit4bcbaa1 intomainSep 30, 2024
61 checks passed
@sydney-runklesydney-runkle deleted the gen-schema-from-property-dict branchSeptember 30, 2024 16:39
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@sydney-runklesydney-runklesydney-runkle approved these changes

Assignees
No one assigned
Labels
relnotes-fixUsed for bugfixes.
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

2 participants
@Viicos@sydney-runkle

[8]ページ先頭

©2009-2025 Movatter.jp