Невозможно создать вложенного дефолта в пиджанском базоделеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно создать вложенного дефолта в пиджанском базоделе

Сообщение Anonymous »

Рассмотрим: < /p>
#!/usr/bin/env -S uv run --script
# /// script
# dependencies = [ "pydantic>=2.10.5,=3.12,Traceback (most recent call last):
File "/Users/chaduffy/repro.py", line 13, in
class Repro(pydantic.BaseModel):
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py", line 237, in __new__
complete_model_class(
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py", line 597, in complete_model_class
schema = gen_schema.generate_schema(cls)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 706, in generate_schema
schema = self._generate_schema_inner(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 999, in _generate_schema_inner
return self._model_schema(obj)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 832, in _model_schema
{k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1201, in _generate_md_field_schema
common_field = self._common_field_schema(name, field_info, decorators)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1367, in _common_field_schema
schema = self._apply_annotations(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 2279, in _apply_annotations
schema = get_inner_schema(source_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 83, in __call__
schema = self._handler(source_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 2261, in inner_handler
schema = self._generate_schema_inner(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1004, in _generate_schema_inner
return self.match_type(obj)
^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1118, in match_type
return self._match_generic_type(obj, origin)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1157, in _match_generic_type
return self._mapping_schema(origin, *self._get_first_two_args_or_any(obj))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 571, in _mapping_schema
values_schema = self.generate_schema(values_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 706, in generate_schema
schema = self._generate_schema_inner(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1004, in _generate_schema_inner
return self.match_type(obj)
^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1118, in match_type
return self._match_generic_type(obj, origin)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1157, in _match_generic_type
return self._mapping_schema(origin, *self._get_first_two_args_or_any(obj))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 583, in _mapping_schema
default_default_factory = get_defaultdict_default_default_factory(values_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_validators.py", line 482, in get_defaultdict_default_default_factory
default_default_factory = infer_default()
^^^^^^^^^^^^^^^
File "/Users/chaduffy/.cache/uv/archive-v0/L2nssVviE9tesQFv5NzrQ/lib/python3.12/site-packages/pydantic/_internal/_validators.py", line 466, in infer_default
raise PydanticSchemaGenerationError(
pydantic.errors.PydanticSchemaGenerationError: Unable to infer a default factory for keys of type . Only str, int, bool, list, dict, frozenset, tuple, float, set are supported, other types require an explicit default factory set using `DefaultDict[..., Annotated[..., Field(default_factory=...)]]`

For further information visit https://errors.pydantic.dev/2.11/u/sche ... known-type


Подробнее здесь: https://stackoverflow.com/questions/796 ... -basemodel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»