Initial Checks
Description
Hi! After upgrading from pydantic v2.3 to v2.4 the worked codebase started raising pydantic_core._pydantic_core.SchemaError
Maybe rebuilding all project models on import is a tricky solution in atproto package but I didn't expect breaking changes from v2.3 to v2.4. I hope that's new pydantic bug. Thank you!
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/__init__.py", line 3, in <module>
from .firehose import models as firehose_models
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/firehose/__init__.py", line 3, in <module>
from atproto.firehose.client import AsyncFirehoseClient, FirehoseClient
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/firehose/client.py", line 22, in <module>
from atproto.firehose.models import ErrorFrame, Frame, MessageFrame
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/firehose/models.py", line 7, in <module>
from atproto.xrpc_client.models.utils import get_or_create
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/xrpc_client/models/__init__.py", line 275, in <module>
load_models()
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/xrpc_client/models/models_loader.py", line 58, in load_models
__on_load()
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/xrpc_client/models/models_loader.py", line 54, in __on_load
__rebuild_all_models()
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/xrpc_client/models/models_loader.py", line 50, in __rebuild_all_models
__model.model_rebuild()
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/pydantic/main.py", line 470, in model_rebuild
return _model_construction.complete_model_class(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/pydantic/_internal/_model_construction.py", line 498, in complete_model_class
cls.__pydantic_core_schema__ = schema = validate_core_schema(schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/pydantic/_internal/_core_utils.py", line 631, in validate_core_schema
return _validate_core_schema(schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.SchemaError: Invalid Schema:
definitions.definitions.55.model.schema.model-fields.fields.parent.schema.default.schema.nullable.schema.default.schema.tagged-union.choices.`app.bsky.feed.defs#threadViewPost`
Recursion error - cyclic reference detected [type=recursion_loop, input_value={'type': 'model', 'cls': ...eadViewPost:4873274336'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.4/v/recursion_loop
definitions.definitions.55.model.schema.model-fields.fields.replies.schema.default.schema.nullable.schema.list.items_schema.tagged-union.choices.`app.bsky.feed.defs#threadViewPost`
Recursion error - cyclic reference detected [type=recursion_loop, input_value={'type': 'model', 'cls': ...eadViewPost:4873274336'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.4/v/recursion_loop
Example Code
pip install atproto
pip install pydantic==2.3
python -c "import atproto; print(atproto.__version__)"
pip install pydantic==2.4
python -c "import atproto; print(atproto.__version__)"
Python, Pydantic & OS Version
pydantic version: 2.4.0
pydantic-core version: 2.10.0
pydantic-core build: profile=release pgo=false
install path: /Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/pydantic
python version: 3.11.4 (main, Jul 5 2023, 08:54:11) [Clang 14.0.6 ]
platform: macOS-13.6-arm64-arm-64bit
related packages: typing_extensions-4.7.1
Initial Checks
Description
Hi! After upgrading from pydantic v2.3 to v2.4 the worked codebase started raising
pydantic_core._pydantic_core.SchemaErrorMaybe rebuilding all project models on import is a tricky solution in
atprotopackage but I didn't expect breaking changes from v2.3 to v2.4. I hope that's new pydantic bug. Thank you!Example Code
Python, Pydantic & OS Version