Skip to content

Commit

Permalink
python312Packages.argcomplete: add patch to fix downstream issues
Browse files Browse the repository at this point in the history
  • Loading branch information
paparodeo authored and vcunat committed Jan 1, 2025
1 parent 470efe3 commit c16ee71
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
7 changes: 7 additions & 0 deletions pkgs/development/python-modules/argcomplete/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
From 7438d1fa962eb736af9754669f200f29c5b6025d Mon Sep 17 00:00:00 2001
From: liushuyu <liushuyu011@gmail.com>
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

0 comments on commit c16ee71

Please sign in to comment.