strawberry-graphql 0.289.2__py3-none-any.whl → 0.289.4__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.
@@ -41,6 +41,7 @@ from strawberry.types.cast import cast as strawberry_cast
41
41
  from strawberry.types.field import _RESOLVER_TYPE, StrawberryField, field
42
42
  from strawberry.types.fields.resolver import StrawberryResolver
43
43
  from strawberry.types.lazy_type import LazyType
44
+ from strawberry.types.unset import UNSET
44
45
  from strawberry.utils.aio import asyncgen_to_list
45
46
  from strawberry.utils.typing import eval_type, is_generic_alias, is_optional, is_union
46
47
 
@@ -375,9 +376,12 @@ if TYPE_CHECKING:
375
376
  node = field
376
377
  else:
377
378
 
378
- def node(*args: Any, **kwargs: Any) -> StrawberryField:
379
+ def node(*args: Any, default: Any = UNSET, **kwargs: Any) -> StrawberryField:
379
380
  kwargs["extensions"] = [*kwargs.get("extensions", []), NodeExtension()]
380
- return field(*args, **kwargs)
381
+ # The default value is a stub for dataclasses so you can instantiate
382
+ # types with relay.node() fields without explicit initialization.
383
+ # The actual value is resolved by the NodeExtension resolver.
384
+ return field(*args, default=default, **kwargs)
381
385
 
382
386
 
383
387
  # we used to have `Type[Connection[NodeType]]` here, but that when we added
@@ -870,12 +870,6 @@ class GraphQLCoreConverter:
870
870
  if compat.is_graphql_generic(type_):
871
871
  raise MissingTypesForGenericError(type_)
872
872
 
873
- # to handle lazy unions
874
- if typing.get_origin(type_) is Annotated:
875
- args = typing.get_args(type_)
876
- if len(args) >= 2 and isinstance(args[1], StrawberryUnion):
877
- type_ = args[1]
878
-
879
873
  if isinstance(type_, StrawberryEnumDefinition):
880
874
  return self.from_enum(type_)
881
875
  if compat.is_input_type(type_): # TODO: Replace with StrawberryInputObject
@@ -897,7 +891,13 @@ class GraphQLCoreConverter:
897
891
  if isinstance(type_, StrawberryUnion):
898
892
  return self.from_union(type_)
899
893
  if isinstance(type_, LazyType):
900
- return self.from_type(type_.resolve_type())
894
+ resolved = type_.resolve_type()
895
+ # If the resolved type is an Annotated type (e.g., a union defined with
896
+ # the new syntax), run it through StrawberryAnnotation to properly
897
+ # resolve it. This ensures unions get their type_annotations populated.
898
+ if typing.get_origin(resolved) is Annotated:
899
+ return self.from_type(StrawberryAnnotation(resolved).resolve())
900
+ return self.from_type(resolved)
901
901
  if compat.is_scalar(
902
902
  type_, self.scalar_registry
903
903
  ): # TODO: Replace with StrawberryScalar
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: strawberry-graphql
3
- Version: 0.289.2
3
+ Version: 0.289.4
4
4
  Summary: A library for creating GraphQL APIs
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -87,7 +87,6 @@ Description-Content-Type: text/markdown
87
87
 
88
88
  > Python GraphQL library based on dataclasses
89
89
 
90
- [![CircleCI](https://img.shields.io/circleci/token/307b40d5e152e074d34f84d30d226376a15667d5/project/github/strawberry-graphql/strawberry/main.svg?style=for-the-badge)](https://circleci.com/gh/strawberry-graphql/strawberry/tree/main)
91
90
  [![Discord](https://img.shields.io/discord/689806334337482765?label=discord&logo=discord&logoColor=white&style=for-the-badge&color=blue)](https://discord.gg/ZkRTEJQ)
92
91
  [![PyPI](https://img.shields.io/pypi/v/strawberry-graphql?logo=pypi&logoColor=white&style=for-the-badge)](https://pypi.org/project/strawberry-graphql/)
93
92
 
@@ -162,7 +162,7 @@ strawberry/quart/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
162
162
  strawberry/quart/views.py,sha256=g0rs3UwFmqxt1DDZpAUF8qHIpT_g-AYwO-t8K-V3AE4,6680
163
163
  strawberry/relay/__init__.py,sha256=Vi4btvA_g6Cj9Tk_F9GCSegapIf2WqkOWV8y3P0cTCs,553
164
164
  strawberry/relay/exceptions.py,sha256=Bk9pPFbb28tDjUiydHa-tFl-e01XukxmJeWoWT9L17M,4017
165
- strawberry/relay/fields.py,sha256=QOf6miOo-6kyHvpBP1bGT_iey4d38wJ27kXAE0luI5g,18396
165
+ strawberry/relay/fields.py,sha256=qn7dcZfDeZ6EhRn27pOto2bJrlbjTZwl9I_9E6IPIgw,18697
166
166
  strawberry/relay/types.py,sha256=-yJ_jpGKPH_CNycWPmXMyn7GjN3MbDcWYvb0dt2VD2Y,30340
167
167
  strawberry/relay/utils.py,sha256=ARuQfTNKiIFztaqUYHQs74Wfx-075udJ7NGDeTHUFB8,5541
168
168
  strawberry/resolvers.py,sha256=j2sIi-jI2PrnO3if202l8VBuwQQxblPgRupEaDUu-lA,287
@@ -179,7 +179,7 @@ strawberry/schema/config.py,sha256=1i80WOoml_9qzOV-kfcx-LYMXYwWYl0uisdcZX1vMEg,2
179
179
  strawberry/schema/exceptions.py,sha256=SaEWtahVAg_f43coyg2h7H2UMZP10CZ_GJg72khBIAs,1105
180
180
  strawberry/schema/name_converter.py,sha256=G3yOj-BmZ6E0bcvvSbb2cWu8ngsXi8M6W0c6rKROMjc,6933
181
181
  strawberry/schema/schema.py,sha256=FKtqHGrOCnYMWhMwy1qWU_VXtw2IxyjpZZScL4PmVlg,39606
182
- strawberry/schema/schema_converter.py,sha256=nzTZIOyIwe9jCX66ZT7m7vm8UzpcUs-AW25XWnZC9J0,40791
182
+ strawberry/schema/schema_converter.py,sha256=RwSQaP8BeQVG9EXFrjawcemweaobrGrU6L7ScMT5xBM,40978
183
183
  strawberry/schema/types/__init__.py,sha256=oHO3COWhL3L1KLYCJNY1XFf5xt2GGtHiMC-UaYbFfnA,68
184
184
  strawberry/schema/types/base_scalars.py,sha256=ajMeN4W45AALhCnJO8MIisRb9slDZRyIl1S61LvHfSQ,2678
185
185
  strawberry/schema/types/concrete_type.py,sha256=Z0oPu52dlAMcGYw4_ZCv3OSyoSLw2DxyoegK-GH8s0U,801
@@ -240,8 +240,8 @@ strawberry/utils/logging.py,sha256=Dnivjd0ZhK_lAvjvuyCDkEWDhuURBoK9d3Kt_mIqbRg,7
240
240
  strawberry/utils/operation.py,sha256=Qs3ttbuC415xEVqmJ6YsWQpJNUo8CZJq9AoMB-yV65w,1215
241
241
  strawberry/utils/str_converters.py,sha256=-eH1Cl16IO_wrBlsGM-km4IY0IKsjhjnSNGRGOwQjVM,897
242
242
  strawberry/utils/typing.py,sha256=eE9NeMfASeXRstbjLnQFfOPymcSX8xwg3FGw_HCp95E,11828
243
- strawberry_graphql-0.289.2.dist-info/METADATA,sha256=9wP0VKP6xd2wp6nJUSbKhuyLX7r23Ssj0rulSnjWcbo,7627
244
- strawberry_graphql-0.289.2.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
245
- strawberry_graphql-0.289.2.dist-info/entry_points.txt,sha256=Nk7-aT3_uEwCgyqtHESV9H6Mc31cK-VAvhnQNTzTb4k,49
246
- strawberry_graphql-0.289.2.dist-info/licenses/LICENSE,sha256=m-XnIVUKqlG_AWnfi9NReh9JfKhYOB-gJfKE45WM1W8,1072
247
- strawberry_graphql-0.289.2.dist-info/RECORD,,
243
+ strawberry_graphql-0.289.4.dist-info/METADATA,sha256=RKzToLiQvFgIz3_1ZbGZARBZSHFdfsJYKKALngOWCWI,7394
244
+ strawberry_graphql-0.289.4.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
245
+ strawberry_graphql-0.289.4.dist-info/entry_points.txt,sha256=Nk7-aT3_uEwCgyqtHESV9H6Mc31cK-VAvhnQNTzTb4k,49
246
+ strawberry_graphql-0.289.4.dist-info/licenses/LICENSE,sha256=m-XnIVUKqlG_AWnfi9NReh9JfKhYOB-gJfKE45WM1W8,1072
247
+ strawberry_graphql-0.289.4.dist-info/RECORD,,