Skip to main content

Ariadne 0.13.0

· 2 min read

Ariadne's Jet Plane

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!

Improved convert_kwargs_to_snake_case and snake_case_fallback_resolvers.

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 to test_with_upper_part.
  • test134part is now converted to test_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 and snake_case_fallback_resolvers.