Ariadne 0.13.0
Whooosh! ✈️
Ariadne 0.13 is a maintenance release that brings speed improvements and Python 3.9 support of GraphQL core 3.1 to the library!
We've also managed to sneak in some other small improvements to the project.
Updated GraphQL core to 3.1.3
Ariadne is now using GraphQL core version 3.1.3 for GraphQL standard implementation. This release brings much sought performance improvements to the GraphQL query execution engine which are now available to all Ariadne users!
We give our thank you to Nick Harris who contributed this change!
Python 3.9 support
GraphQL core 3.1 is first release to officially support Python 3.9. As such we've added Python 3.9 to the testing matrix and list of officially supported Python versions.
None
is now returned for empty entities in federation.
Ariadne used to return {"__typename": typename}
when federated resolver returned None
, causing compatibility issues with Apollo Federation.
In 0.13 None
is returned instead, properly communicating federated service's intention to the upstream server.
Thanks to Delyan who contributed this fix!
Nested variables support in query price validation
It is now possible to define nested variables as multipliers for query cost when using query price validation. This is useful when complexity should be calculated using the value of field belonging to input type, eg:
type Query {
users(pagination: PaginationInput): UsersListPage!
}
input PaginationInput {
pageSize: Int!
}
cost_map = {
"Query": {
"users": {"complexity": 1, "multipliers": ["pagination.pageSize"]},
},
}
Thank you T.Kameyama for contributing this!
convert_kwargs_to_snake_case
and snake_case_fallback_resolvers
.
Improved Ariadne's case conversion mechanic is a hot topic for developers and new release brings improvements to this feature contributed by two users.
Starting with 0.13 release, Ariadne's case conversion utils now recognize both numbers and acronyms:
testWithUPPERPart
is now converted totest_with_upper_part
.test134part
is now converted totest_134_part
.
Thank you both Ben Motz and nilsdet for contributing those improvements!
CHANGELOG
- Updated
graphQL-core
requirement to 3.1.3. - Added support for Python 3.9.
- Added support for using nested variables as cost multipliers in the query price validator.
None
is now correctly returned instead of{"__typename": typename}
within federation.- Fixed some surprising behaviors in
convert_kwargs_to_snake_case
andsnake_case_fallback_resolvers
.