strawberry-graphql 0.260.1__py3-none-any.whl → 0.260.2__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.
@@ -5,6 +5,7 @@ from itertools import chain
5
5
  from typing import (
6
6
  TYPE_CHECKING,
7
7
  Any,
8
+ Callable,
8
9
  Optional,
9
10
  TypeVar,
10
11
  Union,
@@ -68,32 +69,59 @@ class PrintExtras:
68
69
 
69
70
 
70
71
  @overload
71
- def _serialize_dataclasses(value: dict[_T, object]) -> dict[_T, object]: ...
72
+ def _serialize_dataclasses(
73
+ value: dict[_T, object],
74
+ *,
75
+ name_converter: Callable[[str], str] | None = None,
76
+ ) -> dict[_T, object]: ...
72
77
 
73
78
 
74
79
  @overload
75
80
  def _serialize_dataclasses(
76
81
  value: Union[list[object], tuple[object]],
82
+ *,
83
+ name_converter: Callable[[str], str] | None = None,
77
84
  ) -> list[object]: ...
78
85
 
79
86
 
80
87
  @overload
81
- def _serialize_dataclasses(value: object) -> object: ...
88
+ def _serialize_dataclasses(
89
+ value: object,
90
+ *,
91
+ name_converter: Callable[[str], str] | None = None,
92
+ ) -> object: ...
82
93
 
83
94
 
84
- def _serialize_dataclasses(value):
95
+ def _serialize_dataclasses(
96
+ value,
97
+ *,
98
+ name_converter: Callable[[str], str] | None = None,
99
+ ):
100
+ if name_converter is None:
101
+ name_converter = lambda x: x # noqa: E731
102
+
85
103
  if dataclasses.is_dataclass(value):
86
- return {k: v for k, v in dataclasses.asdict(value).items() if v is not UNSET} # type: ignore
104
+ return {
105
+ name_converter(k): v
106
+ for k, v in dataclasses.asdict(value).items() # type: ignore
107
+ if v is not UNSET
108
+ }
87
109
  if isinstance(value, (list, tuple)):
88
- return [_serialize_dataclasses(v) for v in value]
110
+ return [_serialize_dataclasses(v, name_converter=name_converter) for v in value]
89
111
  if isinstance(value, dict):
90
- return {k: _serialize_dataclasses(v) for k, v in value.items()}
112
+ return {
113
+ name_converter(k): _serialize_dataclasses(v, name_converter=name_converter)
114
+ for k, v in value.items()
115
+ }
91
116
 
92
117
  return value
93
118
 
94
119
 
95
120
  def print_schema_directive_params(
96
- directive: GraphQLDirective, values: dict[str, Any]
121
+ directive: GraphQLDirective,
122
+ values: dict[str, Any],
123
+ *,
124
+ schema: BaseSchema,
97
125
  ) -> str:
98
126
  params = []
99
127
  for name, arg in directive.args.items():
@@ -101,7 +129,13 @@ def print_schema_directive_params(
101
129
  if value is UNSET:
102
130
  value = None
103
131
  else:
104
- ast = ast_from_value(_serialize_dataclasses(value), arg.type)
132
+ ast = ast_from_value(
133
+ _serialize_dataclasses(
134
+ value,
135
+ name_converter=schema.config.name_converter.apply_naming_config,
136
+ ),
137
+ arg.type,
138
+ )
105
139
  value = ast and f"{name}: {print_ast(ast)}"
106
140
 
107
141
  if value:
@@ -129,6 +163,7 @@ def print_schema_directive(
129
163
  )
130
164
  for f in strawberry_directive.fields
131
165
  },
166
+ schema=schema,
132
167
  )
133
168
 
134
169
  printed_directive = print_directive(gql_directive, schema=schema)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strawberry-graphql
3
- Version: 0.260.1
3
+ Version: 0.260.2
4
4
  Summary: A library for creating GraphQL APIs
5
5
  License: MIT
6
6
  Keywords: graphql,api,rest,starlette,async
@@ -146,7 +146,7 @@ strawberry/parent.py,sha256=wViSVYl5ADuyy2EGaS98by_iT1ep9xTP2od8NB_EIuw,742
146
146
  strawberry/permission.py,sha256=dSRJMjSCmTlXfvfC24kCSrAk0txTjYKTJ5ZVU5IW91Y,7537
147
147
  strawberry/printer/__init__.py,sha256=DmepjmgtkdF5RxK_7yC6qUyRWn56U-9qeZMbkztYB9w,62
148
148
  strawberry/printer/ast_from_value.py,sha256=Tkme60qlykbN2m3dNPNMOe65X-wj6EmcDQwgQv7gUkc,4987
149
- strawberry/printer/printer.py,sha256=JSN21OOMeTkUOGjzG8Ox59_lE7rI_UFAwwlNS4KxAl8,18026
149
+ strawberry/printer/printer.py,sha256=bQ1y8QGSfigU4L-oKi6Akr8LQ75KpUt_WLlp81QFnDE,18800
150
150
  strawberry/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
151
  strawberry/quart/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
152
  strawberry/quart/views.py,sha256=Xo7n5cu85fUZW-SGKTbZ4e4UuFrQvRb9PkMPjk0uPSM,4431
@@ -228,8 +228,8 @@ strawberry/utils/logging.py,sha256=U1cseHGquN09YFhFmRkiphfASKCyK0HUZREImPgVb0c,7
228
228
  strawberry/utils/operation.py,sha256=SSXxN-vMqdHO6W2OZtip-1z7y4_A-eTVFdhDvhKeLCk,1193
229
229
  strawberry/utils/str_converters.py,sha256=-eH1Cl16IO_wrBlsGM-km4IY0IKsjhjnSNGRGOwQjVM,897
230
230
  strawberry/utils/typing.py,sha256=Ux0Hl46lhuXvOKK-C5hj6nlz3zDn8P4CUGH2nUVD2vU,13373
231
- strawberry_graphql-0.260.1.dist-info/LICENSE,sha256=m-XnIVUKqlG_AWnfi9NReh9JfKhYOB-gJfKE45WM1W8,1072
232
- strawberry_graphql-0.260.1.dist-info/METADATA,sha256=CCDFKT09XgzUjnQIVDy5VDzpRHIXhHZ76L2YZrbfYC0,7539
233
- strawberry_graphql-0.260.1.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
234
- strawberry_graphql-0.260.1.dist-info/entry_points.txt,sha256=Nk7-aT3_uEwCgyqtHESV9H6Mc31cK-VAvhnQNTzTb4k,49
235
- strawberry_graphql-0.260.1.dist-info/RECORD,,
231
+ strawberry_graphql-0.260.2.dist-info/LICENSE,sha256=m-XnIVUKqlG_AWnfi9NReh9JfKhYOB-gJfKE45WM1W8,1072
232
+ strawberry_graphql-0.260.2.dist-info/METADATA,sha256=rmiNESgOWHoH9dBpw6p66qztTShT-VZifhel1rgGqj0,7539
233
+ strawberry_graphql-0.260.2.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
234
+ strawberry_graphql-0.260.2.dist-info/entry_points.txt,sha256=Nk7-aT3_uEwCgyqtHESV9H6Mc31cK-VAvhnQNTzTb4k,49
235
+ strawberry_graphql-0.260.2.dist-info/RECORD,,