Your message dated Tue, 10 Dec 2024 22:28:56 +0000
with message-id <z1jaqc6ohpt6s...@riva.ucam.org>
and subject line Re: Bug#1088727: traitlets: FTBFS: 
TestArgcomplete.test_complete_simple_app fails
has caused the Debian Bug report #1088727,
regarding traitlets: FTBFS: TestArgcomplete.test_complete_simple_app fails
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1088727: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088727
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: src:traitlets
Version: 5.14.3+really5.14.3-1
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules binary
dh binary --with sphinxdoc --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" 
module
I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation --wheel 
--outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_traitlets
* Building wheel...
Successfully built traitlets-5.14.3-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with 
"installer" module
I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" 
module
I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation --wheel 
--outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_traitlets
* Building wheel...

[... snipped ...]

        argv       = []
        self       = <tests.config.test_argcomplete.MainApp object at 
0x7f42129d1430>
        subapp     = <class 'tests.config.test_argcomplete.SubApp1'>
        subc       = 'subapp1'
        val        = (<class 'tests.config.test_argcomplete.SubApp1'>, 'First 
subapp')
traitlets/config/application.py:118: in inner
    return method(app, *args, **kwargs)
        app        = <tests.config.test_argcomplete.SubApp1 object at 
0x7f42129cb440>
        args       = ([],)
        kwargs     = {}
        method     = <function Application.initialize at 0x7f4212a51e40>
traitlets/config/application.py:465: in initialize
    self.parse_command_line(argv)
        argv       = []
        self       = <tests.config.test_argcomplete.SubApp1 object at 
0x7f42129cb440>
traitlets/config/application.py:118: in inner
    return method(app, *args, **kwargs)
        app        = <tests.config.test_argcomplete.SubApp1 object at 
0x7f42129cb440>
        args       = ([],)
        kwargs     = {}
        method     = <function Application.parse_command_line at 0x7f4212a52f20>
traitlets/config/application.py:881: in parse_command_line
    self.cli_config = 
deepcopy(loader.load_config())
        aliases    = {'log-level': 'SubApp1.log_level'}
        argv       = []
        classes    = [<class 'traitlets.config.application.Application'>, <class 
'tests.config.test_argcomplete.ArgcompleteApp'>, <class 
'tests.config.test_argcomplete.SubApp1'>]
        flags      = {'debug': ({'SubApp1': {'log_level': 10}}, 'Set log-level to debug, 
for the most verbose logging.'), 'show-config': ({...), 'show-config-json': ({'SubApp1': 
{'show_config_json': True}}, "Show the application's configuration (json 
format)")}
        interpreted_argv = []
        loader     = <traitlets.config.loader.KVArgParseConfigLoader object at 
0x7f4212a7d2b0>
        self       = <tests.config.test_argcomplete.SubApp1 object at 
0x7f42129cb440>
traitlets/config/loader.py:894: in load_config
    self._argcomplete(self.classes, 
self.subcommands)
        aliases    = None
        argv       = []
        classes    = None
        flags      = <Sentinel deprecated>
        self       = <traitlets.config.loader.KVArgParseConfigLoader object at 
0x7f4212a7d2b0>
traitlets/config/loader.py:1139: in _argcomplete
    finder(self.parser, 
**getattr(self, 
"_argcomplete_kwargs", 
{}))
        argcomplete = <module 'argcomplete' from 
'/usr/lib/python3/dist-packages/argcomplete/__init__.py'>
        argcomplete_config = <module 'traitlets.config.argcomplete_config' from 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_traitlets/build/traitlets/config/argcomplete_config.py'>
        classes    = [<class 'traitlets.config.application.Application'>, <class 
'tests.config.test_argcomplete.ArgcompleteApp'>, <class 
'tests.config.test_argcomplete.SubApp1'>]
        finder     = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129c9490>
        self       = <traitlets.config.loader.KVArgParseConfigLoader object at 
0x7f4212a7d2b0>
        subcommands = {}
/usr/lib/python3/dist-packages/argcomplete/finders.py:174: in 
__call__
    completions = self._get_completions(comp_words, 
cword_prefix, cword_prequote, last_wordbreak_pos)
        always_complete_options = True
        append_space = None
        argument_parser = 
MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        comp_line  = 'app subapp1 --Sub'
        comp_point = 17
        comp_words = ['subapp1']
        cword_prefix = '--Sub'
        cword_prequote = ''
        cword_suffix = ''
        default_completer = <argcomplete.completers.FilesCompleter object at 
0x7f4212a7f1d0>
        dfs        = None
        exclude    = None
        exit_method = <bound method CustomError.exit of <class 
'tests.config.test_argcomplete.CustomError'>>
        ifs        = '\x0b'
        last_wordbreak_pos = None
        output_stream = <_io.StringIO object at 0x7f4212cf84c0>
        print_suppressed = False
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129c9490>
        start      = 1
        validator  = None
traitlets/config/argcomplete_config.py:191: in _get_completions
    completions = super()._get_completions(comp_words, 
cword_prefix, *args)  # 
type:ignore[no-untyped-call]
        __class__  = <class 
'traitlets.config.argcomplete_config.ExtendedCompletionFinder'>
        args       = ('', None)
        comp_words = ['subapp1']
        cword_prefix = '--Sub'
        is_option  = True
        matched_cls = <class 'tests.config.test_argcomplete.SubApp1'>
        matched_completions = [(<class 
'tests.config.test_argcomplete.SubApp1'>, '--SubApp1.')]
        prefix_chars = '-'
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129c9490>
/usr/lib/python3/dist-packages/argcomplete/finders.py:223: in 
_get_completions
    completions = self.collect_completions(active_parsers, 
parsed_args, cword_prefix)
        active_parsers = 
[MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)]
        comp_words = ['subapp1']
        cword_prefix = '--Sub'
        cword_prequote = ''
        last_wordbreak_pos = None
        parsed_args = Namespace(_flags=[])
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129c9490>
/usr/lib/python3/dist-packages/argcomplete/finders.py:440: in 
collect_completions
    completions += 
self._get_option_completions(active_parser, 
cword_prefix)
        active_parser = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', 
usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        active_parsers = 
[MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)]
        completions = []
        cword_prefix = '--Sub'
        parsed_args = Namespace(_flags=[])
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129c9490>
traitlets/config/argcomplete_config.py:209: in 
_get_option_completions
    completions = super()._get_option_completions(parser, 
cword_prefix)  # type:ignore[no-untyped-call]
        __class__  = <class 
'traitlets.config.argcomplete_config.ExtendedCompletionFinder'>
        cword_prefix = '--Sub'
        parser     = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', 
usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129c9490>
/usr/lib/python3/dist-packages/argcomplete/finders.py:326: in 
_get_option_completions
    if not 
self._action_allowed(action, parser):
        action     = IntrospectAction(option_strings=['-h', '--help'], 
dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, 
choices=None, required=False, help='show this help message and exit', 
metavar=None)
        completer  = None
        cword_prefix = '--Sub'
        option_completions = []
        option_string = '--SubApp1.show_config_json'
        parser     = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', 
usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129c9490>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

action = IntrospectAction(option_strings=['-h', '--help'], dest='help', 
nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, 
required=False, help='show this help message and exit', metavar=None)
parser = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)

    @staticmethod
    def _action_allowed(action, 
parser):
        # Logic adapted from take_action in 
ArgumentParser._parse_known_args
        # (members are saved by 
vendor._argparse.IntrospectiveArgumentParser)
      for conflict_action in 
parser._action_conflicts.get(action, []):
E       AttributeError: 'MonkeyPatchedIntrospectiveArgumentParser' 
object has no attribute '_action_conflicts'

action     = IntrospectAction(option_strings=['-h', '--help'], dest='help', 
nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, 
required=False, help='show this help message and exit', metavar=None)
parser     = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)

/usr/lib/python3/dist-packages/argcomplete/finders.py:336: 
AttributeError
______________ TestArgcomplete.test_complete_subcommands_subapp2 
_______________

self = <tests.config.test_argcomplete.TestArgcomplete object at 0x7f4212a81dc0>
argcomplete_on = None

    def 
test_complete_subcommands_subapp2(self, 
argcomplete_on):
        app = MainApp()
        try:
          assert set(self.run_completer(app, 
"app subapp2 --")) > 
{
                
"--Application.",
                
"--SubApp2.",
            }

app        = <tests.config.test_argcomplete.MainApp object at 0x7f4212aca6f0>
argcomplete_on = None
self       = <tests.config.test_argcomplete.TestArgcomplete object at 
0x7f4212a81dc0>

tests/config/test_argcomplete.py:209:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/config/test_argcomplete.py:127: in run_completer
    app.initialize()
        app        = <tests.config.test_argcomplete.MainApp object at 
0x7f4212aca6f0>
        cm         = <ExceptionInfo for raises contextmanager>
        command    = 'app subapp2 --'
        kwargs     = {}
        point      = '14'
        self       = <tests.config.test_argcomplete.TestArgcomplete object at 
0x7f4212a81dc0>
        strio      = <_io.StringIO object at 0x7f4212cf9c00>
traitlets/config/application.py:118: in inner
    return method(app, *args, **kwargs)
        app        = <tests.config.test_argcomplete.MainApp object at 
0x7f4212aca6f0>
        args       = ()
        kwargs     = {}
        method     = <function Application.initialize at 0x7f4212a51e40>
traitlets/config/application.py:465: in initialize
    self.parse_command_line(argv)
        argv       = None
        self       = <tests.config.test_argcomplete.MainApp object at 
0x7f4212aca6f0>
traitlets/config/application.py:118: in inner
    return method(app, *args, **kwargs)
        app        = <tests.config.test_argcomplete.MainApp object at 
0x7f4212aca6f0>
        args       = (None,)
        kwargs     = {}
        method     = <function Application.parse_command_line at 0x7f4212a52f20>
traitlets/config/application.py:857: in parse_command_line
    return self.initialize_subcommand(subc, 
subargv)
        argv       = ['subapp2']
        self       = <tests.config.test_argcomplete.MainApp object at 
0x7f4212aca6f0>
        subargv    = []
        subc       = 'subapp2'
traitlets/config/application.py:118: in inner
    return method(app, *args, **kwargs)
        app        = <tests.config.test_argcomplete.MainApp object at 
0x7f4212aca6f0>
        args       = ('subapp2', [])
        kwargs     = {}
        method     = <function Application.initialize_subcommand at 
0x7f4212a52b60>
traitlets/config/application.py:721: in initialize_subcommand
    self.subapp.initialize(argv)
        _          = 'Second subapp'
        argv       = []
        self       = <tests.config.test_argcomplete.MainApp object at 
0x7f4212aca6f0>
        subapp     = <bound method SubApp2.get_subapp_instance of <class 
'tests.config.test_argcomplete.SubApp2'>>
        subc       = 'subapp2'
        val        = (<bound method SubApp2.get_subapp_instance of <class 
'tests.config.test_argcomplete.SubApp2'>>, 'Second subapp')
traitlets/config/application.py:118: in inner
    return method(app, *args, **kwargs)
        app        = <tests.config.test_argcomplete.SubApp2 object at 
0x7f421279d010>
        args       = ([],)
        kwargs     = {}
        method     = <function Application.initialize at 0x7f4212a51e40>
traitlets/config/application.py:465: in initialize
    self.parse_command_line(argv)
        argv       = []
        self       = <tests.config.test_argcomplete.SubApp2 object at 
0x7f421279d010>
traitlets/config/application.py:118: in inner
    return method(app, *args, **kwargs)
        app        = <tests.config.test_argcomplete.SubApp2 object at 
0x7f421279d010>
        args       = ([],)
        kwargs     = {}
        method     = <function Application.parse_command_line at 0x7f4212a52f20>
traitlets/config/application.py:881: in parse_command_line
    self.cli_config = 
deepcopy(loader.load_config())
        aliases    = {'log-level': 'SubApp2.log_level'}
        argv       = []
        classes    = [<class 'traitlets.config.application.Application'>, <class 
'tests.config.test_argcomplete.ArgcompleteApp'>, <class 
'tests.config.test_argcomplete.SubApp2'>]
        flags      = {'debug': ({'SubApp2': {'log_level': 10}}, 'Set log-level to debug, 
for the most verbose logging.'), 'show-config': ({...), 'show-config-json': ({'SubApp2': 
{'show_config_json': True}}, "Show the application's configuration (json 
format)")}
        interpreted_argv = []
        loader     = <traitlets.config.loader.KVArgParseConfigLoader object at 
0x7f421279e660>
        self       = <tests.config.test_argcomplete.SubApp2 object at 
0x7f421279d010>
traitlets/config/loader.py:894: in load_config
    self._argcomplete(self.classes, 
self.subcommands)
        aliases    = None
        argv       = []
        classes    = None
        flags      = <Sentinel deprecated>
        self       = <traitlets.config.loader.KVArgParseConfigLoader object at 
0x7f421279e660>
traitlets/config/loader.py:1139: in _argcomplete
    finder(self.parser, 
**getattr(self, 
"_argcomplete_kwargs", 
{}))
        argcomplete = <module 'argcomplete' from 
'/usr/lib/python3/dist-packages/argcomplete/__init__.py'>
        argcomplete_config = <module 'traitlets.config.argcomplete_config' from 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_traitlets/build/traitlets/config/argcomplete_config.py'>
        classes    = [<class 'traitlets.config.application.Application'>, <class 
'tests.config.test_argcomplete.ArgcompleteApp'>, <class 
'tests.config.test_argcomplete.SubApp2'>]
        finder     = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f421279f320>
        self       = <traitlets.config.loader.KVArgParseConfigLoader object at 
0x7f421279e660>
        subcommands = {}
/usr/lib/python3/dist-packages/argcomplete/finders.py:174: in 
__call__
    completions = self._get_completions(comp_words, 
cword_prefix, cword_prequote, last_wordbreak_pos)
        always_complete_options = True
        append_space = None
        argument_parser = 
MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        comp_line  = 'app subapp2 --'
        comp_point = 14
        comp_words = ['subapp2']
        cword_prefix = '--'
        cword_prequote = ''
        cword_suffix = ''
        default_completer = <argcomplete.completers.FilesCompleter object at 
0x7f4212a7f1d0>
        dfs        = None
        exclude    = None
        exit_method = <bound method CustomError.exit of <class 
'tests.config.test_argcomplete.CustomError'>>
        ifs        = '\x0b'
        last_wordbreak_pos = None
        output_stream = <_io.StringIO object at 0x7f4212cf9c00>
        print_suppressed = False
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f421279f320>
        start      = 1
        validator  = None
traitlets/config/argcomplete_config.py:191: in _get_completions
    completions = super()._get_completions(comp_words, 
cword_prefix, *args)  # 
type:ignore[no-untyped-call]
        __class__  = <class 
'traitlets.config.argcomplete_config.ExtendedCompletionFinder'>
        args       = ('', None)
        comp_words = ['subapp2']
        cword_prefix = '--'
        is_option  = True
        matched_completions = [(<class 'traitlets.config.application.Application'>, 
'--Application.'), (<class 'tests.config.test_argcomplete.ArgcompleteApp'>, 
'--ArgcompleteApp.'), (<class 'tests.config.test_argcomplete.SubApp2'>, '--SubApp2.')]
        prefix_chars = '-'
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f421279f320>
/usr/lib/python3/dist-packages/argcomplete/finders.py:223: in 
_get_completions
    completions = self.collect_completions(active_parsers, 
parsed_args, cword_prefix)
        active_parsers = 
[MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)]
        comp_words = ['subapp2']
        cword_prefix = '--'
        cword_prequote = ''
        last_wordbreak_pos = None
        parsed_args = Namespace(_flags=[])
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f421279f320>
/usr/lib/python3/dist-packages/argcomplete/finders.py:440: in 
collect_completions
    completions += 
self._get_option_completions(active_parser, 
cword_prefix)
        active_parser = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', 
usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        active_parsers = 
[MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)]
        completions = []
        cword_prefix = '--'
        parsed_args = Namespace(_flags=[])
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f421279f320>
traitlets/config/argcomplete_config.py:209: in 
_get_option_completions
    completions = super()._get_option_completions(parser, 
cword_prefix)  # type:ignore[no-untyped-call]
        __class__  = <class 
'traitlets.config.argcomplete_config.ExtendedCompletionFinder'>
        cword_prefix = '--'
        parser     = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', 
usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f421279f320>
/usr/lib/python3/dist-packages/argcomplete/finders.py:326: in 
_get_option_completions
    if not 
self._action_allowed(action, parser):
        action     = IntrospectAction(option_strings=['-h', '--help'], 
dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, 
choices=None, required=False, help='show this help message and exit', 
metavar=None)
        completer  = None
        cword_prefix = '--'
        option_completions = []
        option_string = '--log-level'
        parser     = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', 
usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f421279f320>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

action = IntrospectAction(option_strings=['-h', '--help'], dest='help', 
nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, 
required=False, help='show this help message and exit', metavar=None)
parser = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)

    @staticmethod
    def _action_allowed(action, 
parser):
        # Logic adapted from take_action in 
ArgumentParser._parse_known_args
        # (members are saved by 
vendor._argparse.IntrospectiveArgumentParser)
      for conflict_action in 
parser._action_conflicts.get(action, []):
E       AttributeError: 'MonkeyPatchedIntrospectiveArgumentParser' 
object has no attribute '_action_conflicts'

action     = IntrospectAction(option_strings=['-h', '--help'], dest='help', 
nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, 
required=False, help='show this help message and exit', metavar=None)
parser     = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)

/usr/lib/python3/dist-packages/argcomplete/finders.py:336: 
AttributeError
________________ TestArgcomplete.test_complete_subcommands_main 
________________

self = <tests.config.test_argcomplete.TestArgcomplete object at 0x7f4212a82060>
argcomplete_on = None

    def 
test_complete_subcommands_main(self, 
argcomplete_on):
        app = MainApp()
      completions = set(self.run_completer(app, 
"app --"))

app        = <tests.config.test_argcomplete.MainApp object at 0x7f42129c95e0>
argcomplete_on = None
self       = <tests.config.test_argcomplete.TestArgcomplete object at 
0x7f4212a82060>

tests/config/test_argcomplete.py:218:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/config/test_argcomplete.py:127: in run_completer
    app.initialize()
        app        = <tests.config.test_argcomplete.MainApp object at 
0x7f42129c95e0>
        cm         = <ExceptionInfo for raises contextmanager>
        command    = 'app --'
        kwargs     = {}
        point      = '6'
        self       = <tests.config.test_argcomplete.TestArgcomplete object at 
0x7f4212a82060>
        strio      = <_io.StringIO object at 0x7f4212cfa2c0>
traitlets/config/application.py:118: in inner
    return method(app, *args, **kwargs)
        app        = <tests.config.test_argcomplete.MainApp object at 
0x7f42129c95e0>
        args       = ()
        kwargs     = {}
        method     = <function Application.initialize at 0x7f4212a51e40>
traitlets/config/application.py:465: in initialize
    self.parse_command_line(argv)
        argv       = None
        self       = <tests.config.test_argcomplete.MainApp object at 
0x7f42129c95e0>
traitlets/config/application.py:118: in inner
    return method(app, *args, **kwargs)
        app        = <tests.config.test_argcomplete.MainApp object at 
0x7f42129c95e0>
        args       = (None,)
        kwargs     = {}
        method     = <function Application.parse_command_line at 0x7f4212a52f20>
traitlets/config/application.py:881: in parse_command_line
    self.cli_config = 
deepcopy(loader.load_config())
        aliases    = {'log-level': 'MainApp.log_level'}
        argv       = []
        classes    = [<class 'traitlets.config.application.Application'>, <class 
'tests.config.test_argcomplete.ArgcompleteApp'>, <class 
'tests.config.test_argcomplete.MainApp'>]
        flags      = {'debug': ({'MainApp': {'log_level': 10}}, 'Set log-level to debug, 
for the most verbose logging.'), 'show-config': ({...), 'show-config-json': ({'MainApp': 
{'show_config_json': True}}, "Show the application's configuration (json 
format)")}
        interpreted_argv = []
        loader     = <traitlets.config.loader.KVArgParseConfigLoader object at 
0x7f42129d1d60>
        self       = <tests.config.test_argcomplete.MainApp object at 
0x7f42129c95e0>
traitlets/config/loader.py:894: in load_config
    self._argcomplete(self.classes, 
self.subcommands)
        aliases    = None
        argv       = []
        classes    = None
        flags      = <Sentinel deprecated>
        self       = <traitlets.config.loader.KVArgParseConfigLoader object at 
0x7f42129d1d60>
traitlets/config/loader.py:1139: in _argcomplete
    finder(self.parser, 
**getattr(self, 
"_argcomplete_kwargs", 
{}))
        argcomplete = <module 'argcomplete' from 
'/usr/lib/python3/dist-packages/argcomplete/__init__.py'>
        argcomplete_config = <module 'traitlets.config.argcomplete_config' from 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_traitlets/build/traitlets/config/argcomplete_config.py'>
        classes    = [<class 'traitlets.config.application.Application'>, <class 
'tests.config.test_argcomplete.ArgcompleteApp'>, <class 
'tests.config.test_argcomplete.MainApp'>]
        finder     = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129f6a50>
        self       = <traitlets.config.loader.KVArgParseConfigLoader object at 
0x7f42129d1d60>
        subcommands = {'subapp1': (<class 'tests.config.test_argcomplete.SubApp1'>, 'First 
subapp'), 'subapp2': (<bound method SubApp2.get_subapp_instance of <class 
'tests.config.test_argcomplete.SubApp2'>>, 'Second subapp')}
/usr/lib/python3/dist-packages/argcomplete/finders.py:174: in 
__call__
    completions = self._get_completions(comp_words, 
cword_prefix, cword_prequote, last_wordbreak_pos)
        always_complete_options = True
        append_space = None
        argument_parser = 
MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        comp_line  = 'app --'
        comp_point = 6
        comp_words = ['app']
        cword_prefix = '--'
        cword_prequote = ''
        cword_suffix = ''
        default_completer = <argcomplete.completers.FilesCompleter object at 
0x7f4212a7f1d0>
        dfs        = None
        exclude    = None
        exit_method = <bound method CustomError.exit of <class 
'tests.config.test_argcomplete.CustomError'>>
        ifs        = '\x0b'
        last_wordbreak_pos = None
        output_stream = <_io.StringIO object at 0x7f4212cfa2c0>
        print_suppressed = False
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129f6a50>
        start      = 0
        validator  = None
traitlets/config/argcomplete_config.py:191: in _get_completions
    completions = super()._get_completions(comp_words, 
cword_prefix, *args)  # 
type:ignore[no-untyped-call]
        __class__  = <class 
'traitlets.config.argcomplete_config.ExtendedCompletionFinder'>
        args       = ('', None)
        comp_words = ['app']
        cword_prefix = '--'
        is_option  = True
        matched_completions = [(<class 'traitlets.config.application.Application'>, 
'--Application.'), (<class 'tests.config.test_argcomplete.ArgcompleteApp'>, 
'--ArgcompleteApp.'), (<class 'tests.config.test_argcomplete.MainApp'>, '--MainApp.')]
        prefix_chars = '-'
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129f6a50>
/usr/lib/python3/dist-packages/argcomplete/finders.py:223: in 
_get_completions
    completions = self.collect_completions(active_parsers, 
parsed_args, cword_prefix)
        active_parsers = 
[MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)]
        comp_words = ['app']
        cword_prefix = '--'
        cword_prequote = ''
        last_wordbreak_pos = None
        parsed_args = Namespace(_flags=[])
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129f6a50>
/usr/lib/python3/dist-packages/argcomplete/finders.py:440: in 
collect_completions
    completions += 
self._get_option_completions(active_parser, 
cword_prefix)
        active_parser = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', 
usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        active_parsers = 
[MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)]
        completions = []
        cword_prefix = '--'
        parsed_args = Namespace(_flags=[])
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129f6a50>
traitlets/config/argcomplete_config.py:209: in 
_get_option_completions
    completions = super()._get_option_completions(parser, 
cword_prefix)  # type:ignore[no-untyped-call]
        __class__  = <class 
'traitlets.config.argcomplete_config.ExtendedCompletionFinder'>
        cword_prefix = '--'
        parser     = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', 
usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129f6a50>
/usr/lib/python3/dist-packages/argcomplete/finders.py:326: in 
_get_option_completions
    if not 
self._action_allowed(action, parser):
        action     = IntrospectAction(option_strings=['-h', '--help'], 
dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, 
choices=None, required=False, help='show this help message and exit', 
metavar=None)
        completer  = None
        cword_prefix = '--'
        option_completions = []
        option_string = '--log-level'
        parser     = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', 
usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)
        self       = <traitlets.config.argcomplete_config.ExtendedCompletionFinder 
object at 0x7f42129f6a50>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

action = IntrospectAction(option_strings=['-h', '--help'], dest='help', 
nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, 
required=False, help='show this help message and exit', metavar=None)
parser = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)

    @staticmethod
    def _action_allowed(action, 
parser):
        # Logic adapted from take_action in 
ArgumentParser._parse_known_args
        # (members are saved by 
vendor._argparse.IntrospectiveArgumentParser)
      for conflict_action in 
parser._action_conflicts.get(action, []):
E       AttributeError: 'MonkeyPatchedIntrospectiveArgumentParser' 
object has no attribute '_action_conflicts'

action     = IntrospectAction(option_strings=['-h', '--help'], dest='help', 
nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, 
required=False, help='show this help message and exit', metavar=None)
parser     = MonkeyPatchedIntrospectiveArgumentParser(prog='__main__.py', usage=None, 
description=None, formatter_class=<class 'argparse.HelpFormatter'>, 
conflict_handler='error', add_help=True)

/usr/lib/python3/dist-packages/argcomplete/finders.py:336: 
AttributeError
=============================== warnings summary 
===============================
tests/_warnings.py::tests._warnings.all_warnings
  <doctest tests._warnings.all_warnings[1]>:2: RuntimeWarning: bar

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================= slowest 10 durations =============================
4.30s call     tests/test_typing.py::[mypy]mypy_decorator_typing
0.13s call     tests/config/test_application.py::test_show_config_cli
0.13s call     tests/config/test_application.py::test_help_output
0.13s call     tests/config/test_application.py::test_show_config_json_cli
0.13s call     tests/config/test_application.py::test_help_all_output
0.01s call     
tests/config/test_configurable.py::TestConfigurable::test_override2

(4 durations < 0.005s hidden.  Use -vv to show these durations.)
=========================== short test summary info 
============================
SKIPPED [1] 
../../../../../../usr/lib/python3/dist-packages/_pytest/doctest.py:458: all 
tests skipped by +SKIP option
FAILED 
tests/config/test_argcomplete.py::TestArgcomplete::test_complete_simple_app
 - AttributeError: 'MonkeyPatchedIntrospectiveArgumentParser' object has no 
at...
FAILED 
tests/config/test_argcomplete.py::TestArgcomplete::test_complete_custom_completers
 - AttributeError: 'MonkeyPatchedIntrospectiveArgumentParser' object has no 
at...
FAILED 
tests/config/test_argcomplete.py::TestArgcomplete::test_complete_subcommands
 - AttributeError: 'MonkeyPatchedIntrospectiveArgumentParser' object has no 
at...
FAILED 
tests/config/test_argcomplete.py::TestArgcomplete::test_complete_subcommands_subapp1
 - AttributeError: 'MonkeyPatchedIntrospectiveArgumentParser' object has no 
at...
FAILED 
tests/config/test_argcomplete.py::TestArgcomplete::test_complete_subcommands_subapp2
 - AttributeError: 'MonkeyPatchedIntrospectiveArgumentParser' object has no 
at...
FAILED 
tests/config/test_argcomplete.py::TestArgcomplete::test_complete_subcommands_main
 - AttributeError: 'MonkeyPatchedIntrospectiveArgumentParser' object has no 
at...
============= 6 failed, 581 passed, 1 
skipped, 1 warning in 5.94s ==============
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_traitlets/build; python3.12 -m pytest 
tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 
3.12" returned exit code 13
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202411/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks.

--- End Message ---
--- Begin Message ---
On Fri, Nov 29, 2024 at 11:11:25PM +0100, Santiago Vila wrote:
> Package: src:traitlets
> Version: 5.14.3+really5.14.3-1
> Severity: serious
> Tags: ftbfs
> 
> Dear maintainer:
> 
> During a rebuild of all packages in unstable, your package failed to build:
[...]
> E       AttributeError: 'MonkeyPatchedIntrospectiveArgumentParser' 
> object has no attribute '_action_conflicts'

This looks like a duplicate of #1087455/#1088723 which I fixed in
python-argcomplete a couple of days ago.  I've confirmed that traitlets
now builds cleanly and passes its autopkgtests.

Thanks,

-- 
Colin Watson (he/him)                              [cjwat...@debian.org]

--- End Message ---

Reply via email to