From bf6c95a420c1bdd6f90177f9457ee0878393a38a Mon Sep 17 00:00:00 2001 From: PerchunPak Date: Wed, 27 Mar 2024 01:58:48 +0100 Subject: [PATCH 1/2] eval-type-backport: init at 0.1.3 --- .../eval-type-backport/default.nix | 35 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 37 insertions(+) create mode 100644 pkgs/development/python-modules/eval-type-backport/default.nix diff --git a/pkgs/development/python-modules/eval-type-backport/default.nix b/pkgs/development/python-modules/eval-type-backport/default.nix new file mode 100644 index 000000000000..1231d106fa58 --- /dev/null +++ b/pkgs/development/python-modules/eval-type-backport/default.nix @@ -0,0 +1,35 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, setuptools-scm +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "eval-type-backport"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "alexmojaki"; + repo = "eval_type_backport"; + rev = "refs/tags/v${version}"; + hash = "sha256-EiYJQUnK10lqjyJ89KacbZ+ZZuOmkRQ9bqTFQFN2iMA="; + }; + + nativeBuildInputs = [ + setuptools + setuptools-scm + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + meta = { + description = "Like `typing._eval_type`, but lets older Python versions use newer typing features."; + homepage = "https://github.com/alexmojaki/eval_type_backport"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ perchun ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 496add388462..206e235b533c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3869,6 +3869,8 @@ self: super: with self; { eufylife-ble-client = callPackage ../development/python-modules/eufylife-ble-client { }; + eval-type-backport = callPackage ../development/python-modules/eval-type-backport { }; + evaluate = callPackage ../development/python-modules/evaluate { }; evdev = callPackage ../development/python-modules/evdev { }; From 9ba392312c37c3e31524ff5cb9eb41b2b22cc5c5 Mon Sep 17 00:00:00 2001 From: PerchunPak Date: Wed, 27 Mar 2024 02:00:21 +0100 Subject: [PATCH 2/2] pydantic: fix build failure on Python 3.9 Pydantic tests require additional dependency on old versions of Python to parse new `x | y` syntax. See build logs: https://gist.github.com/PerchunPak/74aaed48223155f22e43dcef493d7c7b --- .../python-modules/pydantic/default.nix | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix index bb0a4bedde49..59ec82ce829b 100644 --- a/pkgs/development/python-modules/pydantic/default.nix +++ b/pkgs/development/python-modules/pydantic/default.nix @@ -23,6 +23,7 @@ , faker , pytestCheckHook , pytest-mock +, eval-type-backport }: buildPythonPackage rec { @@ -45,7 +46,7 @@ buildPythonPackage rec { name = "fix-pytest8-compatibility.patch"; url = "https://github.com/pydantic/pydantic/commit/825a6920e177a3b65836c13c7f37d82b810ce482.patch"; hash = "sha256-Dap5DtDzHw0jS/QUo5CRI9sLDJ719GRyC4ZNDWEdzus="; - }) + }) ]; buildInputs = lib.optionals (pythonOlder "3.9") [ @@ -69,13 +70,16 @@ buildPythonPackage rec { ]; }; - nativeCheckInputs = [ - cloudpickle - dirty-equals - faker - pytest-mock - pytestCheckHook - ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies); + nativeCheckInputs = + [ + cloudpickle + dirty-equals + faker + pytest-mock + pytestCheckHook + ] + ++ lib.flatten (lib.attrValues passthru.optional-dependencies) + ++ lib.optionals (pythonOlder "3.10") [ eval-type-backport ]; preCheck = '' export HOME=$(mktemp -d)