compat: do not patch pydantic if the installed version starts with "1." (#3482)

In pydantic 1.10.16 (hopefully the last version), they added the `pydantic.v1`
namespace to make transitioning to the v2 package easier without changing code.

However, Reflex was depending on pydantic v1 NOT having `pydantic.v1` to skip
patching names from `v1` into the top level `pydantic` (normally we do this to
force sqlmodel to use v1, even when the v2 package is installed).

Unbreak CI
This commit is contained in:
Masen Furer 2024-06-11 19:16:35 -07:00
parent f2168ee9c2
commit f03ed7015f
No known key found for this signature in database
GPG Key ID: 2AE2BD5531FF94F4

View File

@ -21,6 +21,11 @@ def pydantic_v1_patch():
try:
import pydantic.v1 # type: ignore
if pydantic.__version__.startswith("1."):
# pydantic v1 is already installed
yield
return
sys.modules["pydantic.fields"] = pydantic.v1.fields # type: ignore
sys.modules["pydantic.main"] = pydantic.v1.main # type: ignore
sys.modules["pydantic.errors"] = pydantic.v1.errors # type: ignore