From acb21107e5eb2d80d84414b74f790eb661bea15a Mon Sep 17 00:00:00 2001 From: Reno Dakota Date: Thu, 5 Dec 2024 16:21:18 +0000 Subject: [PATCH] python312Packages.argcomplete: add patch to fix downstream issues https://git.launchpad.net/ubuntu/+source/python-argcomplete/tree/debian/patches/python-3.13-compat.patch?h=ubuntu/plucky https://bugs.launchpad.net/ubuntu/+source/python-argcomplete/+bug/2088928 fixes checkPhase of python3Packages.traitlets --- .../python-modules/argcomplete/default.nix | 7 +++ .../argcomplete/python-3.13-compat.patch | 49 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 pkgs/development/python-modules/argcomplete/python-3.13-compat.patch diff --git a/pkgs/development/python-modules/argcomplete/default.nix b/pkgs/development/python-modules/argcomplete/default.nix index d8a96b231c03..bac7379338c9 100644 --- a/pkgs/development/python-modules/argcomplete/default.nix +++ b/pkgs/development/python-modules/argcomplete/default.nix @@ -21,6 +21,13 @@ buildPythonPackage rec { hash = "sha256-um8iFzEHExTRV1BAl86/XKLc7vmf2Ws1dB83agfvoec="; }; + patches = [ + # fixes issues with python3Packages.traitlets tests + # https://git.launchpad.net/ubuntu/+source/python-argcomplete/tree/debian/patches/python-3.13-compat.patch?h=ubuntu/plucky + # https://github.com/kislyuk/argcomplete/pull/513 + ./python-3.13-compat.patch + ]; + build-system = [ setuptools setuptools-scm diff --git a/pkgs/development/python-modules/argcomplete/python-3.13-compat.patch b/pkgs/development/python-modules/argcomplete/python-3.13-compat.patch new file mode 100644 index 000000000000..8a1aa8354135 --- /dev/null +++ b/pkgs/development/python-modules/argcomplete/python-3.13-compat.patch @@ -0,0 +1,49 @@ +From 7438d1fa962eb736af9754669f200f29c5b6025d Mon Sep 17 00:00:00 2001 +From: liushuyu +Date: Mon, 18 Nov 2024 16:12:54 -0700 +Subject: [PATCH] Preliminary Python 3.13 compatibility + +--- + argcomplete/packages/_argparse.py | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/argcomplete/packages/_argparse.py b/argcomplete/packages/_argparse.py +index d10cf01..10ed00c 100644 +--- a/argcomplete/packages/_argparse.py ++++ b/argcomplete/packages/_argparse.py +@@ -5,6 +5,7 @@ + + # This file contains argparse introspection utilities used in the course of argcomplete execution. + ++import sys + from argparse import ( + ONE_OR_MORE, + OPTIONAL, +@@ -15,6 +16,7 @@ + Action, + ArgumentError, + ArgumentParser, ++ Namespace, + _get_action_name, + _SubParsersAction, + ) +@@ -75,6 +77,19 @@ class IntrospectiveArgumentParser(ArgumentParser): + except for the lines that contain the string "Added by argcomplete". + ''' + ++ def _parse_known_args2(self, args, namespace, intermixed): ++ if args is None: ++ # args default to the system args ++ args = sys.argv[1:] ++ else: ++ # make sure that args are mutable ++ args = list(args) ++ ++ # default Namespace built from parser defaults ++ if namespace is None: ++ namespace = Namespace() ++ return self._parse_known_args(args, namespace) ++ + def _parse_known_args(self, arg_strings, namespace): + _num_consumed_args.clear() # Added by argcomplete + self._argcomplete_namespace = namespace