Fedora Account System
Red Hat Associate
Red Hat Customer
[heads up] python-sphinx-hoverxref will fail to build with Sphinx 9+ which is going to be shipped in Fedora 45. _________________ ERROR at setup of test_lazy_tooltips_notlazy _________________ self = <sphinx.events.EventManager object at 0x7f466ec90750> name = 'config-inited', allowed_exceptions = () args = (Config(project='Project name not set', author='Author name not set', project_copyright='', copyright='', version='', ...modal_debugmode=False, hoverxref_modal_default_title='Note', hoverxref_modal_prefix_title='📝 ', jquery_use_sri=False),) repr_args = "(Config(project='Project name not set', author='Author name not set', project_copyright='', copyright='', version='',...odal_debugmode=False, hoverxref_modal_default_title='Note', hoverxref_modal_prefix_title='📝 ', jquery_use_sri=False),)" results = [] def emit( self, name: str, *args: Any, allowed_exceptions: tuple[type[Exception], ...] = (), ) -> list[Any]: """Emit a Sphinx event. This emits the *name* event and passes *args* to the handler functions. Return the return values of all handlers as a list. Do not emit core Sphinx events in extensions! :param name: The name of the event that will be emitted. :param args: The arguments for the event, to be passed to the handler functions. :param allowed_exceptions: The list of exceptions that are allowed in the handlers. .. versionchanged:: 3.1 Added *allowed_exceptions* to specify path-through exceptions """ # not every object likes to be repr()'d # (think random stuff coming via autodoc) try: repr_args = repr(args) except Exception: pass else: logger.debug('[app] emitting event: %r%s', name, repr_args) results = [] listeners = sorted(self.listeners[name], key=attrgetter('priority')) for listener in listeners: try: > results.append(listener.handler(self._app, *args)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/sphinx/events.py:441: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ app = <SphinxTestApp buildername='html'> exception = Config(project='Project name not set', author='Author name not set', project_copyright='', copyright='', version='', r...f_modal_debugmode=False, hoverxref_modal_default_title='Note', hoverxref_modal_prefix_title='📝 ', jquery_use_sri=False) def deprecated_configs_warning(app, exception): """Log warning message if old configs are used.""" > default, rebuild, types = app.config.values.get('hoverxref_tooltip_api_host') ^^^^^^^^^^^^^^^^^^^^^^^ E TypeError: cannot unpack non-iterable _Opt object hoverxref/extension.py:312: TypeError The above exception was the direct cause of the following exception: test_params = {'shared_result': None} app_params = _app_params(args=[], kwargs={'srcdir': PosixPath('/builddir/build/BUILD/python-sphinx-hoverxref-1.4.1-build/sphinx-hov...ath('/builddir/build/BUILD/python-sphinx-hoverxref-1.4.1-build/sphinx-hoverxref-1.4.1/tests/examples/default/_build')}) make_app = <function make_app.<locals>.make at 0x7f466ebd9a60> shared_result = <sphinx.testing.fixtures.SharedResult object at 0x7f466ebe3310> @pytest.fixture def app( test_params: dict[str, Any], app_params: _app_params, make_app: Callable[..., SphinxTestApp], shared_result: SharedResult, ) -> Iterator[SphinxTestApp]: """Provides the 'sphinx.application.Sphinx' object""" args, kwargs = app_params > app_ = make_app(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/sphinx/testing/fixtures.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/site-packages/sphinx/testing/fixtures.py:209: in make app_ = SphinxTestApp(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/sphinx/testing/util.py:177: in __init__ super().__init__( /usr/lib/python3.14/site-packages/sphinx/application.py:325: in __init__ self.events.emit('config-inited', self.config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <sphinx.events.EventManager object at 0x7f466ec90750> name = 'config-inited', allowed_exceptions = () args = (Config(project='Project name not set', author='Author name not set', project_copyright='', copyright='', version='', ...modal_debugmode=False, hoverxref_modal_default_title='Note', hoverxref_modal_prefix_title='📝 ', jquery_use_sri=False),) repr_args = "(Config(project='Project name not set', author='Author name not set', project_copyright='', copyright='', version='',...odal_debugmode=False, hoverxref_modal_default_title='Note', hoverxref_modal_prefix_title='📝 ', jquery_use_sri=False),)" results = [] def emit( self, name: str, *args: Any, allowed_exceptions: tuple[type[Exception], ...] = (), ) -> list[Any]: """Emit a Sphinx event. This emits the *name* event and passes *args* to the handler functions. Return the return values of all handlers as a list. Do not emit core Sphinx events in extensions! :param name: The name of the event that will be emitted. :param args: The arguments for the event, to be passed to the handler functions. :param allowed_exceptions: The list of exceptions that are allowed in the handlers. .. versionchanged:: 3.1 Added *allowed_exceptions* to specify path-through exceptions """ # not every object likes to be repr()'d # (think random stuff coming via autodoc) try: repr_args = repr(args) except Exception: pass else: logger.debug('[app] emitting event: %r%s', name, repr_args) results = [] listeners = sorted(self.listeners[name], key=attrgetter('priority')) for listener in listeners: try: results.append(listener.handler(self._app, *args)) except allowed_exceptions: # pass through the errors specified as *allowed_exceptions* raise except SphinxError: raise except Exception as exc: if self._reraise_errors: raise modname = safe_getattr(listener.handler, '__module__', None) msg = __('Handler %r for event %r threw an exception') > raise ExtensionError( msg % (listener.handler, name), exc, modname=modname, ) from exc E sphinx.errors.ExtensionError: Handler <function deprecated_configs_warning at 0x7f466f520ca0> for event 'config-inited' threw an exception (exception: cannot unpack non-iterable _Opt object) This is only used by python-hypothesis in Fedora, no longer active upstream, and removed from newer hypothesis. The best course of action would be to get rid of using this extension in hypothesis and retiring the package. Thank you for working on this!
This bug appears to have been reported against 'rawhide' during the Fedora Linux 45 development cycle. Changing version to 45.