Recent Releases of gql

gql -

Features

  • Add comprehensive directive support to DSL module (#563)
  • Feature dsl schema shortcuts (#566)

Thanks @kasbaker for these features!

- Python
Published by leszekhanusz 6 months ago

gql -

Same as v4.0.0b0 Same as stable version v4.0.0 but with graphql-core alpha versions

- Python
Published by leszekhanusz 6 months ago

gql -

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 gql and dsl_gql methods will now return a GraphQLRequest instead of a Document Node a GraphQLRequest is an object containing the document and optional variable_values and operation_name
    • ALL the execute and subscribe methods now receive a GraphQLRequest as main argument instead of a DocumentNode, variable_values and operation_name arguments
    • The old method of sending variable_values as an argument of execute or subscribe still works but is deprecated See https://gql.readthedocs.io/en/latest/usage/variables.html for the new syntax.
  • Fix subscription task cancel exception swallow (#548): Previously if a task was cancelled while a subscription task was active, the asyncio.CancelledError Exception 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 FileVar instances 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)
  • 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 TransportConnectionFailed Exception
  • Set ssl=True by default for AIOHTTPTransport (#538) (issue #529)
  • New TransportConnectionClosed Exception replacing ConnectionClosed Exception (#536)
  • websocket attribute removed from transport, now using _connected instead (#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

  • Remove MIT license classifier (#555)
  • Refactor transports (#557)
  • bump aiohttp to 3.11.2 (#541)
  • Bumping all the dev dependencies to latest versions (#540)
  • Bump test dependencies (#539)
  • Update pytest to 8.3.4 and pytest-asyncio to 0.25.3 (#537)

- Python
Published by leszekhanusz 6 months ago

gql -

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 gql and dsl_gql methods will now return a GraphQLRequest instead of a Document Node a GraphQLRequest is an object containing the document and optional variable_values and operation_name
    • ALL the execute and subscribe methods now receive a GraphQLRequest as main argument instead of a DocumentNode, variable_values and operation_name arguments
    • The old method of sending variable_values as an argument of execute or subscribe still works but is deprecated See https://gql.readthedocs.io/en/latest/usage/variables.html for the new syntax.
  • Fix subscription task cancel exception swallow (#548): Previously if a task was cancelled while a subscription task was active, the asyncio.CancelledError Exception 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 FileVar instances 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)
  • 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 TransportConnectionFailed Exception

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

Misc

  • Remove MIT license classifier (#555)
  • Refactor transports (#557)

- Python
Published by leszekhanusz 9 months ago

gql -

Breaking Changes

  • Set ssl=True by default for AIOHTTPTransport (#538) (issue #529)
  • New TransportConnectionClosed Exception replacing ConnectionClosed Exception (#536)
  • websocket attribute removed from transport, now using _connected instead (#536)
  • Upgrade lastest websockets and Exceptions overhaul (#543)

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

  • bump aiohttp to 3.11.2 (#541)
  • Bumping all the dev dependencies to latest versions (#540)
  • Bump test dependencies (#539)
  • Update pytest to 8.3.4 and pytest-asyncio to 0.25.3 (#537)

- Python
Published by leszekhanusz 9 months ago

gql -

  • Bump graphql-core to v3.2.6 #547

- Python
Published by leszekhanusz 9 months ago

gql -

Now supporting graphql-core v3.2.4 again (See issue #534)

  • Allow graphql-core 3.2.4 by retrofitting introspection commits #535

- Python
Published by leszekhanusz 12 months ago

gql -

3.5.1

Issue #529 reported that by default the AIOHTTPTransport was not validating ssl certificates (a self-certificate was accepted by default).

This version adds a warning to warn users (See PR #533).

As a workaround, using ssl=True in the transport arguments fix the issue.

graphql-core has been restricted to <3.2.4 to fix tests.

A new stable version will be made shortly.

- Python
Published by leszekhanusz about 1 year ago

gql -

Warning

Issue #529 reported that by default the AIOHTTPTransport was not validating ssl certificates (a self-certificate was accepted by default).

This version adds a warning to warn users, in the PR:

  • AIOHTTPTransport default ssl cert validation add warning (#530)

A new major version will be made shortly to change this default behavior to always verify ssl certificates by default.

Features

  • Use httpx with gql-cli if aiohttp is not available on auto (#528)

Fixes

  • Using gql version of the getintrospectionquery method (#523) This would reset the change of graphql-core to increase the type recursion level from 7 to 9 in version graphql-core==3.3.0a7 and allow the possibility to change the introspection query recursion level.

Misc

  • Sort elements in node_tree method (#520)
  • Fix test for introspection type recursion level change in graphql-core v3.3.0a7 (#521)
  • Adding the inputvaluedeprecation argument to getintrospectionquery_ast (#524)
  • Remove Python 3.8 support (#525)
  • Bump sphinx dev dependencies (#526)
  • Bump httpx to min 0.27 (#531)
  • Bump websockets to 13.x (#532)

- Python
Published by leszekhanusz about 1 year ago

gql -

Features

  • New transport AIOHTTPWebsocketsTransport (#478)
  • Wire httpx transport in gql-cli (#513)

Fixes

  • Fix properly exiting the WebsocketsTransport when a connection_error is received during init (#486)
  • Always close transport when an exception appears during the transport connect (#488)
  • Fix ssl=None not supported on recent versions of aiohttp (#496)
  • Websockets transport Fix long hang under certain network failures (#517)

Misc

  • Bump mypy to 1.10 (#485)
  • Remove Python 3.7 support (#489)
  • Bump pytest-cov dev-dependency to 5.0.0 (#487)
  • Remove Python 3.7 support - cleaning old code (#495)
  • Update annotation for client.executebatch, getexecution_result argu… (#483)
  • Adding MIT License classifier (#498)
  • Delete gql-checker folder (#502)
  • Fix build wheel warnings (#503)
  • Using unittest.mock instead of mock (#504)
  • Using pyupgrade with --py38-plus (#505)
  • Upgrade GitHub workflows (#506)
  • Restrict permissions to GitHub actions (#509)
  • types-mock was only useful when using old standalone "mock" module (#511)
  • Fix python 3.11 test coverage issues (#512)
  • Add minimal pyproject.toml (#514)
  • Fix docs sphinx nitpick warnings - adding intersphinx_mapping (#515)
  • Fix tests failing vcrpy urllib3 dep (#518)
  • Support Python 3.13 (#519)
  • Fix deploy to Pypi GitHub action

- Python
Published by leszekhanusz about 1 year ago

gql -

Fixes

  • Fix importing DirectiveLocation directly from graphql (#477) Fix running gql with graphql-core 3.3.0a5

Misc

  • Fix spelling of _source (#474)
  • Doc Fix confusion about TransportQueryError execute retries (#473)

- Python
Published by leszekhanusz almost 2 years ago

gql -

Features

  • Adding json_serialize and json_deserialize to requests transport (#466)
  • Adding json_deserialize parameter to aiohttp and httpx transports (#465)

- Python
Published by leszekhanusz about 2 years ago

gql -

Same as stable version 3.5.0 but with graphql-core back to versions >= 3.3.0a3

- Python
Published by leszekhanusz about 2 years ago

gql -

IMPORTANT: graphql-core has been reverted to the stable versions 3.2.x See #427 A new pre-release version will be made shortly with the graphql-core versions 3.3.x

New features

  • Add execute-timeout argument for gql-cli (#349)
  • Add HTTPX transport (#370)
  • Don't try to close the aiohttp session if connector_owner is False (#382)
  • Feature allow to set the content-type of file uploads (#386)
  • Allow to configure the introspection query sent to recover the schema (#402)
  • Python 3.11 support (#410)
  • Make retry backoff and status codes customizable for the requests transport (#421)
  • Support batching queries using sync transports (#431)
  • Support automatic batching of sync requests coming from different threads (#436)
  • httpx transport now working with trio (#455) new anyio dependency added

Bug fixes

  • Fix KeyError when errors is not iterable (#359)
  • Handle JSON response being None (#365)
  • Get response headers even with 4xx return code (#367)
  • TransportQueryError should extend TransportError (#392)
  • Fix sync subscribe graceful shutdown (#395)
  • Restrict urllib3 to versions 1.x (#413) This should fix the problems which appeared when requests version 2.30 bumped urllib3 to a 2.x version.
  • DSLSchema transform type attribute assert into AttributeError (#409)
  • Fix typo response_headers in httpx transport (#407)
  • Allow alias on DSLMetaField (#405)
  • Fix parse_results with fragments (#446)
  • Fix missing empty directives in DSL nodes (#448)

Documentation

  • Add documentation on websockets level ping frames (#345)
  • Minor Spelling Mistake (#351)
  • Add phoenix channel transport example (#354)
  • DOC minor typo (#396)

Misc

  • Make AsyncTransport and Transport proper abstract base classes (#350)
  • Update graphql-core to 3.3.0 and dropping support for Python 3.6 (#363)
  • Update Sphinx dev dependency to 5.3.0 (#371)
  • Update aiohttp minimum dependency version to 3.8.0 (#393)
  • Bump websockets dependency to allow 11.x versions (#424)
  • Adjust aiohttp pin (#425)
  • Validate the argument of the gql function (#435)
  • Switch ubuntu-latest to ubuntu-20.04 to fix github actions
  • Bump vcrpy and requests_toolbelt (#440) : allows users to use urllib3 2.x versions
  • Fix automatic documentation build on readthedocs.io: readthedocs remove system_packages: true in config
  • DOC explain how to install pre-releases versions
  • Fix tests with Python 3.12 (#442)
  • Adding node_tree method in utilities to debug and compare DocumentNode instances (#449)

- Python
Published by leszekhanusz about 2 years ago

gql -

Features

  • httpx transport now working with trio (#455) new anyio dependency added

Misc

  • Adding node_tree method in utilities to debug and compare DocumentNode instances (#449)

- Python
Published by leszekhanusz about 2 years ago

gql -

Fixes

  • Fix missing empty directives in DSL nodes (#448)

- Python
Published by leszekhanusz over 2 years ago

gql -

Fixes

  • Fix parse_results with fragments (#446)

Misc

  • Fix automatic documentation build on readthedocs.io: readthedocs remove system_packages: true in config
  • DOC explain how to install pre-releases versions
  • Fix tests with Python 3.12 (#442)

- Python
Published by leszekhanusz over 2 years ago

gql -

Features

  • Support batching queries using sync transports (#431)
  • Support automatic batching of sync requests coming from different threads (#436)

Misc

  • Validate the argument of the gql function (#435)

Maintenance

  • Bump vcrpy and requests_toolbelt (#440) : allows users to use urllib3 2.x versions

- Python
Published by leszekhanusz over 2 years ago

gql -

Features

  • Make retry backoff and status codes customizable for the requests transport (#421)

Maintenance

  • Bump graphql-core min version to 3.3.0a3 and remove await before subscribe (#417)
  • Bump websockets dependency to allow 11.x versions (#424)
  • Adjust aiohttp pin (#425)

- Python
Published by leszekhanusz over 2 years ago

gql -

Features

  • Allow to configure the introspection query sent to recover the schema (#402)
  • Python 3.11 support (#410)

Fixes

  • Restrict urllib3 to versions 1.x (#413) This should fix the problems which appeared when requests version 2.30 bumped urllib3 to a 2.x version.
  • DSLSchema transform type attribute assert into AttributeError (#409)
  • Fix typo response_headers in httpx transport (#407)
  • Allow alias on DSLMetaField (#405)
  • DOC minor typo (#396)
  • Switch ubuntu-latest to ubuntu-20.04 to fix github actions

- Python
Published by leszekhanusz almost 3 years ago

gql -

Fixes

  • Restrict urllib3 to versions 1.x (#413). This should fix the problems which appeared when requests version 2.30 bumped urllib3 to a 2.x version.

- Python
Published by leszekhanusz almost 3 years ago

gql -

Fixes

  • Fix sync subscribe graceful shutdown (#395)

- Python
Published by leszekhanusz almost 3 years ago

gql -

Fixes

  • TransportQueryError should extend TransportError (#392)

Maintenance

  • Update aiohttp minimum dependency version to 3.8.0 (#393)

- Python
Published by leszekhanusz almost 3 years ago

gql -

New features

  • Don't try to close the aiohttp session if connector_owner is False (#382)
  • Feature allow to set the content-type of file uploads (#386)

- Python
Published by leszekhanusz about 3 years ago

gql -

New features

  • Add HTTPX transport (#370)

Misc

  • Update Sphinx dev dependency to 5.3.0 (#371)

- Python
Published by leszekhanusz about 3 years ago

gql -

New features

  • Add execute-timeout argument for gql-cli (#349)

Bug fixes

  • Fix KeyError when errors is not iterable (#359)
  • Handle JSON response being None (#365)
  • Get response headers even with 4xx return code (#367)

Documentation

  • Add documentation on websockets level ping frames (#345)
  • Minor Spelling Mistake (#351)
  • Add phoenix channel transport example (#354)

Misc

  • Make AsyncTransport and Transport proper abstract base classes (#350)
  • Update graphql-core to 3.3.0 and dropping support for Python 3.6 (#363)

- Python
Published by leszekhanusz over 3 years ago

gql -

New features

  • Permanent reconnecting async session (#324) This new feature will make it more easy to keep a reference to a session in a class. See the new documentation about this Note: the backoff dependency had to be added for this feature
  • Adding explicit json_serialize argument in AIOHTTPTransport (#337)

Bug fixes

  • Allow omitting optional arguments with serialize_variables=True (#338)

Documentation

  • DOC Add basic example result in README (#336)

- Python
Published by leszekhanusz over 3 years ago

gql -

New features

  • DSL Add default method for variables (#322)

Fixes

  • Check for errors during fetch_schema() (#328)
  • Fix parsing of None with parse_results=True (#326)

Documentation

  • Add doc to install gql with conda (#321)

- Python
Published by leszekhanusz almost 4 years ago

gql -

New features

  • DSL: support custom names for root operation types (#320)

Fixes

  • Fix gql-cli signal issue on windows (fixed in #311)
  • Represent serialized floats to approximately python float precision (#318)

Maintenance

  • Update black dev dependency to 22.3.0 (#313)
  • replace use of scripts with entry_points (#311)
  • build Python wheel (#312)

Documentation

  • DSL add note for arguments with Python keywords (#317)

- Python
Published by leszekhanusz almost 4 years ago

gql -

New features

  • Allow to specify subprotocols in the websockets transport (#300)
  • Saving http response headers reference in transports (#293)

Fixes

  • Close transport when fetching the schema failed (#297)
  • Fix errors raising TransportProtocolError with the graphql-ws protocol (#299)
  • Client: Add explicit overloads and remove *args arguments (#306)

- Python
Published by leszekhanusz almost 4 years ago

gql -

The graphql-python/gql stable version 3.0 is now finally available!

A lot of changes were made since the stable 2.x version and were available in the many pre-releases released since then. We now support async usage and subscriptions, new transports (aiohttp, websockets, phoenix channels, AWS appsync), file uploads, gql-cli script, completely revamped DSL module to compose GraphQL queries dynamically, custom scalars support... with 100% code coverage, typing hints and complete documentation.

This version needs graphql-core>=3.2.0 (#283)

Breaking changes since 2.x

  • Set use_json default True by default in requests transport (#16)
  • type_def argument in Client is now removed in favor of schema (#113) (#262)
  • The schema is now always fetched at the beginning of the first session if fetch_schema_from_transport is set to True (#167) Note that previously with 2.x versions, if the fetching of the schema failed, then the error was silently discarded. This is no more the case with 3.x versions and if you use fetch_schema_from_transport=True and there was a problem while getting the schema, then you'll get an Exception
  • Optional dependencies for transports (#158):
  • DSL module: see below
  • EDIT variable values: some users were apparently providing variable values using client.execute(query, variables) instead of client.execute(query, variable_values=variables). This no longer works in gql 3.0

New since 2.x

  • New websockets and aiohttp async transports using asyncio (#70). See async vs sync in the documentation
  • Implementation of graphql-ws protocol (#242)
  • File upload support (#145) with streaming functionalities (#174) for aiohttp or requests transport (#244)
  • gql-cli script
  • RequestHTTPTransport:
    • Support different operation names (#21)
    • Add extra_args argument to execute function (#232)
    • Update requests/urllib3 dependency and allow retries on POST requests (#249)
  • Custom Scalars input serialization in variables (#253)
  • Parse custom scalar and enums in outputs (#256)
  • Adding a new transport class to handle Phoenix channels (#100) (#228)
  • Supports AWS AppSync (#239)
  • Complete Refactor of the DSL Module (#169):
    • The DSLSchema only needs a schema, a Client is no more needed
    • New dsl_gql function to convert the DSL operations into a Document
    • This allows DSL queries to be executed in a session instead of a client (Solves #138)
    • Added typing annotations
    • Added code documentation and sphinx docs (Solves #82)
    • Supports Subscriptions
    • Fix nested input arguments
    • Allow to set the alias directly in the select method
    • Allow multiple operations in a document
    • Allow to set the operation name
    • Allow to use GraphQL keys named type (#151)
    • Add support for variable definitions (#210)
    • Implementation of fragments (#235)
    • Serialize complex arguments to literals (#255)
    • Meta fields implementation (#259)
    • Refactor select (#261)
  • Support extensions:
    • It is now possible to get the full execution result to receive the extensions field (#257)
    • Add extensions field to ExecutionResult (#190)
  • Enable mypy to discover type hints as specified in PEP 561 (#207)

Big thanks to @Cito for the graphql-core development and all the many contributors who contributed to this release!

- Python
Published by leszekhanusz about 4 years ago

gql -

Misc

  • Bump graphql-core to 3.2.0 (#283)
  • Add type overloads for getexecutionresult (#287)

Fixes

  • Update type hint to align with docs and usage (#285)

Other

  • Mark online tests as online (#288)

- Python
Published by leszekhanusz about 4 years ago

gql -

New features

  • Supports AWS AppSync (#239)
  • It is now possible to get the full execution result to receive the extensions field (#257)
  • Add --print-schema to gql-cli to easily download a schema from a backend (#258)
  • DSL meta fields implementation (#259)
  • Enable mypy to discover type hints as specified in PEP 561 (#275)
  • gql-cli add --transport argument (#281)

Fixes

  • Invert the order of proposed subprotocols apollo and graphql-ws (#265):
    This was needed because some backends were incorrectly sending the first
    supported protocol in the list without verification
  • Fix aiohttp wait for closed ssl connections (#153):
    Should fix error "RuntimeError: Event loop is closed" when using gql-cli under windows with a https backend
  • Add skip and include directive in introspection schema (#279)

Other

  • DSL Refactor select (#261)
  • Supporting Python 3.10 without warnings (#264)
  • Update websockets to 10 for Python versions >= 3.6
  • Expand aiohttp version range (#274)
  • Documentation Adding error handling doc (#266)
  • gql-cli add signal handlers to catch ctrl-c and close cleanly (#276)
  • refactor the websockets transport with WebsocketsTransportBase (#239)

Breaking changes

  • Remove the obsolete type_def argument of Client (#262)

- Python
Published by leszekhanusz about 4 years ago

gql -

New features

  • Custom Scalars input serialization in variables (#253)
  • DSL serialize complex arguments to literals (#255)
  • Parse custom scalar and enums in outputs (#256)

documentation is available there

- Python
Published by leszekhanusz over 4 years ago

gql -

New features

  • Implementation of graphql-ws protocol (#242)
  • Add upload_files functionality for requests transport (#244)
  • AIOHTTPTransport ignore backend mimetype (#248)
  • Add the option to specify a filename on multipart file upload (#241)
  • DSL implementation of fragments (#235)
  • RequestsHTTPTransport add extra_args argument to execute function (#232)
  • Update typing hints of timeouts to allow passing floats (#234)
  • PhoenixChannelWebsocketsTransport: Handle Absinthe unsubscriptions (#228)

Bug fixes

  • Update requests/urllib3 dependency and allow retries on POST requests (#249)
  • Async generators always ensure that inner generator are closed properly (#230)

- Python
Published by leszekhanusz over 4 years ago

gql -

New features

  • Add Streaming functionalities to file uploads (#174)
  • Add extensions field to ExecutionResult (#190)
  • Added keep_alive_timeout argument to the websockets transport to close the connection if no keep alive are received from the backend in the specified time (#201)
  • Add support for variable definitions in dsl (#210)

Fixes

  • Fix 4xx error handling in transports (#195)

Maintenance

  • Update graphql-core version to 3.1.5 (#213)
  • Update websockets to >=9 (#214)

Documentation

  • Adding docs and test about cookies (#202)
  • add docs on how to disable the transport logs (#183)

- Python
Published by leszekhanusz over 4 years ago

gql -

Breaking Changes

  • The schema is now always fetched at the beginning of the first session if fetch_schema_from_transport is set to True (#167)
  • Complete Refactor of the DSL Module (#169):
    • The DSLSchema only needs a schema, a Client is no more needed.
    • New dsl_gql function to convert the DSL operations into a Document
    • This allows DSL queries to be executed in a session instead of a client (Solves #138)
    • Added typing annotations
    • Added code documentation and sphinx docs (Solves #82)
    • Supports Subscriptions
    • Fix nested input arguments
    • Allow to set the alias directly in the select method
    • Allow multiple operations in a document
    • Allow to set the operation name

Maintenance

  • Update aiohttp to >= 3.7.1 (currently 3.7.3)
  • Update yarl to >= 1.6.0

- Python
Published by leszekhanusz over 5 years ago

gql -

Breaking Changes:

  • Optional dependencies for transports (#158):
    • It is now necessary to request additional dependencies when installing gql
    • It is no more possible to import transports directly from gql (Sorry...)
    • Please check the new installation documentation

Improvements:

  • aiohttp and requests transports logging (#157)
  • Better transport exception messages (#155)

Documentation:

  • Adding IPython section (#165)
  • Adding Logging section (#157)

Maintenance:

  • Stable Python 3.9 support (#160)
  • Update aiohttp from 3.6.2 to 3.7.1 (#159)

- Python
Published by leszekhanusz over 5 years ago

gql -

Breaking changes: * gql-cli script * Now printing result as json * Now working with multi-lines queries, using Ctrl-D (EOF) to execute queries * Using --variables instead of --params

New features: * File upload support (#145) * improved gql-cli script (#148)

Bugs corrected: * DSL allow to use GraphQL keys named type (#151) * Yarl dependency restricted to <1.6

- Python
Published by leszekhanusz over 5 years ago

gql -

Another alpha release of the 3.0 branch.

Bugs corrected:

  • Fix running execute and subscribe of client in a Thread (#135)
  • Fix race condition in websocket transport close (#133)
  • DSL: Fixed bug where a nested GraphQLInputObjectType is causing infinite recursive calls (#132)
  • Raises "KeyError" when argument is invalid on DSL. (#121)

New features:

  • Adding a new transport class to handle Phoenix channels (#100)
  • add the data property in TransportQueryError (#136)

Other improvements:

  • Migrated from Travis to GitHub actions
  • Migrated from coveralls to codecov
  • New documentation generated with sphinx, hosted on readthedocs.io

- Python
Published by leszekhanusz over 5 years ago

gql -

This is the second alpha release of the "modern" 3.0 branch.

The main improvements in this version are:

  • Fix some issues with Hasura backend:
    • optional variables an operation name for aiohttp and websockets transports (#94)
    • ignoring keep-alive messages arriving before the connection_ack message (#110)
  • Using more specific exceptions (#95)
  • It is now possible to get all the returned errors in the TransportQueryError exception (#96)
  • Documentation: Improved README.md and added coding guidelines to CONTRIBUTING.md (#97 #114)
  • 100% tests coverage (#107)
  • Graceful shutdown for synchronous subscriptions (#99)
  • type_def argument in Client is now deprecated in favor of schema (#113)

- Python
Published by leszekhanusz over 5 years ago

gql -

This is the first alpha version in the "modern" branch of gql.

This branch is based on GraphQL-core 3 and supports Python 3.6+.

The main improvements in this version are:

  • Set use_json default true by default in requests transport (#16)
  • Support different operation names in requests transport (#21)
  • New websockets and http async transports using asyncio (#70)
  • Allow to pass arguments to websockets.connect (#83)
  • LocalSchemaTransport is now an AsyncTransport (#84)
  • New connect method in requests transports (#87)

Please give us your feedback so that we can publish beta and final releases soon.

- Python
Published by Cito almost 6 years ago

gql -

This is the first version in the "legacy" branch of gql.

This branch is based on GraphQL-core 2 and supports Python 2.7 and 3.5+.

We recommend upgrading to Python 3 and using the modern branch starting with v3.0.0.

- Python
Published by Cito almost 6 years ago