Skip to content

Commit

Permalink
fix(args, argparse_extras): repair positional1 --arg positional2 us…
Browse files Browse the repository at this point in the history
…ecase with python 3.13
  • Loading branch information
actionless committed Jan 30, 2025
1 parent 3a0467f commit 0cd3e4e
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
4 changes: 2 additions & 2 deletions pikaur/argparse_extras.py
Original file line number Diff line number Diff line change
Expand Up @@ -342,8 +342,8 @@ def consume_positionals(start_index: int) -> int:
extras.extend(arg_strings[start_index:])
extras_pattern.extend(arg_strings_pattern[start_index:])
joined_extras_pattern = "".join(extras_pattern)
if len(joined_extras_pattern) != len(extras):
raise RuntimeError
# if len(joined_extras_pattern) != len(extras):
# raise RuntimeError(joined_extras_pattern, extras)
# consume all positionals
arg_strings = [
s for s, c in zip(extras, joined_extras_pattern, strict=False) if c != "O"
Expand Down
9 changes: 5 additions & 4 deletions pikaur/args.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Licensed under GPLv3, see https://www.gnu.org/licenses/"""

import argparse
import sys
from argparse import Namespace
from pprint import pformat
from typing import TYPE_CHECKING, NamedTuple, cast

Expand Down Expand Up @@ -511,7 +511,7 @@ class MissingArgumentError(Exception):
pass


class PikaurArgs(Namespace):
class PikaurArgs(argparse.Namespace):
unknown_args: list[str]
raw: list[str]

Expand Down Expand Up @@ -600,7 +600,7 @@ def validate(self) -> None:
@classmethod
def from_namespace(
cls,
namespace: Namespace,
namespace: argparse.Namespace,
unknown_args: list[str],
raw_args: list[str],
) -> "PikaurArgs":
Expand Down Expand Up @@ -638,7 +638,8 @@ def parse_pikaur_args(self, raw_args: list[str]) -> PikaurArgs:
separator_index = args_to_parse.index("--")
extra_positionals = args_to_parse[separator_index + 1:]
args_to_parse = args_to_parse[:separator_index]
parsed_args, unknown_args = self.parse_known_args(args_to_parse)
# parsed_args, unknown_args = self.parse_known_args(args_to_parse)
parsed_args, unknown_args = self.parse_known_intermixed_args(args_to_parse)
parsed_args.positional += extra_positionals
return PikaurArgs.from_namespace(
namespace=parsed_args,
Expand Down

0 comments on commit 0cd3e4e

Please sign in to comment.