Tartiflette Versions Save

GraphQL Engine built with Python 3.6+ / asyncio

1.4.1

2 years ago

[1.4.1] - 2021-11-15

Added

  • PR-525 - Python 3.10 is now officially supported
  • PR-522 - Add an optional sdl_file_encoding argument to Engine class, to specify the encoding of SDL files
  • PR-526 - Add an optional sdl_file_encoding argument to create_engine method, to specify the encoding of SDL files

Changed

1.4.0

2 years ago

[1.4.0] 2021-08-02

Added

  • PR-461 - Add a coerce_parent_concurrently parameter to create_engine, Engine.__init__ & Engine.cook to control whether or not field will be coerced concurrently
  • PR-461 - Add a parent_concurrently parameter to both @Resolver & @Subscription in order to control whether or not the decorated field should be coerced concurrently
  • PR-514 - Provides wheels for macOS (x86_64 only) and Linux (x86_64 only). If your system architecture is one of those, you may not need to install cmake anymore, as the wheels come pre-built with a compiled version of libgraphqlparser

Changed

  • PR-461 - Rename the concurrently parameter to list_concurrently on both @Resolver & @Subscription
  • PR-508 - Simplify GitHub actions workflows
  • Upgrade lark-parser from 0.11.2 to 0.11.3
  • Upgrade pytest from 6.2.2 to 6.2.4
  • Upgrade pytest-cov from 2.11.1 to 2.12.1
  • Upgrade pytest-asyncio from 0.14.0 to 0.15.1
  • Upgrade pylint from 2.7.2 to 2.9.5
  • Upgrade black from 20.8b1 to 21.7b0
  • Upgrade isort from 5.7.0 to 5.9.2
  • Upgrade pytest-benchmark from 3.2.3 to 3.4.1

1.3.3

3 years ago

[1.3.3] 2021-04-09

Fix

ISSUE-483 - Add an environment variable to specify the directory to look for the libgraphqlparser.so (dynlib) files. Thanks @Lilja

1.3.2

3 years ago

[1.3.2] - 2021-03-29

Fixed

  • Types are now exposed to downstream packages as specified by PEP-561 - Thanks tbekolay

Changed

  • lark-parser from 0.11.1 to 0.11.2
  • pytest to 6.2.2
  • pylint to 2.7.2

1.3.1

3 years ago

[1.3.1] 2021-01-27

Added

  • Built-in introspection directive @nonIntrospectable now supports SCHEMA object decoration.
schema @nonIntrospectable {
    ...
}

Fixed

  • ISSUE-453 - Exceptions in schema directive are now handled

1.3.0

3 years ago

[1.3.0] - 2020-12-08

Added

  • Setup a CodeQL analysis Github Action
  • ISSUE-457 - Add a coerce_list_concurrently parameter to create_engine, Engine.__init__ & Engine.cook to control whether or not output list should be coerced concurrently
  • ISSUE-457 - Add a concurrently parameter to both @Resolver & @Subscription in order to control whether or not the output list of the decorated field should be coerced concurrently

Fixed

  • Fix link issue on 1.2.0 changelog (thanks @mkniewallner)
  • Fix year reference for 1.2.0 changelog (thanks @garyd203)
  • Improve documentation (thanks @dkbarn)
  • Fix README.md typo (thanks @mazzi)
  • Add clarification on the breaking change on output list coercion introduced with the 1.2.0 version (thanks @garyd203)
  • ISSUE-457 - Output list are now coerced concurrently by default (breaking the change made on 1.2.0)

Changed

  • Upgrade black from 19.10b0 to 20.8b1
  • Upgrade isort from 4.3.21 to 5.6.4
  • Upgrade lark-parser from 0.8.5 to 0.11.1
  • Upgrade pylint from 2.5.2 to 2.6.0
  • Upgrade pytest-asyncio from 0.12.0 to 0.14.0
  • Upgrade pytest-cov from 2.8.1 to 2.10.1
  • Upgrade pytest-xdist from 1.32.0 to 2.1.0
  • Upgrade pytest from 5.4.1 to 6.1.2

1.2.1

4 years ago

[1.2.1] - 2020-05-06

Fixed

  • ISSUE-381 - Now pre_output_coercion hooks are called when OBJECT types are retrieved through an UNION or an INTERFACE. Furthermore UNION/INTERFACE hooks are also called before the Object ones are called.

Changed

  • pytest is now in version 2.5.2

1.2.0

4 years ago

[1.2.0] - 2020-04-30

Added

  • ISSUE-363 - Add an optional query_cache_decorator argument at engine initialisation allowing to forward a custom decorator to use to cache query parsing.
  • ISSUE-362 - Add an optional json_loader argument to engine creation APIs so json loader can be customized.
  • ISSUE-361 - Add an optional custom_default_arguments_coercer argument at engine initialisation to override the callable used to coerce arguments.
  • ISSUE-361 - Add an optional arguments_coercer to @Directive, @Subscription & @Resolver decorator to override the callable used to coerce arguments on the decorated directive/field.

Changed

  • ISSUE-356 - Removed dependencies on flex and bison for installing Tartiflette. cmake is still necessary.
  • ISSUE-361 - Coerce lists (input, literal, output) synchronously to avoid creation of too many asyncio tasks.
  • ISSUE-365 - Forward the InputValueDefinitionNode to the on_argument_execution hook.

    Note: this brings a break changes from previous versions, to upgrade to this version you'll have to update your on_argument_execution methods:

    @Directive("MyDirective")
    class MyDirective:
        async def on_argument_execution(
            self,
            directive_args: Dict[str, Any],
            next_directive: Callable,
            parent_node: Union["FieldNode", "DirectiveNode"],
    +       argument_definition_node: "InputValueDefinitionNode",
    -       argument_node: "ArgumentNode",
    +       argument_node: Optional["ArgumentNode"],
            value: Any,
            ctx: Optional[Any],
        ) -> Any:
            # Write your business logic here
    -       return next_directive(parent_node, argument_node, value, ctx)
    +       return next_directive(parent_node, argument_definition_node, argument_node, value, ctx)
    

Fixed

  • ISSUE-370 - Fix EnumValue uniqueness in schema definition validation rule. It should now throw the correct error in the correct case.

    enum anEnum {
        A
        A
        B
    }
    

    Will throw a GraphQLSchemaError exception at engine build time. You can't have duplicates values.

    But now:

    type X {
        afield:String
    }
    
    enum anEnum {
        Value1
        X
    }
    

    Doesn't throw a GraphQLSchemaError for the use of X as an EnumValue. This was a buggy schema error detection

  • ISSUE-372 - Fix SDL Validation, Now ObjectFollowInterface validator validate field arguments and allows for field type to be covariant of the interface defined type.

  • Typing on the documentation related to the argument_node argument on the on_argument_execution directive hook.

1.1.3

4 years ago

[1.1.3] - 2020-02-18

Fixed

  • Correctly implement comparisons on extension types. Thanks @mkniewallner
  • Fix typo in some private function names. Thanks @mkniewallner

1.1.2

4 years ago

[1.1.2] - 2020-02-05

Changed

  • Update pytest to 5.3.5
  • Update lark-parser to 0.8.1

Fixed

  • Typo (Varibable -> Variable) in error messages (Thanks @davestone)
  • Typo (Exists -> Exist) in error messages (Thanks @garyd203)
  • ISSUE-345 - Now support correctly class method for on_subscription_execution.