From 5be240d357f7be6fd7738b7b869b2cf2f1fd4f31 Mon Sep 17 00:00:00 2001 From: Inex Code Date: Mon, 1 Aug 2022 13:28:12 +0300 Subject: [PATCH] Update Strawberry and backport graphql-core to Nixos 21.11 --- shell.nix | 24 +++++++++++++++---- strawberry-graphql.patch | 51 ++++++++++++++++++++++++++++++++-------- 2 files changed, 61 insertions(+), 14 deletions(-) diff --git a/shell.nix b/shell.nix index 1f5b25c10..e754a119a 100644 --- a/shell.nix +++ b/shell.nix @@ -1,4 +1,4 @@ -{ pkgs ? import {} }: +{ pkgs ? import { } }: let sp-python = pkgs.python39.withPackages (p: with p; [ flask @@ -23,14 +23,13 @@ let black (buildPythonPackage rec { pname = "strawberry-graphql"; - version = "0.114.5"; + version = "0.123.0"; format = "pyproject"; patches = [ ./strawberry-graphql.patch ]; propagatedBuildInputs = [ typing-extensions - graphql-core python-multipart python-dateutil flask @@ -38,10 +37,27 @@ let pygments poetry flask-cors + (buildPythonPackage rec { + pname = "graphql-core"; + version = "3.2.0"; + format = "setuptools"; + src = fetchPypi { + inherit pname version; + sha256 = "sha256-huKgvgCL/eGe94OI3opyWh2UKpGQykMcJKYIN5c4A84="; + }; + checkInputs = [ + pytest-asyncio + pytest-benchmark + pytestCheckHook + ]; + pythonImportsCheck = [ + "graphql" + ]; + }) ]; src = fetchPypi { inherit pname version; - sha256 = "b6e007281cf29a66eeba66a512744853d8aa53b4ca2525befb6f350bb7b24df6"; + sha256 = "KsmZ5Xv8tUg6yBxieAEtvoKoRG60VS+iVGV0X6oCExo="; }; }) ]); diff --git a/strawberry-graphql.patch b/strawberry-graphql.patch index 3608342fd..a731522a0 100644 --- a/strawberry-graphql.patch +++ b/strawberry-graphql.patch @@ -1,8 +1,8 @@ diff --git a/pyproject.toml b/pyproject.toml -index 3283fce..89d3e8c 100644 +index 0cbf2ef..7736e92 100644 --- a/pyproject.toml +++ b/pyproject.toml -@@ -45,7 +45,6 @@ python-multipart = "^0.0.5" +@@ -51,7 +51,6 @@ python-multipart = "^0.0.5" sanic = {version = ">=20.12.2,<22.0.0", optional = true} aiohttp = {version = "^3.7.4.post0", optional = true} fastapi = {version = ">=0.65.2", optional = true} @@ -10,8 +10,38 @@ index 3283fce..89d3e8c 100644 [tool.poetry.dev-dependencies] pytest = "^7.1" +diff --git a/strawberry/directive.py b/strawberry/directive.py +index 491e390..26ba345 100644 +--- a/strawberry/directive.py ++++ b/strawberry/directive.py +@@ -1,10 +1,10 @@ + from __future__ import annotations + + import dataclasses ++from functools import cached_property + import inspect + from typing import Any, Callable, List, Optional, TypeVar + +-from backports.cached_property import cached_property + from typing_extensions import Annotated + + from graphql import DirectiveLocation +diff --git a/strawberry/extensions/tracing/datadog.py b/strawberry/extensions/tracing/datadog.py +index 01fba20..7c06950 100644 +--- a/strawberry/extensions/tracing/datadog.py ++++ b/strawberry/extensions/tracing/datadog.py +@@ -1,8 +1,8 @@ + import hashlib ++from functools import cached_property + from inspect import isawaitable + from typing import Optional + +-from backports.cached_property import cached_property + from ddtrace import tracer + + from strawberry.extensions import Extension diff --git a/strawberry/field.py b/strawberry/field.py -index 4e7ee4b..06c2044 100644 +index 80ed12a..f1bf2e9 100644 --- a/strawberry/field.py +++ b/strawberry/field.py @@ -1,5 +1,6 @@ @@ -30,24 +60,25 @@ index 4e7ee4b..06c2044 100644 from strawberry.annotation import StrawberryAnnotation diff --git a/strawberry/types/fields/resolver.py b/strawberry/types/fields/resolver.py -index 0409233..f4fbe9a 100644 +index c5b3edd..f4112ce 100644 --- a/strawberry/types/fields/resolver.py +++ b/strawberry/types/fields/resolver.py -@@ -1,13 +1,12 @@ +@@ -1,6 +1,7 @@ from __future__ import annotations as _ import builtins +from functools import cached_property import inspect import sys - from inspect import isasyncgenfunction, iscoroutinefunction - from typing import Callable, Dict, Generic, List, Mapping, Optional, TypeVar, Union + import warnings +@@ -22,7 +23,6 @@ from typing import ( # type: ignore[attr-defined] + _eval_type, + ) -from backports.cached_property import cached_property -- + from typing_extensions import Annotated, Protocol, get_args, get_origin + from strawberry.annotation import StrawberryAnnotation - from strawberry.arguments import StrawberryArgument - from strawberry.exceptions import MissingArgumentsAnnotationsError diff --git a/strawberry/types/info.py b/strawberry/types/info.py index a172c04..475a3ee 100644 --- a/strawberry/types/info.py