-
Notifications
You must be signed in to change notification settings - Fork 59
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add backward compatibility with Pydantic V1 #92
base: master
Are you sure you want to change the base?
Add backward compatibility with Pydantic V1 #92
Conversation
738cfe9
to
5b5089d
Compare
f1e0d31
to
2b99f09
Compare
35f7c96
to
0dc676f
Compare
Quality Gate passedIssues Measures |
@Merinorus hey, thanks for the PR, it seems like this PR some tests on the CI. I will have a closer looked at which tests are failing and why they are failing, but I think this PR could really benefit if we support both V1 and V2! |
be25454
to
da0a048
Compare
Hi @yctomwang, thank you! I made a little mistake on instance checking: isinstance(obj, Union[BaseModel, V1BaseModel]) # Wrong
->
isinstance(obj, (BaseModel, V1BaseModel)) # Ok This should be good for review now. |
@Merinorus Hey, I dont think the MacOS failures are because of your PR, give me sometime to investigate into why the CI is failing and i will get back to you. Thank you once again for the PR and your patience! |
@yctomwang Hi! I found out why the CI is failing: the macOS workers are now running ARM architecture, and python 3.7 is not supported anymore. So if you want to continue supporting this version, this might need to be tested against an old macOS version running on x86 architecture. The |
@Merinorus with the CI fixed and we can merge code, i think we can proceed with this PR. for somereason this PR right now still fails actions even tho its been rerun. |
Hi @yctomwang, no worries. It's because this PR should be rebased on the latest commit from the main branch, otherwise it runs on the old CI. I'll rebase the branch. |
da0a048
to
4bff748
Compare
4bff748
to
5c7dad9
Compare
All good :) |
Hi there - what's the timeline to merge and release this PR? This is blocking our migration as well |
I would be happy to proceed but I'm not a maintainer. In the meantime, you can fix your application requirements with the PR's commit. Example of a python requirement.txt: flask-Pydantic @ git+https://github.com/merinorus/flask-pydantic.git@da0a0489474d2b01c61a1f51d5b7536647e2ad29
...
pydantic==2.9.2 Fork it to your personal or organization repo, so you won't depend on mine. |
+1 any update on getting this merged into core? We have forked it in the mean time, but this is extremely helpful as an upgrade path from v1 to v2 and it would be nice to get it in |
Hi @yctomwang, any news? I didn't find a way to contact you personally. |
Add back the support of Pydantic V1 (Implements #90). This eases the migration from Pydantic V1 to Pydantic V2.
Without this support, users cannot gradually migrate a Flask project from Pydantic V1 to Pydantic V2.
I tried to keep the code change to a minimum. However, test files are in a separate folder, to ease the migration when Pydantic V1 support would be completely dropped.
No noticeable performance impact for Pydantic V2 users.