From 835a9710c1373bdb8f9f7943cc394e16b7bf2768 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 16 Oct 2024 03:25:18 +0200 Subject: [PATCH] python314Packages.flit-core: backport 3.14 compat patch --- .../bootstrap/flit-core/default.nix | 2 +- .../python-modules/flit-core/default.nix | 2 +- .../python-modules/flit/default.nix | 5 +++ .../flit/python314-compat.patch | 41 +++++++++++++++++++ 4 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/python-modules/flit/python314-compat.patch diff --git a/pkgs/development/python-modules/bootstrap/flit-core/default.nix b/pkgs/development/python-modules/bootstrap/flit-core/default.nix index bdd4a0f535ff..01e9e43f3acd 100644 --- a/pkgs/development/python-modules/bootstrap/flit-core/default.nix +++ b/pkgs/development/python-modules/bootstrap/flit-core/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta ; - sourceRoot = "${src.name}/flit_core"; + postPatch = "cd flit_core"; buildPhase = '' runHook preBuild diff --git a/pkgs/development/python-modules/flit-core/default.nix b/pkgs/development/python-modules/flit-core/default.nix index 05157efb8648..628234d2955f 100644 --- a/pkgs/development/python-modules/flit-core/default.nix +++ b/pkgs/development/python-modules/flit-core/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { inherit (flit) src patches; - sourceRoot = "${src.name}/flit_core"; + postPatch = "cd flit_core"; # Tests are run in the "flit" package. doCheck = false; diff --git a/pkgs/development/python-modules/flit/default.nix b/pkgs/development/python-modules/flit/default.nix index 9284de7d1184..825e4435535a 100644 --- a/pkgs/development/python-modules/flit/default.nix +++ b/pkgs/development/python-modules/flit/default.nix @@ -28,6 +28,11 @@ buildPythonPackage rec { hash = "sha256-yl2+PcKr7xRW4oIBWl+gzh/nKhSNu5GH9fWKRGgaNHU="; }; + patches = [ + # https://github.com/pypa/flit/commit/6ab62c91d0db451b5e9ab000f0dba5471550b442.patch + ./python314-compat.patch + ]; + nativeBuildInputs = [ flit-core ]; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/flit/python314-compat.patch b/pkgs/development/python-modules/flit/python314-compat.patch new file mode 100644 index 000000000000..439592e3a63b --- /dev/null +++ b/pkgs/development/python-modules/flit/python314-compat.patch @@ -0,0 +1,41 @@ +From 6ab62c91d0db451b5e9ab000f0dba5471550b442 Mon Sep 17 00:00:00 2001 +From: Thomas A Caswell +Date: Tue, 28 May 2024 10:25:13 -0400 +Subject: [PATCH] MNT: fix compatibility with Python 3.14 + +The ast.Str class was deprecated in 3.8 and will be removed in 3.14 +--- + flit_core/flit_core/common.py | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/flit_core/flit_core/common.py b/flit_core/flit_core/common.py +index 6625224b..8bcda3fb 100644 +--- a/flit_core/flit_core/common.py ++++ b/flit_core/flit_core/common.py +@@ -148,6 +148,10 @@ def get_docstring_and_version_via_ast(target): + with target_path.open('rb') as f: + node = ast.parse(f.read()) + for child in node.body: ++ if sys.version_info >= (3, 8): ++ target_type = ast.Constant ++ else: ++ target_type = ast.Str + # Only use the version from the given module if it's a simple + # string assignment to __version__ + is_version_str = ( +@@ -157,10 +161,13 @@ def get_docstring_and_version_via_ast(target): + and target.id == "__version__" + for target in child.targets + ) +- and isinstance(child.value, ast.Str) ++ and isinstance(child.value, target_type) + ) + if is_version_str: +- version = child.value.s ++ if sys.version_info >= (3, 8): ++ version = child.value.value ++ else: ++ version = child.value.s + break + return ast.get_docstring(node), version +