fix(deps): update dependency gql to v4
This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| gql | project.dependencies | major |
== 3.5.3 -> ==4.0.0
|
MR created with the help of gitlab-org/frontend/renovate-gitlab-bot
Release Notes
graphql-python/gql (gql)
v4.0.0
Breaking Changes
- Change transports prototype using GraphQLRequest (#551)
- Using GraphQLRequest instead of DocumentNode for gql, execute, subscribe methods (#556):
This is a big change:
- the
gqlanddsl_gqlmethods will now return aGraphQLRequestinstead of aDocumentNode aGraphQLRequestis an object containing the document and optionalvariable_valuesandoperation_name - ALL the
executeandsubscribemethods now receive aGraphQLRequestas main argument instead of aDocumentNode,variable_valuesandoperation_namearguments - The old method of sending
variable_valuesas an argument ofexecuteorsubscribestill works but is deprecated See https://gql.readthedocs.io/en/latest/usage/variables.html for the new syntax.
- the
- Fix subscription task cancel exception swallow (#548):
Previously if a task was cancelled while a subscription task was active,
the
asyncio.CancelledErrorException would be swallowed by our code. This is not the case anymore so you should now trap that Exception yourself. - Clean up the file upload interface with FileVar class (#549):
The file upload functionality has been modified to require
FileVarinstances for uploaded files (the old method still works but is deprecated). See https://gql.readthedocs.io/en/latest/usage/file_upload.html - Set logging level to DEBUG for all transports (#552)
- introspection now requests deprecated input fields by default (#553)
Note that some backends might not support this and return
Unknown argument includeDeprecated. See #564 - Trapping dependencies Exceptions into TransportConnectionFailed (#558):
Now gql will trap Exceptions raised by dependencies when executing a request and will
encapsulate that Exception into the
TransportConnectionFailedException - Set ssl=True by default for AIOHTTPTransport (#538) (issue #529)
- New
TransportConnectionClosedException replacingConnectionClosedException (#536) -
websocketattribute removed from transport, now using_connectedinstead (#536) - Upgrade lastest websockets and Exceptions overhaul (#543)
Features
Batching requests is now fully supported, on sync or async transports, with automatic batching:
- Implementation of execute_batch for async transports (#550)
- Implementation of automatic batching for async (#554)
See https://gql.readthedocs.io/en/latest/advanced/batching_requests.html
Fixes
-
Fix httpx test deprecated warning (#542)
-
Refactor websockets transports (#536) :
Refactor WebSockets Transport with Dependency Injection Architecture
This major architectural improvement implements dependency injection patterns across the WebSockets transport layer, creating a more modular, testable, and extensible system:
- Created abstract AdapterConnection interface in common/adapters/connection.py
- Implemented concrete WebSocketsAdapter to wrap the websockets library
- Moved websockets_base.py to common/base.py maintaining better structure which is independant of the websockets library used
- Added new TransportConnectionClosed exception for clearer error handling
- Reorganized code with proper separation of concerns:
- Moved common functionality into dedicated adapters folder
- Isolated connection handling from transport business logic
- Separated ListenerQueue into its own file for better modularity
Misc
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.