strawberry-graphql 0.234.1__py3-none-any.whl → 0.234.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -162,6 +162,9 @@ class PydanticV2Compat:
162
162
 
163
163
  return type_
164
164
 
165
+ def model_dump(self, model_instance: BaseModel) -> Dict[Any, Any]:
166
+ return model_instance.model_dump()
167
+
165
168
 
166
169
  class PydanticV1Compat:
167
170
  @property
@@ -235,6 +238,9 @@ class PydanticV1Compat:
235
238
 
236
239
  return type_
237
240
 
241
+ def model_dump(self, model_instance: BaseModel) -> Dict[Any, Any]:
242
+ return model_instance.dict()
243
+
238
244
 
239
245
  class PydanticCompat:
240
246
  def __init__(self, is_v2: bool) -> None:
@@ -91,7 +91,7 @@ def _build_dataclass_creation_fields(
91
91
  graphql_name=graphql_name,
92
92
  # always unset because we use default_factory instead
93
93
  default=dataclasses.MISSING,
94
- default_factory=get_default_factory_for_field(field),
94
+ default_factory=get_default_factory_for_field(field, compat=compat),
95
95
  type_annotation=StrawberryAnnotation.from_annotation(field_type),
96
96
  description=field.description,
97
97
  deprecation_reason=(
@@ -13,6 +13,8 @@ from typing import (
13
13
  cast,
14
14
  )
15
15
 
16
+ from pydantic import BaseModel
17
+
16
18
  from strawberry.experimental.pydantic._compat import (
17
19
  CompatModelField,
18
20
  PydanticCompat,
@@ -33,7 +35,6 @@ from strawberry.utils.typing import (
33
35
  )
34
36
 
35
37
  if TYPE_CHECKING:
36
- from pydantic import BaseModel
37
38
  from pydantic.typing import NoArgAnyCallable
38
39
 
39
40
 
@@ -72,6 +73,7 @@ class DataclassCreationFields(NamedTuple):
72
73
 
73
74
  def get_default_factory_for_field(
74
75
  field: CompatModelField,
76
+ compat: PydanticCompat,
75
77
  ) -> Union[NoArgAnyCallable, dataclasses._MISSING_TYPE]:
76
78
  """
77
79
  Gets the default factory for a pydantic field.
@@ -105,9 +107,14 @@ def get_default_factory_for_field(
105
107
  return default_factory
106
108
 
107
109
  # if we have a default, we should return it
108
-
109
110
  if has_default:
110
- return lambda: smart_deepcopy(default)
111
+ # if the default value is a pydantic base model
112
+ # we should return the serialized version of that default for
113
+ # printing the value.
114
+ if isinstance(default, BaseModel):
115
+ return lambda: compat.model_dump(default)
116
+ else:
117
+ return lambda: smart_deepcopy(default)
111
118
 
112
119
  # if we don't have default or default_factory, but the field is not required,
113
120
  # we should return a factory that returns None
@@ -8,10 +8,12 @@ from typing import (
8
8
  List,
9
9
  Optional,
10
10
  TypeVar,
11
+ get_origin,
11
12
  )
12
13
  from typing_extensions import get_args
13
14
 
14
15
  from strawberry.type import has_object_definition
16
+ from strawberry.utils.typing import is_generic_alias
15
17
 
16
18
 
17
19
  def in_async_context() -> bool:
@@ -77,8 +79,12 @@ def get_specialized_type_var_map(cls: type) -> Optional[Dict[str, type]]:
77
79
  """
78
80
  orig_bases = getattr(cls, "__orig_bases__", None)
79
81
  if orig_bases is None:
80
- # Not a specialized type
81
- return None
82
+ # Specialized generic aliases will not have __orig_bases__
83
+ if get_origin(cls) is not None and is_generic_alias(cls):
84
+ orig_bases = (cls,)
85
+ else:
86
+ # Not a specialized type
87
+ return None
82
88
 
83
89
  type_var_map = {}
84
90
 
@@ -88,9 +94,10 @@ def get_specialized_type_var_map(cls: type) -> Optional[Dict[str, type]]:
88
94
 
89
95
  for base in orig_bases:
90
96
  # Recursively get type var map from base classes
91
- base_type_var_map = get_specialized_type_var_map(base)
92
- if base_type_var_map is not None:
93
- type_var_map.update(base_type_var_map)
97
+ if base is not cls:
98
+ base_type_var_map = get_specialized_type_var_map(base)
99
+ if base_type_var_map is not None:
100
+ type_var_map.update(base_type_var_map)
94
101
 
95
102
  args = get_args(base)
96
103
  origin = getattr(base, "__origin__", None)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strawberry-graphql
3
- Version: 0.234.1
3
+ Version: 0.234.3
4
4
  Summary: A library for creating GraphQL APIs
5
5
  Home-page: https://strawberry.rocks/
6
6
  License: MIT
@@ -84,14 +84,14 @@ strawberry/exceptions/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
84
84
  strawberry/exceptions/utils/source_finder.py,sha256=AcuevLgWwOSOR5zBDJbVyXMGRUxsTzrr07XUB0UqNiI,20044
85
85
  strawberry/experimental/__init__.py,sha256=2HP5XtxL8ZKsPp4EDRAbMCqiP7p2V4Cca278JUGxnt0,102
86
86
  strawberry/experimental/pydantic/__init__.py,sha256=jlsYH1j_9W4ieRpUKgt5zQPERDL7nc1ZBNQ3dAhJs8w,241
87
- strawberry/experimental/pydantic/_compat.py,sha256=Qnuxy6d0cq5agd8SBlJWqvCPrH3wzMa3gm5Wtzmh0cM,8147
87
+ strawberry/experimental/pydantic/_compat.py,sha256=-qJvpNzsDuY5E2NF87FL7QiakrhJXWqiCjCoS0tr1_g,8371
88
88
  strawberry/experimental/pydantic/conversion.py,sha256=nS79s_-nVDvJJgazE84pIgPx2u4g4r-ouOOzRGMuwlU,4220
89
89
  strawberry/experimental/pydantic/conversion_types.py,sha256=VuuBULz2v6cz_N1fa51ayJMA5_bQkqZmxaCumDsTGRM,931
90
90
  strawberry/experimental/pydantic/error_type.py,sha256=iSDNlbsRYZyU5zrg3mzU3ntREUPnU1f2waGmY_kiXLU,4370
91
91
  strawberry/experimental/pydantic/exceptions.py,sha256=Q8Deq3bNkMgc8fwvIYdcfxHSONXVMu-ZB6jcsh1NQYo,1498
92
92
  strawberry/experimental/pydantic/fields.py,sha256=QP5vYb8vKf7vOC69cjUPGOdlO_j4kZRdxalWgeqJ5Hk,2588
93
- strawberry/experimental/pydantic/object_type.py,sha256=icfpKBN4_YrY-243n7XOisI5semFrWuFicmeLAfpU48,12376
94
- strawberry/experimental/pydantic/utils.py,sha256=9m_oKyz0K1rTmh1ZrYtbFfyUNsiV11RiEb7bLrZuOXs,3770
93
+ strawberry/experimental/pydantic/object_type.py,sha256=ySqKs2_lwwoJiskAn-yLIUaHY2XKUrZMvEFTwKKKzZs,12391
94
+ strawberry/experimental/pydantic/utils.py,sha256=sNVhVXrXHgqZnCma8zrifyffMx34SQwIfuSfWahW-3Y,4065
95
95
  strawberry/ext/LICENSE,sha256=_oY0TZg0b_sW0--0T44aMTpy2e2zF1Kiyn8E1qDiivo,1249
96
96
  strawberry/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
97
  strawberry/ext/dataclasses/LICENSE,sha256=WZgm35K_3NJwLqxpEHJJi7CWxVrwTumEz5D3Dtd7WnA,13925
@@ -240,13 +240,13 @@ strawberry/utils/debug.py,sha256=-MtRqM5e1J-GDNgKQXoVFcBB9f3dHvhEGrTc82uN4LM,137
240
240
  strawberry/utils/deprecations.py,sha256=RsnN63mPcq_BlH1nS8o-K9NOTtEF3fkW4zGaouJ0g9M,713
241
241
  strawberry/utils/graphql_lexer.py,sha256=U1mTE5fWy0gcF5fITiZzLWftCpo_C3xOi4BpQxasP3M,1085
242
242
  strawberry/utils/importer.py,sha256=hzTiWCeL9ju6opXTU_kjGpatbUy3UUTW8O1Y5hNA_W8,592
243
- strawberry/utils/inspect.py,sha256=6z-tJpiWWm6E4-O6OUfhu689W9k1uY0m3FDwAfVCiNs,2825
243
+ strawberry/utils/inspect.py,sha256=9pBnqnzkrd0hjXRSwErwsKLz8KGmmh2Aux_CeHjys74,3121
244
244
  strawberry/utils/logging.py,sha256=flS7hV0JiIOEdXcrIjda4WyIWix86cpHHFNJL8gl1y4,713
245
245
  strawberry/utils/operation.py,sha256=Um-tBCPl3_bVFN2Ph7o1mnrxfxBes4HFCj6T0x4kZxE,1135
246
246
  strawberry/utils/str_converters.py,sha256=avIgPVLg98vZH9mA2lhzVdyyjqzLsK2NdBw9mJQ02Xk,813
247
247
  strawberry/utils/typing.py,sha256=G92wuT2WhEGQrwjek_On2K8l0nyVFtBW3P7I_cfjG-8,13870
248
- strawberry_graphql-0.234.1.dist-info/LICENSE,sha256=m-XnIVUKqlG_AWnfi9NReh9JfKhYOB-gJfKE45WM1W8,1072
249
- strawberry_graphql-0.234.1.dist-info/METADATA,sha256=SMX3dgkXEo7VgOSIS2yyZI1hQK5JYJtdDpadTMlwots,7821
250
- strawberry_graphql-0.234.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
251
- strawberry_graphql-0.234.1.dist-info/entry_points.txt,sha256=Nk7-aT3_uEwCgyqtHESV9H6Mc31cK-VAvhnQNTzTb4k,49
252
- strawberry_graphql-0.234.1.dist-info/RECORD,,
248
+ strawberry_graphql-0.234.3.dist-info/LICENSE,sha256=m-XnIVUKqlG_AWnfi9NReh9JfKhYOB-gJfKE45WM1W8,1072
249
+ strawberry_graphql-0.234.3.dist-info/METADATA,sha256=PlHR6aVWRNm-JxNjj4yUJ6ItDcvzEAKgNIW4D0-kgQk,7821
250
+ strawberry_graphql-0.234.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
251
+ strawberry_graphql-0.234.3.dist-info/entry_points.txt,sha256=Nk7-aT3_uEwCgyqtHESV9H6Mc31cK-VAvhnQNTzTb4k,49
252
+ strawberry_graphql-0.234.3.dist-info/RECORD,,