indok-web
indok-web copied to clipboard
chore(deps): bump graphene from 2.1.8 to 3.3 in /backend/requirements
Bumps graphene from 2.1.8 to 3.3.
Release notes
Sourced from graphene's releases.
v3.3.0
This release brings two new features and several fixes and semantic upgrades due to new Python features. Thanks to everyone that contributed! 😊
Default value for InputObjectTypes
⚠️⚠️ACTION REQUIRED⚠️⚠️ In GraphQL, inputs can have fields which are optional. Currently, if those fields are not specified in the query, they are passed to the python inputs as
None
. This renders them indistinguishable from fields that are actually passed to the query with a value ofnull
. While the alternative would be to check the definition via"key" in input
, it is more accessible to mark these fields as explicitlyUNDEFINED
. This PR adds a new global override, which allows unspecified fields to be set tographql.UNDEFINED
. In the future, the default Value will be set toUNDEFINED
, making this a soft migration and deprecation of the previous situation.This is a soft migration. Long-Term, the Input Objects will ALWAYS contain the value
UNDEFINED
Make sure your code supports these cases inNone
checks. After the default has been set toUNDEFINED
, you will still be able to switch back toNone
for the foreseeable future.Strict connection types support in Relay
Custom Relay connection classes can now be made
NonNull
using thestrict_types
option on the connection meta.Using this example
class MyObjectConnection(Connection): class Meta: node = MyObject strict_types = True
will change from
type MyObjectConnection { edges: [MyObject] }
to
type MyObjectConnection { edges: [MyObject!]! }
Caveats
We want to make sure you're informed about using NonNull relay connections. While they are a great way to get rid of some null checks in typed frontends, it's important to be mindful of error handling with these connections. When working with NonNull connections, it's crucial to remember that if a requested field or edge is not available or the resolver throws an error, the error will bubble up to the next nullable parent field, which is oftentimes the root node. That way, you cannot handle partial results in case of partial errors anymore. In a nullable connection, only the nullable fields will be set to null and the error will not bubble up.
To address this, we recommend considering waiting for the future release of client-controlled nullability for cases where certain connections might be nullable. By opting for client-controlled nullability, you gain more control over error handling, enabling you to handle potential null values more gracefully and enhance the overall user experience. Read more about client controlled nullability here: graphql/graphql-spec#867
What's Changed
- Default enum description to "An enumeration." by
@firaskafri
in graphql-python/graphene#1502- Allow the user to change InputObjectType's default value on non-specified inputs to a sentinel value by
@flipbit03
in graphql-python/graphene#1506- 881: Corrected enum metaclass to fix pickle.dumps() by
@senseysensor
in graphql-python/graphene#1495- chore: Use
typing.TYPE_CHECKING
instead of MYPY by@rapsealk
in graphql-python/graphene#1503- test: print schema with InputObjectType with DateTime field with default_value (#1293) by
@ransomw
in graphql-python/graphene#1513
... (truncated)
Commits
f5aba2c
release: 3.3.0ea7ccc3
feat(relay): add option for strict connection types (#1504)6b8cd2d
ci: drop python 3.6 (#1507)74db349
docs: add get_human function (#1380)99f0103
test: print schema with InputObjectType with DateTime field with default_valu...03cf2e1
chore: remove travis ci linkd77d0b0
chore: Usetyping.TYPE_CHECKING
instead of MYPY (#1503)c636d98
fix: Corrected enum metaclass to fix pickle.dumps() (#1495)2da8e9d
feat: Enable use of Undefined in InputObjectTypes (#1506)8ede21e
chore: default enum description to "An enumeration." (#1502)- Additional commits viewable in compare view
You can trigger a rebase of this PR by commenting @dependabot rebase
.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
-
@dependabot rebase
will rebase this PR -
@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it -
@dependabot merge
will merge this PR after your CI passes on it -
@dependabot squash and merge
will squash and merge this PR after your CI passes on it -
@dependabot cancel merge
will cancel a previously requested merge and block automerging -
@dependabot reopen
will reopen this PR if it is closed -
@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Note Automatic rebases have been disabled on this pull request as it has been open for over 30 days.