Releases: strawberry-graphql/strawberry
馃崜 0.233.3
This release fixes a typing issue where trying to type a root
argument with
strawberry.Parent
would fail, like in the following example:
import strawberry
@strawberry.type
class SomeType:
@strawberry.field
def hello(self, root: strawberry.Parent[str]) -> str:
return "world"
This should now work as intended.
Releases contributed by @bellini666 via #3529
馃崜 0.233.2
This release fixes an introspection issue when requesting isOneOf
on built-in
scalars, like String
.
Releases contributed by @patrick91 via #3528
馃崜 0.233.1
This release exposes get_arguments
in the schema_converter module to allow
integrations, such as strawberry-django, to reuse that functionality if needed.
This is an internal change with no impact for end users.
Releases contributed by @bellini666 via #3527
馃崜 0.233.0
This release refactors our Federation integration to create types using
Strawberry directly, instead of using low level types from GraphQL-core.
The only user facing change is that now the info
object passed to the
resolve_reference
function is the strawberry.Info
object instead of the one
coming coming from GraphQL-core. This is a breaking change for users that
were using the info
object directly.
If you need to access the original info
object you can do so by accessing the
_raw_info
attribute.
import strawberry
@strawberry.federation.type(keys=["upc"])
class Product:
upc: str
@classmethod
def resolve_reference(cls, info: strawberry.Info, upc: str) -> "Product":
# Access the original info object
original_info = info._raw_info
return Product(upc=upc)
Releases contributed by @patrick91 via #3525
馃崜 0.232.2
This release fixes an issue that would prevent using lazy aliased connections to
annotate a connection field.
For example, this should now work correctly:
# types.py
@strawberry.type
class Fruit: ...
FruitConnection: TypeAlias = ListConnection[Fruit]
# schema.py
@strawberry.type
class Query:
fruits: Annotated["FruitConnection", strawberry.lazy("types")] = (
strawberry.connection()
)
Releases contributed by @bellini666 via #3524
馃崜 0.232.1
This release fixes an issue where mypy would complain when using a typed async
resolver with strawberry.field(resolver=...)
.
Now the code will type check correctly. We also updated our test suite to make
we catch similar issues in the future.
Releases contributed by @patrick91 via #3516
馃崜 0.232.0
This release improves type checking for async resolver functions when used as
strawberry.field(resolver=resolver_func)
.
Now doing this will raise a type error:
import strawberry
def some_resolver() -> int:
return 0
@strawberry.type
class User:
# Note the field being typed as str instead of int
name: str = strawberry.field(resolver=some_resolver)
馃崜 0.231.1
馃崜 0.231.0
When calling the CLI without all the necessary dependencies installed,
a MissingOptionalDependenciesError
will be raised instead of a
ModuleNotFoundError
. This new exception will provide a more helpful
hint regarding how to fix the problem.
Releases contributed by @parafoxia via #3511
馃崜 0.230.0
This release adds support for @oneOf
on input types! 馃帀 You can use
one_of=True
on input types to create an input type that should only have one
of the fields set.
import strawberry
@strawberry.input(one_of=True)
class ExampleInputTagged:
a: str | None = strawberry.UNSET
b: int | None = strawberry.UNSET
Releases contributed by @patrick91 via #3429