==> Building on magby ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list ./ .SRCINFO 700 90% 0.00kB/s 0:00:00 773 100% 71.29kB/s 0:00:00 (xfr#1, to-chk=7/9) .nvchecker.toml 113 100% 110.35kB/s 0:00:00 113 100% 110.35kB/s 0:00:00 (xfr#2, to-chk=6/9) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=5/9) PKGBUILD 700 51% 683.59kB/s 0:00:00 1,370 100% 1.31MB/s 0:00:00 (xfr#4, to-chk=4/9) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=3/9) python-sphinx-autodoc-typehints-3.10.3-1.log 700 87% 683.59kB/s 0:00:00 803 100% 784.18kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ sent 532 bytes received 198 bytes 486.67 bytes/sec total size is 3,479 speedup is 4.77 ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Building python-sphinx-autodoc-typehints  -> repo: extra  -> arch: riscv64  -> worker: felix-4 ==> Building python-sphinx-autodoc-typehints for [extra] (riscv64) ]3008;start=e6c72f8a735945f99afecaa8493b45c7;user=root;hostname=magby.felixc.at;machineid=469582f4838449b2b409e0f312413526;bootid=ba7b1df3636f4fbf9654f487b1425aaf;pid=3884272;pidfdid=20691952;comm=systemd-nspawn;container=arch-nspawn-3884272;type=container\]11;?\]2;🔵 Container arch-nspawn-3884272 on magby.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h[!p]104\[?7h]3008;end=e6c72f8a735945f99afecaa8493b45c7\==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-4]...done ==> Making package: python-sphinx-autodoc-typehints 3.10.3-1 (Mon Jun 22 07:08:07 2026) ==> Retrieving sources...  -> Updating sphinx-autodoc-typehints git repo... ==> Validating source files with b2sums... sphinx-autodoc-typehints ... Passed ]3008;start=5704555ac91444a1bffd630b6d570dae;user=root;hostname=magby.felixc.at;machineid=469582f4838449b2b409e0f312413526;bootid=ba7b1df3636f4fbf9654f487b1425aaf;pid=3885304;pidfdid=20688617;comm=systemd-nspawn;container=arch-nspawn-3885304;type=container\]11;?\]2;🔵 Container arch-nspawn-3885304 on magby.felixc.at\]3008;start=9a98420502544c268fe4b0ec56077f6c;user=root;hostname=arch-nspawn-3885304;machineid=7e8eacf933e54499ae70324adff64bf8;bootid=0ae7a38791b74bcdbd320b83c378d2f5;pid=34;pidfdid=20684139;comm=sudo;targetuser=builduser;type=session\==> Making package: python-sphinx-autodoc-typehints 3.10.3-1 (Mon Jun 22 07:08:16 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... ]3008;start=a3686ea0b9e347bdbcb033ad80631512;user=builduser;hostname=arch-nspawn-3885304;machineid=7e8eacf933e54499ae70324adff64bf8;bootid=0ae7a38791b74bcdbd320b83c378d2f5;pid=2017;pidfdid=20721796;comm=sudo;targetuser=root;type=session\[?25lresolving dependencies... looking for conflicting packages... Package (23) New Version Net Change extra/python-babel 2.17.0-3 30.53 MiB extra/python-certifi 2026.06.17-1 0.02 MiB extra/python-charset-normalizer 3.4.7-1 0.95 MiB extra/python-docutils 1:0.23-1 6.55 MiB extra/python-idna 3.18-1 0.64 MiB extra/python-imagesize 2.0.0-1 0.12 MiB extra/python-jinja 1:3.1.6-3.1 2.04 MiB extra/python-markupsafe 3.0.3-1 0.09 MiB extra/python-packaging 26.2-1 1.23 MiB extra/python-pygments 2.20.0-1 15.36 MiB extra/python-pytz 2026.1-1 0.17 MiB extra/python-requests 2.34.2-1 0.76 MiB extra/python-roman-numerals-py 3.1.0-2 0.04 MiB extra/python-snowballstemmer 3.1.1-1 2.81 MiB extra/python-sphinx-alabaster-theme 1.0.0-6 0.05 MiB extra/python-sphinxcontrib-applehelp 2.0.0-5.1 0.26 MiB extra/python-sphinxcontrib-devhelp 2.0.0-6.1 0.13 MiB extra/python-sphinxcontrib-htmlhelp 2.1.0-5.1 0.18 MiB extra/python-sphinxcontrib-jsmath 1.0.1-21.1 0.02 MiB extra/python-sphinxcontrib-qthelp 2.0.0-5.1 0.17 MiB extra/python-sphinxcontrib-serializinghtml 2.0.0-5.1 0.14 MiB extra/python-urllib3 2.6.3-1 1.44 MiB extra/python-sphinx 9.1.0-1 23.72 MiB Total Installed Size: 87.42 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-pytz... installing python-babel... installing python-docutils... Optional dependencies for python-docutils python-myst-parser: to parse input in "Markdown" (CommonMark) format python-pillow: for some image manipulation operations python-pygments: for syntax highlighting of code directives and roles [pending] installing python-imagesize... installing python-markupsafe... installing python-jinja... Optional dependencies for python-jinja python-babel: for i18n support [installed] installing python-packaging... installing python-pygments... installing python-charset-normalizer... installing python-idna... installing python-urllib3... Optional dependencies for python-urllib3 python-brotli: Brotli support python-brotlicffi: Brotli support python-h2: HTTP/2 support python-pysocks: SOCKS support installing python-certifi... installing python-requests... Optional dependencies for python-requests python-chardet: alternative character encoding library python-pysocks: SOCKS proxy support installing python-roman-numerals-py... installing python-snowballstemmer... Optional dependencies for python-snowballstemmer python-pystemmer: for improved performance installing python-sphinx-alabaster-theme... installing python-sphinxcontrib-applehelp... installing python-sphinxcontrib-devhelp... installing python-sphinxcontrib-htmlhelp... installing python-sphinxcontrib-jsmath... installing python-sphinxcontrib-qthelp... installing python-sphinxcontrib-serializinghtml... installing python-sphinx... Optional dependencies for python-sphinx imagemagick: for ext.imgconverter texlive-fontsextra: for the default admonition title icons in PDF output texlive-latexextra: for generation of PDF documentation :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h]3008;end=a3686ea0b9e347bdbcb033ad80631512\==> Checking buildtime dependencies... ==> Installing missing dependencies... ]3008;start=465f7e9dafce47de85ff4644a3f63089;user=builduser;hostname=arch-nspawn-3885304;machineid=7e8eacf933e54499ae70324adff64bf8;bootid=0ae7a38791b74bcdbd320b83c378d2f5;pid=2336;pidfdid=20734017;comm=sudo;targetuser=root;type=session\[?25lresolving dependencies... looking for conflicting packages... Package (35) New Version Net Change extra/perl-error 0.17030-3 0.04 MiB extra/perl-mailtools 2.22-3 0.10 MiB extra/perl-timedate 2.35-1 0.15 MiB extra/python-attrs 26.1.0-1 0.63 MiB extra/python-autocommand 2.2.2-9 0.08 MiB extra/python-editables 0.6-1 0.04 MiB extra/python-iniconfig 2.3.0-1 0.07 MiB extra/python-jaraco.collections 5.1.0-3 0.11 MiB extra/python-jaraco.context 6.1.2-1 0.06 MiB extra/python-jaraco.functools 4.1.0-3 0.07 MiB extra/python-jaraco.text 4.0.0-4 0.08 MiB extra/python-jsonschema 4.26.0-1 1.39 MiB extra/python-jsonschema-specifications 2025.9.1-2 0.05 MiB extra/python-more-itertools 11.1.0-1 0.77 MiB extra/python-pathspec 1.1.1-1 0.47 MiB extra/python-pkg_resources 81.0.0-1 0.50 MiB extra/python-platformdirs 4.10.0-1 0.45 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/python-referencing 0.37.0-3.1 0.41 MiB extra/python-rpds-py 2026.5.1-1 0.74 MiB extra/python-setuptools 1:82.0.1-1 7.35 MiB extra/python-setuptools-scm 10.0.5-1 0.15 MiB extra/python-trove-classifiers 2026.6.1.19-1 0.16 MiB extra/python-vcs-versioning 1.1.1-1 0.80 MiB extra/python-wheel 0.46.3-1 0.31 MiB extra/zlib-ng 2.3.3-1 0.23 MiB extra/git 2.54.0-1 29.36 MiB extra/python-build 1.4.3-1 0.26 MiB extra/python-hatch-vcs 0.5.0-4.1 0.04 MiB extra/python-hatchling 1.29.0-1 1.06 MiB extra/python-installer 1.0.0-1 0.20 MiB extra/python-pytest 1:8.4.2-3 4.69 MiB extra/python-sphobjinv 2.4-1 0.41 MiB extra/python-typing_extensions 4.15.0-3 0.52 MiB Total Installed Size: 52.08 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] less: the default pager for git installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-editables... installing python-pathspec... Optional dependencies for python-pathspec python-google-re2: re2 backend installing python-pluggy... installing python-trove-classifiers... installing python-hatchling... installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-jaraco.text... Optional dependencies for python-jaraco.text python-inflect: for show-newlines script installing python-jaraco.collections... installing python-platformdirs... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures python-setuptools: for legacy bdist_wheel subcommand [pending] installing python-typing_extensions... installing python-pkg_resources... installing python-setuptools... installing python-vcs-versioning... installing python-setuptools-scm... Optional dependencies for python-setuptools-scm python-rich: use rich as console log handler installing python-hatch-vcs... installing python-installer... installing python-iniconfig... installing python-pytest... installing python-attrs... installing python-rpds-py... installing python-referencing... installing python-jsonschema-specifications... installing python-jsonschema... Optional dependencies for python-jsonschema python-isoduration: for duration format python-fqdn: for hostname format python-idna: for idn-hostname format [installed] python-jsonpointer: for json-pointer & relative-json-pointer format python-rfc3339-validator: for date-time format python-rfc3987: for iri, iri-reference, uri & uri-reference format python-uri-template: for uri-template format python-webcolors: for color format installing python-sphobjinv... :: Running post-transaction hooks... (1/4) Creating system user accounts... Creating group 'git' with GID 969. Creating user 'git' (git daemon user) with UID 969 and GID 969. (2/4) Reloading system manager configuration... Skipped: Current root is not booted. (3/4) Arming ConditionNeedsUpdate... (4/4) Checking for old perl modules... [?25h]3008;end=465f7e9dafce47de85ff4644a3f63089\==> Retrieving sources... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Creating working copy of sphinx-autodoc-typehints git repo... Cloning into 'sphinx-autodoc-typehints'... done. Switched to a new branch 'makepkg' ==> Starting build()... * Getting build dependencies for wheel... * Building wheel... Successfully built sphinx_autodoc_typehints-3.10.3-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.14.6, pytest-8.4.2, pluggy-1.6.0 -- /build/python-sphinx-autodoc-typehints/src/sphinx-autodoc-typehints/test-env/bin/python cachedir: .pytest_cache rootdir: /build/python-sphinx-autodoc-typehints/src/sphinx-autodoc-typehints configfile: pyproject.toml testpaths: tests collecting ... collected 668 items / 2 skipped tests/test_annotations.py::test_parse_annotation[str] PASSED [ 0%] tests/test_annotations.py::test_parse_annotation[None] PASSED [ 0%] tests/test_annotations.py::test_parse_annotation[ModuleType] PASSED [ 0%] tests/test_annotations.py::test_parse_annotation[FunctionType] PASSED [ 0%] tests/test_annotations.py::test_parse_annotation[CodeType] PASSED [ 0%] tests/test_annotations.py::test_parse_annotation[CoroutineType] PASSED [ 0%] tests/test_annotations.py::test_parse_annotation[Any] PASSED [ 1%] tests/test_annotations.py::test_parse_annotation[AnyStr] PASSED [ 1%] tests/test_annotations.py::test_parse_annotation[Dict] PASSED [ 1%] tests/test_annotations.py::test_parse_annotation[Dict_parametrized] PASSED [ 1%] tests/test_annotations.py::test_parse_annotation[Dict_typevar] PASSED [ 1%] tests/test_annotations.py::test_parse_annotation[Tuple] PASSED [ 1%] tests/test_annotations.py::test_parse_annotation[Tuple_parametrized] PASSED [ 1%] tests/test_annotations.py::test_parse_annotation[Union] PASSED [ 2%] tests/test_annotations.py::test_parse_annotation[Callable] PASSED [ 2%] tests/test_annotations.py::test_parse_annotation[Callable_returntype] PASSED [ 2%] tests/test_annotations.py::test_parse_annotation[Callable_all_types] PASSED [ 2%] tests/test_annotations.py::test_parse_annotation[collections.abc.Callable_all_types] PASSED [ 2%] tests/test_annotations.py::test_parse_annotation[Pattern] PASSED [ 2%] tests/test_annotations.py::test_parse_annotation[Pattern_parametrized] PASSED [ 2%] tests/test_annotations.py::test_parse_annotation[Match] PASSED [ 3%] tests/test_annotations.py::test_parse_annotation[Match_parametrized] PASSED [ 3%] tests/test_annotations.py::test_parse_annotation[IO] PASSED [ 3%] tests/test_annotations.py::test_parse_annotation[W] PASSED [ 3%] tests/test_annotations.py::test_parse_annotation[P] PASSED [ 3%] tests/test_annotations.py::test_parse_annotation[P_args] PASSED [ 3%] tests/test_annotations.py::test_parse_annotation[P_kwargs] PASSED [ 4%] tests/test_annotations.py::test_parse_annotation[Metaclass] PASSED [ 4%] tests/test_annotations.py::test_parse_annotation[Slotted] PASSED [ 4%] tests/test_annotations.py::test_parse_annotation[A] PASSED [ 4%] tests/test_annotations.py::test_parse_annotation[B] PASSED [ 4%] tests/test_annotations.py::test_parse_annotation[C] PASSED [ 4%] tests/test_annotations.py::test_parse_annotation[D] PASSED [ 4%] tests/test_annotations.py::test_parse_annotation[E] PASSED [ 5%] tests/test_annotations.py::test_parse_annotation[E_parametrized] PASSED [ 5%] tests/test_annotations.py::test_parse_annotation[Inner] PASSED [ 5%] tests/test_annotations.py::test_format_annotation[str] PASSED [ 5%] tests/test_annotations.py::test_format_annotation[int] PASSED [ 5%] tests/test_annotations.py::test_format_annotation[StringIO] PASSED [ 5%] tests/test_annotations.py::test_format_annotation[EllipsisType] FAILED [ 5%] tests/test_annotations.py::test_format_annotation[FunctionType] PASSED [ 6%] tests/test_annotations.py::test_format_annotation[FrameType] PASSED [ 6%] tests/test_annotations.py::test_format_annotation[ModuleType] PASSED [ 6%] tests/test_annotations.py::test_format_annotation[NotImplementedType] FAILED [ 6%] tests/test_annotations.py::test_format_annotation[TracebackType] PASSED [ 6%] tests/test_annotations.py::test_format_annotation[type None] PASSED [ 6%] tests/test_annotations.py::test_format_annotation[type] PASSED [ 7%] tests/test_annotations.py::test_format_annotation[abc-Callable] PASSED [ 7%] tests/test_annotations.py::test_format_annotation[typing-Type] PASSED [ 7%] tests/test_annotations.py::test_format_annotation[typing-A] PASSED [ 7%] tests/test_annotations.py::test_format_annotation[Any] PASSED [ 7%] tests/test_annotations.py::test_format_annotation[AnyStr] PASSED [ 7%] tests/test_annotations.py::test_format_annotation[Generic] PASSED [ 7%] tests/test_annotations.py::test_format_annotation[Mapping] PASSED [ 8%] tests/test_annotations.py::test_format_annotation[Mapping-T-int] PASSED [ 8%] tests/test_annotations.py::test_format_annotation[Mapping-T-int-contra] PASSED [ 8%] tests/test_annotations.py::test_format_annotation[Mapping-T-int-co] PASSED [ 8%] tests/test_annotations.py::test_format_annotation[Mapping-str-bool] PASSED [ 8%] tests/test_annotations.py::test_format_annotation[Dict] PASSED [ 8%] tests/test_annotations.py::test_format_annotation[Dict-T-int] PASSED [ 8%] tests/test_annotations.py::test_format_annotation[Dict-T-int-contra] PASSED [ 9%] tests/test_annotations.py::test_format_annotation[Dict-T-int-co] PASSED [ 9%] tests/test_annotations.py::test_format_annotation[Dict-str-bool] PASSED [ 9%] tests/test_annotations.py::test_format_annotation[Tuple] PASSED [ 9%] tests/test_annotations.py::test_format_annotation[Tuple-str-bool] PASSED [ 9%] tests/test_annotations.py::test_format_annotation[Tuple-int-int-int] PASSED [ 9%] tests/test_annotations.py::test_format_annotation[Tuple-str-Ellipsis] PASSED [ 10%] tests/test_annotations.py::test_format_annotation[Union] PASSED [ 10%] tests/test_annotations.py::test_format_annotation[UnionType] PASSED [ 10%] tests/test_annotations.py::test_format_annotation[Union-str-bool] PASSED [ 10%] tests/test_annotations.py::test_format_annotation[Union-str-bool-None] PASSED [ 10%] tests/test_annotations.py::test_format_annotation[Union-str-Any] PASSED [ 10%] tests/test_annotations.py::test_format_annotation[Optional-str] PASSED [ 10%] tests/test_annotations.py::test_format_annotation[Optional-str-None] PASSED [ 11%] tests/test_annotations.py::test_format_annotation[typevar union bar uniontype] PASSED [ 11%] tests/test_annotations.py::test_format_annotation[Optional-Union-str-bool] PASSED [ 11%] tests/test_annotations.py::test_format_annotation[RecList] PASSED [ 11%] tests/test_annotations.py::test_format_annotation[MutualRecA] PASSED [ 11%] tests/test_annotations.py::test_format_annotation[Callable] PASSED [ 11%] tests/test_annotations.py::test_format_annotation[Callable-Ellipsis-int] PASSED [ 11%] tests/test_annotations.py::test_format_annotation[Callable-int-int] PASSED [ 12%] tests/test_annotations.py::test_format_annotation[Callable-int-str-bool0] PASSED [ 12%] tests/test_annotations.py::test_format_annotation[Callable-int-str] PASSED [ 12%] tests/test_annotations.py::test_format_annotation[Callable-T-T] PASSED [ 12%] tests/test_annotations.py::test_format_annotation[Callable-int-str-bool1] PASSED [ 12%] tests/test_annotations.py::test_format_annotation[Pattern] PASSED [ 12%] tests/test_annotations.py::test_format_annotation[Pattern-str] PASSED [ 13%] tests/test_annotations.py::test_format_annotation[IO] PASSED [ 13%] tests/test_annotations.py::test_format_annotation[IO-str] PASSED [ 13%] tests/test_annotations.py::test_format_annotation[Metaclass] PASSED [ 13%] tests/test_annotations.py::test_format_annotation[A] PASSED [ 13%] tests/test_annotations.py::test_format_annotation[B] PASSED [ 13%] tests/test_annotations.py::test_format_annotation[B-int] PASSED [ 13%] tests/test_annotations.py::test_format_annotation[C] PASSED [ 14%] tests/test_annotations.py::test_format_annotation[D] PASSED [ 14%] tests/test_annotations.py::test_format_annotation[E] PASSED [ 14%] tests/test_annotations.py::test_format_annotation[E-int] PASSED [ 14%] tests/test_annotations.py::test_format_annotation[W] PASSED [ 14%] tests/test_annotations.py::test_format_annotation[T] PASSED [ 14%] tests/test_annotations.py::test_format_annotation[U-co] PASSED [ 14%] tests/test_annotations.py::test_format_annotation[V-contra] PASSED [ 15%] tests/test_annotations.py::test_format_annotation[X] PASSED [ 15%] tests/test_annotations.py::test_format_annotation[Y] PASSED [ 15%] tests/test_annotations.py::test_format_annotation[Z] PASSED [ 15%] tests/test_annotations.py::test_format_annotation[S] PASSED [ 15%] tests/test_annotations.py::test_format_annotation[P] PASSED [ 15%] tests/test_annotations.py::test_format_annotation[P_co] PASSED [ 16%] tests/test_annotations.py::test_format_annotation[P-contra] PASSED [ 16%] tests/test_annotations.py::test_format_annotation[P-bound] PASSED [ 16%] tests/test_annotations.py::test_format_annotation[Tuple-p] PASSED [ 16%] tests/test_annotations.py::test_format_annotation[Tuple-p-int] PASSED [ 16%] tests/test_annotations.py::test_format_annotation[Tuple-p-int-int] PASSED [ 16%] tests/test_annotations.py::test_format_annotation[Tuple-p-Ellipsis] PASSED [ 16%] tests/test_annotations.py::test_format_annotation[Annotated-metadata] PASSED [ 17%] tests/test_annotations.py::test_format_annotation[Required] PASSED [ 17%] tests/test_annotations.py::test_format_annotation[NotRequired] PASSED [ 17%] tests/test_annotations.py::test_always_use_bars_union[int | float-:py:class:`int` | :py:class:`float`] PASSED [ 17%] tests/test_annotations.py::test_always_use_bars_union[int | float | None-:py:class:`int` | :py:class:`float` | :py:obj:`None`] PASSED [ 17%] tests/test_annotations.py::test_always_use_bars_union[Union[int, float]-:py:class:`int` | :py:class:`float`] PASSED [ 17%] tests/test_annotations.py::test_always_use_bars_union[Union[int, float, None]-:py:class:`int` | :py:class:`float` | :py:obj:`None`] PASSED [ 17%] tests/test_annotations.py::test_always_use_bars_union[Optional[int | float]-:py:class:`int` | :py:class:`float` | :py:obj:`None`] PASSED [ 18%] tests/test_annotations.py::test_always_use_bars_union[Optional[Union[int, float]]-:py:class:`int` | :py:class:`float` | :py:obj:`None`] PASSED [ 18%] tests/test_annotations.py::test_always_use_bars_union[Union[int | float, str]-:py:class:`int` | :py:class:`float` | :py:class:`str`] PASSED [ 18%] tests/test_annotations.py::test_always_use_bars_union[Union[int, float] | str-:py:class:`int` | :py:class:`float` | :py:class:`str`] PASSED [ 18%] tests/test_annotations.py::test_format_annotation_both_libs[ClassVar-typing] PASSED [ 18%] tests/test_annotations.py::test_format_annotation_both_libs[ClassVar-typing_extensions] PASSED [ 18%] tests/test_annotations.py::test_format_annotation_both_libs[NoReturn-typing] PASSED [ 19%] tests/test_annotations.py::test_format_annotation_both_libs[NoReturn-typing_extensions] PASSED [ 19%] tests/test_annotations.py::test_format_annotation_both_libs[Literal-typing] PASSED [ 19%] tests/test_annotations.py::test_format_annotation_both_libs[Literal-typing_extensions] PASSED [ 19%] tests/test_annotations.py::test_format_annotation_both_libs[Literal-enum-typing] PASSED [ 19%] tests/test_annotations.py::test_format_annotation_both_libs[Literal-enum-typing_extensions] PASSED [ 19%] tests/test_annotations.py::test_format_annotation_both_libs[Type-none-typing] PASSED [ 19%] tests/test_annotations.py::test_format_annotation_both_libs[Type-none-typing_extensions] PASSED [ 20%] tests/test_annotations.py::test_format_annotation_both_libs[Type-A-typing] PASSED [ 20%] tests/test_annotations.py::test_format_annotation_both_libs[Type-A-typing_extensions] PASSED [ 20%] tests/test_annotations.py::test_format_annotation_tuple PASSED [ 20%] tests/test_annotations.py::test_format_annotation_empty_tuple PASSED [ 20%] tests/test_annotations.py::test_format_annotation_single_element_tuple PASSED [ 20%] tests/test_annotations.py::test_format_annotation_none PASSED [ 20%] tests/test_annotations.py::test_format_annotation_ellipsis PASSED [ 21%] tests/test_annotations.py::test_format_annotation_forward_ref PASSED [ 21%] tests/test_annotations.py::test_format_annotation_typing_extensions_module_fixup PASSED [ 21%] tests/test_annotations.py::test_format_annotation_io_module_fixup PASSED [ 21%] tests/test_annotations.py::test_format_annotation_with_formatter_returning_value PASSED [ 21%] tests/test_annotations.py::test_format_annotation_with_formatter_returning_none PASSED [ 21%] tests/test_annotations.py::test_format_annotation_short_literals PASSED [ 22%] tests/test_annotations.py::test_get_annotation_module_raises_on_unknown PASSED [ 22%] tests/test_annotations.py::test_get_annotation_class_name_name_attr PASSED [ 22%] tests/test_annotations.py::test_get_annotation_args_classvar PASSED [ 22%] tests/test_annotations.py::test_get_annotation_args_literal_values PASSED [ 22%] tests/test_annotations.py::test_get_annotation_args_generic PASSED [ 22%] tests/test_annotations.py::test_get_canonical_type_alias_name_public_module PASSED [ 22%] tests/test_annotations.py::test_get_canonical_type_alias_name_private_to_public PASSED [ 23%] tests/test_annotations.py::test_get_canonical_type_alias_name_no_public_reexport PASSED [ 23%] tests/test_attributes_patch.py::test_okay_to_patch_is_true PASSED [ 23%] tests/test_attributes_patch.py::test_patched_parse_annotation_without_label PASSED [ 23%] tests/test_attributes_patch.py::test_patched_parse_annotation_dispatches_on_label PASSED [ 23%] tests/test_attributes_patch.py::test_patch_attribute_handling_when_not_okay PASSED [ 23%] tests/test_attributes_patch.py::test_rst_to_docutils_returns_parsed_nodes PASSED [ 23%] tests/test_conftest.py::test_ignore_collect_skips_future_python_version PASSED [ 24%] tests/test_conftest.py::test_ignore_collect_allows_current_or_past_version PASSED [ 24%] tests/test_conftest.py::test_ignore_collect_ignores_non_versioned_files PASSED [ 24%] tests/test_formats_numpydoc.py::test_convert_parameters_section PASSED [ 24%] tests/test_formats_numpydoc.py::test_convert_returns_single PASSED [ 24%] tests/test_formats_numpydoc.py::test_convert_returns_no_name PASSED [ 24%] tests/test_formats_numpydoc.py::test_convert_returns_multiple PASSED [ 25%] tests/test_formats_numpydoc.py::test_convert_raises PASSED [ 25%] tests/test_formats_numpydoc.py::test_convert_yields_single PASSED [ 25%] tests/test_formats_numpydoc.py::test_convert_yields_multiple PASSED [ 25%] tests/test_formats_numpydoc.py::test_convert_other_parameters PASSED [ 25%] tests/test_formats_numpydoc.py::test_no_numpydoc_content_is_noop PASSED [ 25%] tests/test_formats_numpydoc.py::test_multiline_description PASSED [ 25%] tests/test_formats_numpydoc.py::test_param_without_type PASSED [ 26%] tests/test_formats_numpydoc.py::test_param_without_description PASSED [ 26%] tests/test_formats_numpydoc.py::test_raises_with_named_exception PASSED [ 26%] tests/test_formats_numpydoc.py::test_returns_single_no_description PASSED [ 26%] tests/test_formats_numpydoc.py::test_multiple_sections PASSED [ 26%] tests/test_formats_numpydoc.py::test_numpydoc_format_detect PASSED [ 26%] tests/test_formats_numpydoc.py::test_numpydoc_format_find_param PASSED [ 26%] tests/test_formats_numpydoc.py::test_numpydoc_format_find_preexisting_type PASSED [ 27%] tests/test_formats_numpydoc.py::test_numpydoc_format_add_undocumented_param PASSED [ 27%] tests/test_formats_numpydoc.py::test_numpydoc_format_inject_param_type PASSED [ 27%] tests/test_formats_numpydoc.py::test_numpydoc_format_get_arg_name_from_line PASSED [ 27%] tests/test_formats_numpydoc.py::test_numpydoc_format_append_default PASSED [ 27%] tests/test_formats_numpydoc.py::test_convert_section_without_blank_line_after_header PASSED [ 27%] tests/test_formats_numpydoc.py::test_convert_yields_single_no_description_then_params PASSED [ 27%] tests/test_formats_numpydoc.py::test_detect_format_returns_numpydoc_for_numpydoc_lines PASSED [ 28%] tests/test_formats_numpydoc.py::test_detect_format_returns_sphinx_for_plain_lines PASSED [ 28%] tests/test_formats_numpydoc.py::test_parse_numpydoc_entries_breaks_on_unrecognized_format PASSED [ 28%] tests/test_formats_numpydoc.py::test_numpydoc_format_get_rtype_insert_info PASSED [ 28%] tests/test_formats_numpydoc.py::test_numpydoc_format_inject_rtype PASSED [ 28%] tests/test_formats_sphinx.py::test_inject_rtype_inserts_blank_line_before_rtype PASSED [ 28%] tests/test_formats_sphinx.py::test_inject_rtype_does_not_add_extra_blank_line PASSED [ 29%] tests/test_formats_sphinx.py::test_node_line_no_none_input PASSED [ 29%] tests/test_formats_sphinx.py::test_node_line_no_descends_to_find_line PASSED [ 29%] tests/test_formats_sphinx.py::test_sphinx_format_detect_always_true PASSED [ 29%] tests/test_formats_sphinx.py::test_get_rtype_insert_info_field_list_without_param_synonyms PASSED [ 29%] tests/test_formats_sphinx.py::test_get_rtype_insert_info_directive_with_nonempty_preceding_line PASSED [ 29%] tests/test_generator_yields.py::test_generator_no_duplicate_return_type PASSED [ 29%] tests/test_generator_yields.py::test_generator_without_yields_keeps_rtype PASSED [ 30%] tests/test_guarded_import.py::test_guarded_import_missing_name_no_warning PASSED [ 30%] tests/test_init.py::test_process_signature_class_attr_lookup_fails PASSED [ 30%] tests/test_init.py::test_process_signature_private_name_mangling PASSED [ 30%] tests/test_init.py::test_process_docstring_sphinx_signature_raises_value_error PASSED [ 30%] tests/test_init.py::test_process_docstring_sphinx_signature_raises_type_error PASSED [ 30%] tests/test_init.py::test_inject_overload_no_qualname PASSED [ 30%] tests/test_init.py::test_inject_overload_unannotated_param_and_no_return PASSED [ 31%] tests/test_init.py::test_inject_overload_empty_overloads_returns_false PASSED [ 31%] tests/test_init.py::test_local_function_warning_includes_location PASSED [ 31%] tests/test_init.py::test_inject_overload_global_disable PASSED [ 31%] tests/test_init.py::test_inject_overload_local_no_overloads_directive PASSED [ 31%] tests/test_init.py::test_inject_overload_local_directive_with_global_enabled PASSED [ 31%] tests/test_init.py::test_process_docstring_uses_new_when_init_inherited PASSED [ 32%] tests/test_init.py::test_process_docstring_prefers_init_over_new PASSED [ 32%] tests/test_init.py::test_inject_types_no_signature PASSED [ 32%] tests/test_init.py::test_process_docstring_replaces_preexisting_single_line_type PASSED [ 32%] tests/test_init.py::test_process_docstring_replaces_preexisting_multiline_type PASSED [ 32%] tests/test_init.py::test_process_docstring_preserves_blank_line_after_preexisting_type PASSED [ 32%] tests/test_init.py::test_process_docstring_strips_inline_param_type PASSED [ 32%] tests/test_init.py::test_process_docstring_strips_complex_inline_param_type PASSED [ 33%] tests/test_init.py::test_setup_returns_version PASSED [ 33%] tests/test_integration.py::test_integration[default_conf-get_local_function] PASSED [ 33%] tests/test_integration.py::test_integration[default_conf-Class] PASSED [ 33%] tests/test_integration.py::test_integration[default_conf-DummyException] PASSED [ 33%] tests/test_integration.py::test_integration[default_conf-function] PASSED [ 33%] tests/test_integration.py::test_integration[default_conf-function_with_starred_documentation_param_names] PASSED [ 33%] tests/test_integration.py::test_integration[default_conf-function_with_escaped_default] PASSED [ 34%] tests/test_integration.py::test_integration[default_conf-function_with_unresolvable_annotation] PASSED [ 34%] tests/test_integration.py::test_integration[default_conf-function_with_typehint_comment] PASSED [ 34%] tests/test_integration.py::test_integration[default_conf-ClassWithTypehints] PASSED [ 34%] tests/test_integration.py::test_integration[default_conf-function_with_typehint_comment_not_inline] PASSED [ 34%] tests/test_integration.py::test_integration[default_conf-ClassWithTypehintsNotInline] PASSED [ 34%] tests/test_integration.py::test_integration[default_conf-undocumented_function] PASSED [ 35%] tests/test_integration.py::test_integration[default_conf-DataClass] PASSED [ 35%] tests/test_integration.py::test_integration[default_conf-Decorator] PASSED [ 35%] tests/test_integration.py::test_integration[default_conf-mocked_import] PASSED [ 35%] tests/test_integration.py::test_integration[default_conf-func_with_examples] PASSED [ 35%] tests/test_integration.py::test_integration[default_conf-func_with_overload] PASSED [ 35%] tests/test_integration.py::test_integration[default_conf-overload_with_complex_types] PASSED [ 35%] tests/test_integration.py::test_integration[default_conf-func_with_overload_no_overloads] PASSED [ 36%] tests/test_integration.py::test_integration[default_conf-func_literals_long_format] PASSED [ 36%] tests/test_integration.py::test_integration[default_conf-func_literals_short_format] PASSED [ 36%] tests/test_integration.py::test_integration[default_conf-TestClassAttributeDocs] PASSED [ 36%] tests/test_integration.py::test_integration[default_conf-func_with_examples_and_returns_after] PASSED [ 36%] tests/test_integration.py::test_integration[default_conf-func_with_parameters_and_stuff_after] PASSED [ 36%] tests/test_integration.py::test_integration[default_conf-func_with_rtype_in_weird_spot] PASSED [ 36%] tests/test_integration.py::test_integration[default_conf-empty_line_between_parameters] PASSED [ 37%] tests/test_integration.py::test_integration[default_conf-func_with_code_block] PASSED [ 37%] tests/test_integration.py::test_integration[default_conf-func_with_definition_list] PASSED [ 37%] tests/test_integration.py::test_integration[default_conf-decorator_2] PASSED [ 37%] tests/test_integration.py::test_integration[default_conf-ParamAndAttributeHaveSameName] PASSED [ 37%] tests/test_integration.py::test_integration[default_conf-napoleon_returns] PASSED [ 37%] tests/test_integration.py::test_integration[default_conf-google_docstrings] PASSED [ 38%] tests/test_integration.py::test_integration[default_conf-docstring_with_multiline_note_after_params] PASSED [ 38%] tests/test_integration.py::test_integration[default_conf-docstring_with_bullet_list_after_params] PASSED [ 38%] tests/test_integration.py::test_integration[default_conf-docstring_with_definition_list_after_params] PASSED [ 38%] tests/test_integration.py::test_integration[default_conf-docstring_with_enum_list_after_params] PASSED [ 38%] tests/test_integration.py::test_integration[default_conf-docstring_with_definition_list_after_params_no_blank_line] PASSED [ 38%] tests/test_integration.py::test_integration[default_conf-has_typevar] PASSED [ 38%] tests/test_integration.py::test_integration[default_conf-has_newtype] PASSED [ 39%] tests/test_integration.py::test_integration[default_conf-typehints_use_signature] PASSED [ 39%] tests/test_integration.py::test_integration[default_conf-typehints_no_rtype_none] PASSED [ 39%] tests/test_integration.py::test_integration[default_conf-docstring_with_multiline_note_after_params_prolog_replace] PASSED [ 39%] tests/test_integration.py::test_integration[default_conf-docstring_with_multiline_note_after_params_epilog_replace] PASSED [ 39%] tests/test_integration.py::test_integration[default_conf-docstring_with_see_also] PASSED [ 39%] tests/test_integration.py::test_integration[default_conf-has_doctest1] PASSED [ 39%] tests/test_integration.py::test_integration[default_conf-typehints_formatter_applied_to_signature] PASSED [ 40%] tests/test_integration.py::test_integration[prolog_conf-get_local_function] PASSED [ 40%] tests/test_integration.py::test_integration[prolog_conf-Class] PASSED [ 40%] tests/test_integration.py::test_integration[prolog_conf-DummyException] PASSED [ 40%] tests/test_integration.py::test_integration[prolog_conf-function] PASSED [ 40%] tests/test_integration.py::test_integration[prolog_conf-function_with_starred_documentation_param_names] PASSED [ 40%] tests/test_integration.py::test_integration[prolog_conf-function_with_escaped_default] PASSED [ 41%] tests/test_integration.py::test_integration[prolog_conf-function_with_unresolvable_annotation] PASSED [ 41%] tests/test_integration.py::test_integration[prolog_conf-function_with_typehint_comment] PASSED [ 41%] tests/test_integration.py::test_integration[prolog_conf-ClassWithTypehints] PASSED [ 41%] tests/test_integration.py::test_integration[prolog_conf-function_with_typehint_comment_not_inline] PASSED [ 41%] tests/test_integration.py::test_integration[prolog_conf-ClassWithTypehintsNotInline] PASSED [ 41%] tests/test_integration.py::test_integration[prolog_conf-undocumented_function] PASSED [ 41%] tests/test_integration.py::test_integration[prolog_conf-DataClass] PASSED [ 42%] tests/test_integration.py::test_integration[prolog_conf-Decorator] PASSED [ 42%] tests/test_integration.py::test_integration[prolog_conf-mocked_import] PASSED [ 42%] tests/test_integration.py::test_integration[prolog_conf-func_with_examples] PASSED [ 42%] tests/test_integration.py::test_integration[prolog_conf-func_with_overload] PASSED [ 42%] tests/test_integration.py::test_integration[prolog_conf-overload_with_complex_types] PASSED [ 42%] tests/test_integration.py::test_integration[prolog_conf-func_with_overload_no_overloads] PASSED [ 42%] tests/test_integration.py::test_integration[prolog_conf-func_literals_long_format] PASSED [ 43%] tests/test_integration.py::test_integration[prolog_conf-func_literals_short_format] PASSED [ 43%] tests/test_integration.py::test_integration[prolog_conf-TestClassAttributeDocs] PASSED [ 43%] tests/test_integration.py::test_integration[prolog_conf-func_with_examples_and_returns_after] PASSED [ 43%] tests/test_integration.py::test_integration[prolog_conf-func_with_parameters_and_stuff_after] PASSED [ 43%] tests/test_integration.py::test_integration[prolog_conf-func_with_rtype_in_weird_spot] PASSED [ 43%] tests/test_integration.py::test_integration[prolog_conf-empty_line_between_parameters] PASSED [ 44%] tests/test_integration.py::test_integration[prolog_conf-func_with_code_block] PASSED [ 44%] tests/test_integration.py::test_integration[prolog_conf-func_with_definition_list] PASSED [ 44%] tests/test_integration.py::test_integration[prolog_conf-decorator_2] PASSED [ 44%] tests/test_integration.py::test_integration[prolog_conf-ParamAndAttributeHaveSameName] PASSED [ 44%] tests/test_integration.py::test_integration[prolog_conf-napoleon_returns] PASSED [ 44%] tests/test_integration.py::test_integration[prolog_conf-google_docstrings] PASSED [ 44%] tests/test_integration.py::test_integration[prolog_conf-docstring_with_multiline_note_after_params] PASSED [ 45%] tests/test_integration.py::test_integration[prolog_conf-docstring_with_bullet_list_after_params] PASSED [ 45%] tests/test_integration.py::test_integration[prolog_conf-docstring_with_definition_list_after_params] PASSED [ 45%] tests/test_integration.py::test_integration[prolog_conf-docstring_with_enum_list_after_params] PASSED [ 45%] tests/test_integration.py::test_integration[prolog_conf-docstring_with_definition_list_after_params_no_blank_line] PASSED [ 45%] tests/test_integration.py::test_integration[prolog_conf-has_typevar] PASSED [ 45%] tests/test_integration.py::test_integration[prolog_conf-has_newtype] PASSED [ 45%] tests/test_integration.py::test_integration[prolog_conf-typehints_use_signature] PASSED [ 46%] tests/test_integration.py::test_integration[prolog_conf-typehints_no_rtype_none] PASSED [ 46%] tests/test_integration.py::test_integration[prolog_conf-docstring_with_multiline_note_after_params_prolog_replace] PASSED [ 46%] tests/test_integration.py::test_integration[prolog_conf-docstring_with_multiline_note_after_params_epilog_replace] PASSED [ 46%] tests/test_integration.py::test_integration[prolog_conf-docstring_with_see_also] PASSED [ 46%] tests/test_integration.py::test_integration[prolog_conf-has_doctest1] PASSED [ 46%] tests/test_integration.py::test_integration[prolog_conf-typehints_formatter_applied_to_signature] PASSED [ 47%] tests/test_integration.py::test_integration[epilog_conf-get_local_function] PASSED [ 47%] tests/test_integration.py::test_integration[epilog_conf-Class] PASSED [ 47%] tests/test_integration.py::test_integration[epilog_conf-DummyException] PASSED [ 47%] tests/test_integration.py::test_integration[epilog_conf-function] PASSED [ 47%] tests/test_integration.py::test_integration[epilog_conf-function_with_starred_documentation_param_names] PASSED [ 47%] tests/test_integration.py::test_integration[epilog_conf-function_with_escaped_default] PASSED [ 47%] tests/test_integration.py::test_integration[epilog_conf-function_with_unresolvable_annotation] PASSED [ 48%] tests/test_integration.py::test_integration[epilog_conf-function_with_typehint_comment] PASSED [ 48%] tests/test_integration.py::test_integration[epilog_conf-ClassWithTypehints] PASSED [ 48%] tests/test_integration.py::test_integration[epilog_conf-function_with_typehint_comment_not_inline] PASSED [ 48%] tests/test_integration.py::test_integration[epilog_conf-ClassWithTypehintsNotInline] PASSED [ 48%] tests/test_integration.py::test_integration[epilog_conf-undocumented_function] PASSED [ 48%] tests/test_integration.py::test_integration[epilog_conf-DataClass] PASSED [ 48%] tests/test_integration.py::test_integration[epilog_conf-Decorator] PASSED [ 49%] tests/test_integration.py::test_integration[epilog_conf-mocked_import] PASSED [ 49%] tests/test_integration.py::test_integration[epilog_conf-func_with_examples] PASSED [ 49%] tests/test_integration.py::test_integration[epilog_conf-func_with_overload] PASSED [ 49%] tests/test_integration.py::test_integration[epilog_conf-overload_with_complex_types] PASSED [ 49%] tests/test_integration.py::test_integration[epilog_conf-func_with_overload_no_overloads] PASSED [ 49%] tests/test_integration.py::test_integration[epilog_conf-func_literals_long_format] PASSED [ 50%] tests/test_integration.py::test_integration[epilog_conf-func_literals_short_format] PASSED [ 50%] tests/test_integration.py::test_integration[epilog_conf-TestClassAttributeDocs] PASSED [ 50%] tests/test_integration.py::test_integration[epilog_conf-func_with_examples_and_returns_after] PASSED [ 50%] tests/test_integration.py::test_integration[epilog_conf-func_with_parameters_and_stuff_after] PASSED [ 50%] tests/test_integration.py::test_integration[epilog_conf-func_with_rtype_in_weird_spot] PASSED [ 50%] tests/test_integration.py::test_integration[epilog_conf-empty_line_between_parameters] PASSED [ 50%] tests/test_integration.py::test_integration[epilog_conf-func_with_code_block] PASSED [ 51%] tests/test_integration.py::test_integration[epilog_conf-func_with_definition_list] PASSED [ 51%] tests/test_integration.py::test_integration[epilog_conf-decorator_2] PASSED [ 51%] tests/test_integration.py::test_integration[epilog_conf-ParamAndAttributeHaveSameName] PASSED [ 51%] tests/test_integration.py::test_integration[epilog_conf-napoleon_returns] PASSED [ 51%] tests/test_integration.py::test_integration[epilog_conf-google_docstrings] PASSED [ 51%] tests/test_integration.py::test_integration[epilog_conf-docstring_with_multiline_note_after_params] PASSED [ 51%] tests/test_integration.py::test_integration[epilog_conf-docstring_with_bullet_list_after_params] PASSED [ 52%] tests/test_integration.py::test_integration[epilog_conf-docstring_with_definition_list_after_params] PASSED [ 52%] tests/test_integration.py::test_integration[epilog_conf-docstring_with_enum_list_after_params] PASSED [ 52%] tests/test_integration.py::test_integration[epilog_conf-docstring_with_definition_list_after_params_no_blank_line] PASSED [ 52%] tests/test_integration.py::test_integration[epilog_conf-has_typevar] PASSED [ 52%] tests/test_integration.py::test_integration[epilog_conf-has_newtype] PASSED [ 52%] tests/test_integration.py::test_integration[epilog_conf-typehints_use_signature] PASSED [ 52%] tests/test_integration.py::test_integration[epilog_conf-typehints_no_rtype_none] PASSED [ 53%] tests/test_integration.py::test_integration[epilog_conf-docstring_with_multiline_note_after_params_prolog_replace] PASSED [ 53%] tests/test_integration.py::test_integration[epilog_conf-docstring_with_multiline_note_after_params_epilog_replace] PASSED [ 53%] tests/test_integration.py::test_integration[epilog_conf-docstring_with_see_also] PASSED [ 53%] tests/test_integration.py::test_integration[epilog_conf-has_doctest1] PASSED [ 53%] tests/test_integration.py::test_integration[epilog_conf-typehints_formatter_applied_to_signature] PASSED [ 53%] tests/test_integration.py::test_integration[bothlog_conf-get_local_function] PASSED [ 54%] tests/test_integration.py::test_integration[bothlog_conf-Class] PASSED [ 54%] tests/test_integration.py::test_integration[bothlog_conf-DummyException] PASSED [ 54%] tests/test_integration.py::test_integration[bothlog_conf-function] PASSED [ 54%] tests/test_integration.py::test_integration[bothlog_conf-function_with_starred_documentation_param_names] PASSED [ 54%] tests/test_integration.py::test_integration[bothlog_conf-function_with_escaped_default] PASSED [ 54%] tests/test_integration.py::test_integration[bothlog_conf-function_with_unresolvable_annotation] PASSED [ 54%] tests/test_integration.py::test_integration[bothlog_conf-function_with_typehint_comment] PASSED [ 55%] tests/test_integration.py::test_integration[bothlog_conf-ClassWithTypehints] PASSED [ 55%] tests/test_integration.py::test_integration[bothlog_conf-function_with_typehint_comment_not_inline] PASSED [ 55%] tests/test_integration.py::test_integration[bothlog_conf-ClassWithTypehintsNotInline] PASSED [ 55%] tests/test_integration.py::test_integration[bothlog_conf-undocumented_function] PASSED [ 55%] tests/test_integration.py::test_integration[bothlog_conf-DataClass] PASSED [ 55%] tests/test_integration.py::test_integration[bothlog_conf-Decorator] PASSED [ 55%] tests/test_integration.py::test_integration[bothlog_conf-mocked_import] PASSED [ 56%] tests/test_integration.py::test_integration[bothlog_conf-func_with_examples] PASSED [ 56%] tests/test_integration.py::test_integration[bothlog_conf-func_with_overload] PASSED [ 56%] tests/test_integration.py::test_integration[bothlog_conf-overload_with_complex_types] PASSED [ 56%] tests/test_integration.py::test_integration[bothlog_conf-func_with_overload_no_overloads] PASSED [ 56%] tests/test_integration.py::test_integration[bothlog_conf-func_literals_long_format] PASSED [ 56%] tests/test_integration.py::test_integration[bothlog_conf-func_literals_short_format] PASSED [ 57%] tests/test_integration.py::test_integration[bothlog_conf-TestClassAttributeDocs] PASSED [ 57%] tests/test_integration.py::test_integration[bothlog_conf-func_with_examples_and_returns_after] PASSED [ 57%] tests/test_integration.py::test_integration[bothlog_conf-func_with_parameters_and_stuff_after] PASSED [ 57%] tests/test_integration.py::test_integration[bothlog_conf-func_with_rtype_in_weird_spot] PASSED [ 57%] tests/test_integration.py::test_integration[bothlog_conf-empty_line_between_parameters] PASSED [ 57%] tests/test_integration.py::test_integration[bothlog_conf-func_with_code_block] PASSED [ 57%] tests/test_integration.py::test_integration[bothlog_conf-func_with_definition_list] PASSED [ 58%] tests/test_integration.py::test_integration[bothlog_conf-decorator_2] PASSED [ 58%] tests/test_integration.py::test_integration[bothlog_conf-ParamAndAttributeHaveSameName] PASSED [ 58%] tests/test_integration.py::test_integration[bothlog_conf-napoleon_returns] PASSED [ 58%] tests/test_integration.py::test_integration[bothlog_conf-google_docstrings] PASSED [ 58%] tests/test_integration.py::test_integration[bothlog_conf-docstring_with_multiline_note_after_params] PASSED [ 58%] tests/test_integration.py::test_integration[bothlog_conf-docstring_with_bullet_list_after_params] PASSED [ 58%] tests/test_integration.py::test_integration[bothlog_conf-docstring_with_definition_list_after_params] PASSED [ 59%] tests/test_integration.py::test_integration[bothlog_conf-docstring_with_enum_list_after_params] PASSED [ 59%] tests/test_integration.py::test_integration[bothlog_conf-docstring_with_definition_list_after_params_no_blank_line] PASSED [ 59%] tests/test_integration.py::test_integration[bothlog_conf-has_typevar] PASSED [ 59%] tests/test_integration.py::test_integration[bothlog_conf-has_newtype] PASSED [ 59%] tests/test_integration.py::test_integration[bothlog_conf-typehints_use_signature] PASSED [ 59%] tests/test_integration.py::test_integration[bothlog_conf-typehints_no_rtype_none] PASSED [ 60%] tests/test_integration.py::test_integration[bothlog_conf-docstring_with_multiline_note_after_params_prolog_replace] PASSED [ 60%] tests/test_integration.py::test_integration[bothlog_conf-docstring_with_multiline_note_after_params_epilog_replace] PASSED [ 60%] tests/test_integration.py::test_integration[bothlog_conf-docstring_with_see_also] PASSED [ 60%] tests/test_integration.py::test_integration[bothlog_conf-has_doctest1] PASSED [ 60%] tests/test_integration.py::test_integration[bothlog_conf-typehints_formatter_applied_to_signature] PASSED [ 60%] tests/test_integration_autodoc_type_aliases.py::test_integration[default_conf-f] PASSED [ 60%] tests/test_integration_autodoc_type_aliases.py::test_integration[default_conf-g] PASSED [ 61%] tests/test_integration_autodoc_type_aliases.py::test_integration[default_conf-function] PASSED [ 61%] tests/test_integration_issue_384.py::test_integration[default_conf-function] PASSED [ 61%] tests/test_integration_issue_572.py::test_forward_ref_builds_without_errors PASSED [ 61%] tests/test_integration_issue_572.py::test_get_type_hint_uses_annotationlib_on_name_error PASSED [ 61%] tests/test_integration_issue_572.py::test_get_type_hint_falls_back_to_dunder_annotations_before_314 SKIPPED [ 61%] tests/test_integration_issue_599.py::test_integration[default_conf-get_user] PASSED [ 61%] tests/test_integration_issue_599.py::test_integration[default_conf-process_request] PASSED [ 62%] tests/test_integration_issue_599.py::test_eager_annotations PASSED [ 62%] tests/test_integration_issue_599.py::test_format_annotation_type_alias_without_env PASSED [ 62%] tests/test_integration_issue_599.py::test_format_annotation_crossref_alias_emits_type_role PASSED [ 62%] tests/test_integration_issue_599.py::test_format_annotation_crossref_alias_fully_qualified PASSED [ 62%] tests/test_integration_issue_599.py::test_format_annotation_non_crossref_alias_returns_name PASSED [ 62%] tests/test_integration_issue_599.py::test_format_annotation_type_alias_found_in_py_domain PASSED [ 63%] tests/test_intersphinx_mapping.py::test_build_type_mapping_threading_local PASSED [ 63%] tests/test_intersphinx_mapping.py::test_build_type_mapping_no_intersphinx_inventory PASSED [ 63%] tests/test_intersphinx_mapping.py::test_build_type_mapping_skips_already_documented PASSED [ 63%] tests/test_intersphinx_mapping.py::test_build_type_mapping_skips_unimportable PASSED [ 63%] tests/test_intersphinx_mapping.py::test_build_type_mapping_skips_missing_attr PASSED [ 63%] tests/test_intersphinx_mapping.py::test_build_type_mapping_skips_no_qualname PASSED [ 63%] tests/test_intersphinx_mapping.py::test_build_type_mapping_skips_same_path PASSED [ 64%] tests/test_intersphinx_mapping.py::test_build_type_mapping_multiple_roles PASSED [ 64%] tests/test_intersphinx_mapping.py::test_build_type_mapping_skips_builtin_alias PASSED [ 64%] tests/test_intersphinx_mapping.py::test_format_annotation_applies_intersphinx_mapping PASSED [ 64%] tests/test_intersphinx_mapping.py::test_format_annotation_without_mapping PASSED [ 64%] tests/test_intersphinx_mapping.py::test_build_type_mapping_skips_union_alias[X|Y] PASSED [ 64%] tests/test_intersphinx_mapping.py::test_build_type_mapping_skips_union_alias[Union[X,Y]] PASSED [ 64%] tests/test_method_lookup.py::test_method_lookup_does_not_crash PASSED [ 65%] tests/test_pep695.py::test_pep695_class_type_params PASSED [ 65%] tests/test_pep695.py::test_pep695_class_multiple_type_params PASSED [ 65%] tests/test_pep695.py::test_pep695_function_type_params PASSED [ 65%] tests/test_pep695.py::test_pep695_type_alias_in_function_undocumented PASSED [ 65%] tests/test_pep695.py::test_pep695_type_alias_in_function_documented PASSED [ 65%] tests/test_pep695.py::test_pep695_type_alias_in_method_undocumented PASSED [ 66%] tests/test_pep695.py::test_pep695_type_alias_in_method_documented PASSED [ 66%] tests/test_pep695.py::test_pep695_external_type_alias PASSED [ 66%] tests/test_resolver/test_attrs.py::test_backfill_classic_attrs PASSED [ 66%] tests/test_resolver/test_attrs.py::test_backfill_does_not_override_existing_annotations PASSED [ 66%] tests/test_resolver/test_attrs.py::test_backfill_modern_attrs PASSED [ 66%] tests/test_resolver/test_attrs.py::test_backfill_non_attrs_class PASSED [ 66%] tests/test_resolver/test_attrs.py::test_backfill_without_attrs_installed PASSED [ 67%] tests/test_resolver/test_attrs.py::test_backfill_classic_attrs_creates_annotations_when_missing PASSED [ 67%] tests/test_resolver/test_attrs.py::test_sphinx_build_nested_attrs_forward_ref PASSED [ 67%] tests/test_resolver/test_attrs.py::test_sphinx_build_attrs_types PASSED [ 67%] tests/test_resolver/test_instance_vars.py::test_basic_instance_var PASSED [ 67%] tests/test_resolver/test_instance_vars.py::test_multiple_instance_vars PASSED [ 67%] tests/test_resolver/test_instance_vars.py::test_no_annotations_in_init PASSED [ 67%] tests/test_resolver/test_instance_vars.py::test_nested_function_annotations_ignored PASSED [ 68%] tests/test_resolver/test_instance_vars.py::test_complex_types[list] PASSED [ 68%] tests/test_resolver/test_instance_vars.py::test_complex_types[dict] PASSED [ 68%] tests/test_resolver/test_instance_vars.py::test_complex_types[optional] PASSED [ 68%] tests/test_resolver/test_instance_vars.py::test_no_instance_vars[no_init] PASSED [ 68%] tests/test_resolver/test_instance_vars.py::test_no_instance_vars[object_itself] PASSED [ 68%] tests/test_resolver/test_no_type_check.py::test_no_type_check_function_still_resolves_hints PASSED [ 69%] tests/test_resolver/test_no_type_check.py::test_no_type_check_method_still_resolves_hints PASSED [ 69%] tests/test_resolver/test_no_type_check.py::test_no_type_check_resolves_future_string_annotations PASSED [ 69%] tests/test_resolver/test_stubs.py::test_find_stub_path_locates_sibling_pyi PASSED [ 69%] tests/test_resolver/test_stubs.py::test_find_stub_path_returns_none_for_no_stub PASSED [ 69%] tests/test_resolver/test_stubs.py::test_find_stub_path_returns_none_for_no_module PASSED [ 69%] tests/test_resolver/test_stubs.py::test_find_stub_path_returns_none_when_getfile_fails PASSED [ 69%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[cpython_linux] PASSED [ 70%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[cpython_darwin] PASSED [ 70%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[cpython_free_threaded] PASSED [ 70%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[cpython_debug] PASSED [ 70%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[cpython_musl] PASSED [ 70%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[abi3_stable] PASSED [ 70%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[simple_so] PASSED [ 70%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[windows_pyd] PASSED [ 71%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[windows_tagged_pyd] PASSED [ 71%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[cygwin_dll] PASSED [ 71%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module[pypy] PASSED [ 71%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module_no_stub PASSED [ 71%] tests/test_resolver/test_stubs.py::test_find_stub_path_extension_module_package_fallback PASSED [ 71%] tests/test_resolver/test_stubs.py::test_find_stub_path_package_init_pyi PASSED [ 72%] tests/test_resolver/test_stubs.py::test_find_stub_path_package_no_init_pyi PASSED [ 72%] tests/test_resolver/test_stubs.py::test_parse_stub_ast_valid_file PASSED [ 72%] tests/test_resolver/test_stubs.py::test_parse_stub_ast_caches_result PASSED [ 72%] tests/test_resolver/test_stubs.py::test_parse_stub_ast_caches_none_for_bad_syntax PASSED [ 72%] tests/test_resolver/test_stubs.py::test_parse_stub_ast_returns_none_for_missing_file PASSED [ 72%] tests/test_resolver/test_stubs.py::test_find_ast_node[top_level_function] PASSED [ 72%] tests/test_resolver/test_stubs.py::test_find_ast_node[nested_class_method] PASSED [ 73%] tests/test_resolver/test_stubs.py::test_find_ast_node[class] PASSED [ 73%] tests/test_resolver/test_stubs.py::test_find_ast_node[missing] PASSED [ 73%] tests/test_resolver/test_stubs.py::test_extract_func_annotations[basic] PASSED [ 73%] tests/test_resolver/test_stubs.py::test_extract_func_annotations[no_return] PASSED [ 73%] tests/test_resolver/test_stubs.py::test_extract_func_annotations[async] PASSED [ 73%] tests/test_resolver/test_stubs.py::test_extract_func_annotations[skips_unannotated] PASSED [ 73%] tests/test_resolver/test_stubs.py::test_extract_class_annotations[basic] PASSED [ 74%] tests/test_resolver/test_stubs.py::test_extract_class_annotations[ignores_non_name_targets] PASSED [ 74%] tests/test_resolver/test_stubs.py::test_extract_annotations_from_stub[function] PASSED [ 74%] tests/test_resolver/test_stubs.py::test_extract_annotations_from_stub[class] PASSED [ 74%] tests/test_resolver/test_stubs.py::test_extract_annotations_from_stub[class_new] PASSED [ 74%] tests/test_resolver/test_stubs.py::test_extract_annotations_from_stub[missing_node] PASSED [ 74%] tests/test_resolver/test_stubs.py::test_extract_annotations_from_stub[unsupported_node_type] PASSED [ 75%] tests/test_resolver/test_stubs.py::test_extract_annotations_from_stub_no_qualname PASSED [ 75%] tests/test_resolver/test_stubs.py::test_backfill_from_stub[function] PASSED [ 75%] tests/test_resolver/test_stubs.py::test_backfill_from_stub[nested_class] PASSED [ 75%] tests/test_resolver/test_stubs.py::test_backfill_from_stub[class_new] PASSED [ 75%] tests/test_resolver/test_stubs.py::test_backfill_from_stub[async_function] PASSED [ 75%] tests/test_resolver/test_stubs.py::test_backfill_from_stub[typing_imports] PASSED [ 75%] tests/test_resolver/test_stubs.py::test_backfill_from_stub_no_stub PASSED [ 76%] tests/test_resolver/test_stubs.py::test_resolve_stub_imports[basic_import] PASSED [ 76%] tests/test_resolver/test_stubs.py::test_resolve_stub_imports[import_as] PASSED [ 76%] tests/test_resolver/test_stubs.py::test_resolve_stub_imports[dotted_import] PASSED [ 76%] tests/test_resolver/test_stubs.py::test_resolve_stub_imports[from_import] PASSED [ 76%] tests/test_resolver/test_stubs.py::test_resolve_stub_imports[from_import_as] PASSED [ 76%] tests/test_resolver/test_stubs.py::test_resolve_stub_imports[star_import_skipped] PASSED [ 76%] tests/test_resolver/test_stubs.py::test_resolve_stub_imports[missing_module_skipped] PASSED [ 77%] tests/test_resolver/test_stubs.py::test_resolve_stub_imports[missing_attr_skipped] PASSED [ 77%] tests/test_resolver/test_stubs.py::test_extract_type_alias_names[typing_TypeAlias] PASSED [ 77%] tests/test_resolver/test_stubs.py::test_extract_type_alias_names[qualified_TypeAlias] PASSED [ 77%] tests/test_resolver/test_stubs.py::test_extract_type_alias_names[typing_extensions_TypeAlias] PASSED [ 77%] tests/test_resolver/test_stubs.py::test_extract_type_alias_names[qualified_typing_extensions_TypeAlias] PASSED [ 77%] tests/test_resolver/test_stubs.py::test_extract_type_alias_names[type_statement] PASSED [ 77%] tests/test_resolver/test_stubs.py::test_extract_type_alias_names[no_aliases] PASSED [ 78%] tests/test_resolver/test_stubs.py::test_get_stub_context_returns_aliases PASSED [ 78%] tests/test_resolver/test_stubs.py::test_get_stub_context_returns_empty_for_no_stub PASSED [ 78%] tests/test_resolver/test_stubs.py::test_get_stub_context_returns_empty_for_bad_syntax PASSED [ 78%] tests/test_resolver/test_stubs.py::test_sphinx_build_uses_stub_types PASSED [ 78%] tests/test_resolver/test_stubs.py::test_sphinx_build_class_new_uses_param_not_class_var PASSED [ 78%] tests/test_resolver/test_stubs.py::test_sphinx_build_stub_types_produce_crossrefs PASSED [ 79%] tests/test_resolver/test_stubs.py::test_find_stub_path_falls_back_to_parent_package PASSED [ 79%] tests/test_resolver/test_stubs.py::test_find_stub_owner_returns_parent_module PASSED [ 79%] tests/test_resolver/test_stubs.py::test_find_stub_for_module_returns_none_when_getfile_raises PASSED [ 79%] tests/test_resolver/test_stubs.py::test_get_module_returns_inspected_module PASSED [ 79%] tests/test_resolver/test_stubs.py::test_get_module_falls_back_to_dunder_module PASSED [ 79%] tests/test_resolver/test_stubs.py::test_get_module_falls_back_to_objclass PASSED [ 79%] tests/test_resolver/test_stubs.py::test_get_module_falls_back_to_self_class PASSED [ 80%] tests/test_resolver/test_stubs.py::test_get_module_returns_none_when_all_fail PASSED [ 80%] tests/test_resolver/test_stubs.py::test_get_stub_context_includes_owner_module_vars PASSED [ 80%] tests/test_resolver/test_stubs.py::test_resolve_import_from[absolute] PASSED [ 80%] tests/test_resolver/test_stubs.py::test_resolve_import_from[rel_level1] PASSED [ 80%] tests/test_resolver/test_stubs.py::test_resolve_import_from[rel_level1_bare] PASSED [ 80%] tests/test_resolver/test_stubs.py::test_resolve_import_from[rel_level2] PASSED [ 80%] tests/test_resolver/test_stubs.py::test_resolve_import_from[rel_no_package] PASSED [ 81%] tests/test_resolver/test_stubs.py::test_resolve_import_from_level_beyond_package PASSED [ 81%] tests/test_resolver/test_stubs.py::test_resolve_stub_imports_handles_conditional_blocks PASSED [ 81%] tests/test_resolver/test_stubs.py::test_resolve_stub_definitions_evaluates_typevars_and_classes PASSED [ 81%] tests/test_resolver/test_stubs.py::test_resolve_stub_imports_relative PASSED [ 81%] tests/test_resolver/test_stubs.py::test_get_stub_context_resolves_relative_imports PASSED [ 81%] tests/test_resolver/test_stubs.py::test_stub_owner_package[package_with_attr] PASSED [ 82%] tests/test_resolver/test_stubs.py::test_stub_owner_package[native_module_no_attr] PASSED [ 82%] tests/test_resolver/test_stubs.py::test_stub_owner_package[native_subpackage_no_attr] PASSED [ 82%] tests/test_resolver/test_stubs.py::test_stub_owner_package[top_level_module] PASSED [ 82%] tests/test_resolver/test_stubs.py::test_stub_owner_package[deep_module] PASSED [ 82%] tests/test_resolver/test_stubs.py::test_find_native_submodule_stub_sibling_pyi PASSED [ 82%] tests/test_resolver/test_stubs.py::test_find_native_submodule_stub_subpackage_init_pyi PASSED [ 82%] tests/test_resolver/test_stubs.py::test_find_native_submodule_stub_returns_none_without_parent[no_dot_in_name] PASSED [ 83%] tests/test_resolver/test_stubs.py::test_find_native_submodule_stub_returns_none_without_parent[parent_missing_in_sys_modules] PASSED [ 83%] tests/test_resolver/test_stubs.py::test_find_native_submodule_stub_parent_without_path PASSED [ 83%] tests/test_resolver/test_stubs.py::test_find_native_submodule_stub_no_matching_stub PASSED [ 83%] tests/test_resolver/test_stubs.py::test_find_stub_for_module_uses_native_submodule_fallback PASSED [ 83%] tests/test_resolver/test_stubs.py::test_native_submodule_has_no_file PASSED [ 83%] tests/test_resolver/test_stubs.py::test_find_stub_owner_resolves_native_submodule_stub PASSED [ 83%] tests/test_resolver/test_stubs.py::test_backfill_from_stub_for_native_submodule PASSED [ 84%] tests/test_resolver/test_stubs.py::test_get_stub_context_resolves_relative_imports_for_native_submodule PASSED [ 84%] tests/test_resolver/test_stubs.py::test_native_function_signature_from_clinic_docstring PASSED [ 84%] tests/test_resolver/test_stubs.py::test_sphinx_build_resolves_param_and_return_for_native_submodule PASSED [ 84%] tests/test_resolver/test_stubs.py::test_sphinx_build_falls_back_to_return_only_without_signature PASSED [ 84%] tests/test_resolver/test_stubs.py::test_sphinx_build_documents_native_class PASSED [ 84%] tests/test_resolver/test_type_comments.py::test__normalize_source_lines_async_def PASSED [ 85%] tests/test_resolver/test_type_comments.py::test__normalize_source_lines_def_starting_decorator_parameter PASSED [ 85%] tests/test_resolver/test_type_comments.py::test_syntax_error_backfill PASSED [ 85%] tests/test_resolver/test_type_comments.py::test__normalize_source_lines_no_def PASSED [ 85%] tests/test_resolver/test_type_comments.py::test__split_type_comment_args_empty PASSED [ 85%] tests/test_resolver/test_type_comments.py::test__split_type_comment_args_single PASSED [ 85%] tests/test_resolver/test_type_comments.py::test__split_type_comment_args_multiple PASSED [ 85%] tests/test_resolver/test_type_comments.py::test__split_type_comment_args_nested_brackets PASSED [ 86%] tests/test_resolver/test_type_comments.py::test__split_type_comment_args_strips_stars PASSED [ 86%] tests/test_resolver/test_type_comments.py::test_backfill_type_hints_no_type_comment_attr PASSED [ 86%] tests/test_resolver/test_type_comments.py::test_backfill_type_hints_multi_child_ast PASSED [ 86%] tests/test_resolver/test_type_comments.py::test_backfill_type_hints_with_type_comment PASSED [ 86%] tests/test_resolver/test_type_comments.py::test_backfill_type_hints_type_comment_self_insertion PASSED [ 86%] tests/test_resolver/test_type_comments.py::test_backfill_type_hints_type_comment_mismatch PASSED [ 86%] tests/test_resolver/test_type_comments.py::test_backfill_type_hints_posonly_args PASSED [ 87%] tests/test_resolver/test_type_comments.py::test_backfill_type_hints_empty_return PASSED [ 87%] tests/test_resolver/test_type_comments.py::test_backfill_type_hints_unparseable_type_comment PASSED [ 87%] tests/test_resolver/test_type_comments.py::test_backfill_type_hints_inline_type_comments PASSED [ 87%] tests/test_resolver/test_type_comments.py::test_multi_child_ast_warning_includes_location PASSED [ 87%] tests/test_resolver/test_type_hints.py::test_no_source_code_type_guard PASSED [ 87%] tests/test_resolver/test_type_hints.py::test_future_annotations_not_imported PASSED [ 88%] tests/test_resolver/test_type_hints.py::test_future_annotations_imported PASSED [ 88%] tests/test_resolver/test_type_hints.py::test_should_skip_module_type PASSED [ 88%] tests/test_resolver/test_type_hints.py::test_should_skip_no_globals PASSED [ 88%] tests/test_resolver/test_type_hints.py::test_should_skip_builtin_module PASSED [ 88%] tests/test_resolver/test_type_hints.py::test_get_type_hint_recursion_error PASSED [ 88%] tests/test_resolver/test_type_hints.py::test_execute_guarded_code_catches_exception PASSED [ 88%] tests/test_resolver/test_type_hints.py::test_run_guarded_import_no_exc_name PASSED [ 89%] tests/test_resolver/test_type_hints.py::test_forward_ref_warning_includes_module PASSED [ 89%] tests/test_resolver/test_type_hints.py::test_guarded_import_warning_includes_module PASSED [ 89%] tests/test_resolver/test_type_hints.py::test_build_localns_adds_ancestor_classes PASSED [ 89%] tests/test_resolver/test_type_hints.py::test_build_localns_no_qualname PASSED [ 89%] tests/test_resolver/test_type_hints.py::test_build_localns_preserves_existing_localns PASSED [ 89%] tests/test_resolver/test_type_hints.py::test_resolve_string_annotations_keeps_unresolvable_strings PASSED [ 89%] tests/test_resolver/test_type_hints.py::test_resolve_string_annotations_passes_non_strings PASSED [ 90%] tests/test_resolver/test_type_hints.py::test_get_all_type_hints_resolves_stub_annotations_for_c_extension PASSED [ 90%] tests/test_resolver/test_type_hints.py::test_get_all_type_hints_preserves_stub_type_aliases PASSED [ 90%] tests/test_resolver/test_type_hints.py::test_get_all_type_hints_resolves_c_extension_class_new PASSED [ 90%] tests/test_resolver/test_type_hints.py::test_stub_annotations_not_polluted_on_repeated_calls PASSED [ 90%] tests/test_resolver/test_util.py::test_get_obj_location_with_function PASSED [ 90%] tests/test_resolver/test_util.py::test_get_obj_location_with_class PASSED [ 91%] tests/test_resolver/test_util.py::test_get_obj_location_non_inspectable PASSED [ 91%] tests/test_resolver/test_util.py::test_get_obj_location_no_source_lines PASSED [ 91%] tests/test_resolver/test_util.py::test_collect_documented_type_aliases_no_annotations PASSED [ 91%] tests/test_resolver/test_util.py::test_collect_documented_type_aliases_preserves_eager_path PASSED [ 91%] tests/test_resolver/test_util.py::test_collect_documented_type_aliases_ignores_other_module_types PASSED [ 91%] tests/test_resolver/test_util.py::test_collect_documented_type_aliases_ignores_unqualified_names PASSED [ 91%] tests/test_safe_parse.py::test_extension_directive_not_executed_during_snippet_parse PASSED [ 92%] tests/test_sphinx_autodoc_typehints.py::test_process_docstring_slot_wrapper PASSED [ 92%] tests/test_sphinx_autodoc_typehints.py::test_process_docstring_wrapper_loop PASSED [ 92%] tests/test_sphinx_autodoc_typehints.py::test_process_signature_wrapper_loop PASSED [ 92%] tests/test_sphinx_autodoc_typehints.py::test_always_document_param_types[doc_param_type] PASSED [ 92%] tests/test_sphinx_autodoc_typehints.py::test_always_document_param_types[no_doc_param_type] PASSED [ 92%] tests/test_sphinx_autodoc_typehints.py::test_always_document_param_types_with_defaults_braces_after PASSED [ 92%] tests/test_sphinx_autodoc_typehints.py::test_namedtuple_new_no_warning PASSED [ 93%] tests/test_sphinx_autodoc_typehints.py::test_namedtuple_no_forward_ref_warning PASSED [ 93%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_future_annotations PASSED [ 93%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_default_role PASSED [ 93%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_defaults[None-("int") -- bar] PASSED [ 93%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_defaults[comma-("int", default: "1") -- bar] PASSED [ 93%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_defaults[braces-("int" (default: "1")) -- bar] PASSED [ 94%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_defaults[braces-after-("int") -- bar (default: "1")] PASSED [ 94%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_defaults[comma-after-expected4] PASSED [ 94%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_formatter[None-expected0] PASSED [ 94%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_formatter[-expected1] PASSED [ 94%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_formatter[some string-expected2] PASSED [ 94%] tests/test_sphinx_autodoc_typehints.py::test_typehints_formatter_builds_without_config_cache_warning PASSED [ 94%] tests/test_sphinx_autodoc_typehints.py::test_default_no_signature[cmp_to_key] PASSED [ 95%] tests/test_sphinx_autodoc_typehints.py::test_default_no_signature[1] PASSED [ 95%] tests/test_sphinx_autodoc_typehints.py::test_bound_class_method[from_magic] PASSED [ 95%] tests/test_sphinx_autodoc_typehints.py::test_bound_class_method[method] PASSED [ 95%] tests/test_sphinx_autodoc_typehints.py::test_resolve_typing_guard_imports PASSED [ 95%] tests/test_sphinx_autodoc_typehints.py::test_resolve_typing_guard_attrs_imports PASSED [ 95%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_formatter_no_use_rtype PASSED [ 95%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_with_use_signature PASSED [ 96%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_with_use_signature_return PASSED [ 96%] tests/test_sphinx_autodoc_typehints.py::test_sphinx_output_with_use_signature_and_return PASSED [ 96%] tests/test_sphinx_autodoc_typehints.py::test_default_annotation_without_typehints PASSED [ 96%] tests/test_sphinx_autodoc_typehints.py::test_wrong_module_path PASSED [ 96%] tests/test_sphinx_autodoc_typehints.py::test_ivar_type_injected PASSED [ 96%] tests/test_sphinx_autodoc_typehints.py::test_ivar_vartype_inserted_before_ivar PASSED [ 97%] tests/test_sphinx_autodoc_typehints.py::test_ivar_vartype_not_duplicated[existing_vartype] PASSED [ 97%] tests/test_sphinx_autodoc_typehints.py::test_ivar_vartype_not_duplicated[inline_type] PASSED [ 97%] tests/test_sphinx_autodoc_typehints.py::test_ivar_without_annotation_no_vartype PASSED [ 97%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_only_for_class PASSED [ 97%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_skips_malformed_line[single_space_empty_name] PASSED [ 97%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_skips_malformed_line[double_space_empty_name] PASSED [ 97%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_skips_malformed_line[triple_space_empty_name] PASSED [ 98%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_skips_malformed_line[trailing_space_no_colon] PASSED [ 98%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_skips_malformed_line[no_closing_colon] PASSED [ 98%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_skips_malformed_line[no_closing_colon_with_body] PASSED [ 98%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_survives_mixed_malformed_and_valid_lines PASSED [ 98%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_ignores_non_ivar_field[no_space_after_ivar] PASSED [ 98%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_ignores_non_ivar_field[pluralised_ivar] PASSED [ 98%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_accepts_whitespace_variants[tab_separator] PASSED [ 99%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_accepts_whitespace_variants[multi_space_separator] PASSED [ 99%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_accepts_whitespace_variants[multi_space_around_body] PASSED [ 99%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_accepts_parameterised_inline_type[dict_str_int] PASSED [ 99%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_accepts_parameterised_inline_type[callable] PASSED [ 99%] tests/test_sphinx_autodoc_typehints.py::test_ivar_injection_accepts_parameterised_inline_type[tuple_ellipsis] PASSED [ 99%] tests/test_version.py::test_version PASSED [100%] =================================== FAILURES =================================== _____________________ test_format_annotation[EllipsisType] _____________________ inv = Inventory(project='Python', version='3.14', source_type=) annotation = expected_result = ':py:data:`~types.EllipsisType`' @pytest.mark.parametrize(("annotation", "expected_result"), _CASES) def test_format_annotation(inv: Inventory, annotation: Any, expected_result: str) -> None: conf = create_autospec(Config, _annotation_globals=globals(), always_use_bars_union=False) result = format_annotation(annotation, conf) assert result == expected_result if re.match(r"^:py:data:`~typing\.Union`\\\[.*``None``.*]", expected_result): # pragma: <3.14 cover expected_result_not_simplified = expected_result.replace(", ``None``", "") expected_result_not_simplified += ":py:data:`~typing.Optional`\\ \\[" expected_result_not_simplified += "]" conf = create_autospec( Config, simplify_optional_unions=False, _annotation_globals=globals(), always_use_bars_union=False, ) assert format_annotation(annotation, conf) == expected_result_not_simplified if "typing" in expected_result_not_simplified: expected_result_not_simplified = expected_result_not_simplified.replace("~typing", "typing") conf = create_autospec( Config, typehints_fully_qualified=True, simplify_optional_unions=False, _annotation_globals=globals(), ) assert format_annotation(annotation, conf) == expected_result_not_simplified if "typing" in expected_result or __name__ in expected_result: expected_result = expected_result.replace("~typing", "typing") expected_result = expected_result.replace("~collections.abc", "collections.abc") expected_result = expected_result.replace("~numpy", "numpy") expected_result = expected_result.replace("~" + __name__, __name__) conf = create_autospec( Config, typehints_fully_qualified=True, _annotation_globals=globals(), always_use_bars_union=False, ) assert format_annotation(annotation, conf) == expected_result if ( result.count(":py:") == 1 and ("typing" in result or "types" in result) and (match := re.match(r"^:py:(?Pclass|data|func):`~(?P[^`]+)`", result)) ): name = match.group("name") expected_role = next((o.role for o in inv.objects if o.name == name), None) if expected_role == "function": # pragma: no cover -- Python docs inventory always uses "func" expected_role = "func" > assert match.group("role") == expected_role E AssertionError: assert 'data' == 'class' E E - class E + data tests/test_annotations.py:441: AssertionError __________________ test_format_annotation[NotImplementedType] __________________ inv = Inventory(project='Python', version='3.14', source_type=) annotation = expected_result = ':py:data:`~types.NotImplementedType`' @pytest.mark.parametrize(("annotation", "expected_result"), _CASES) def test_format_annotation(inv: Inventory, annotation: Any, expected_result: str) -> None: conf = create_autospec(Config, _annotation_globals=globals(), always_use_bars_union=False) result = format_annotation(annotation, conf) assert result == expected_result if re.match(r"^:py:data:`~typing\.Union`\\\[.*``None``.*]", expected_result): # pragma: <3.14 cover expected_result_not_simplified = expected_result.replace(", ``None``", "") expected_result_not_simplified += ":py:data:`~typing.Optional`\\ \\[" expected_result_not_simplified += "]" conf = create_autospec( Config, simplify_optional_unions=False, _annotation_globals=globals(), always_use_bars_union=False, ) assert format_annotation(annotation, conf) == expected_result_not_simplified if "typing" in expected_result_not_simplified: expected_result_not_simplified = expected_result_not_simplified.replace("~typing", "typing") conf = create_autospec( Config, typehints_fully_qualified=True, simplify_optional_unions=False, _annotation_globals=globals(), ) assert format_annotation(annotation, conf) == expected_result_not_simplified if "typing" in expected_result or __name__ in expected_result: expected_result = expected_result.replace("~typing", "typing") expected_result = expected_result.replace("~collections.abc", "collections.abc") expected_result = expected_result.replace("~numpy", "numpy") expected_result = expected_result.replace("~" + __name__, __name__) conf = create_autospec( Config, typehints_fully_qualified=True, _annotation_globals=globals(), always_use_bars_union=False, ) assert format_annotation(annotation, conf) == expected_result if ( result.count(":py:") == 1 and ("typing" in result or "types" in result) and (match := re.match(r"^:py:(?Pclass|data|func):`~(?P[^`]+)`", result)) ): name = match.group("name") expected_role = next((o.role for o in inv.objects if o.name == name), None) if expected_role == "function": # pragma: no cover -- Python docs inventory always uses "func" expected_role = "func" > assert match.group("role") == expected_role E AssertionError: assert 'data' == 'class' E E - class E + data tests/test_annotations.py:441: AssertionError =========================== short test summary info ============================ FAILED tests/test_annotations.py::test_format_annotation[EllipsisType] - Asse... FAILED tests/test_annotations.py::test_format_annotation[NotImplementedType] ============= 2 failed, 665 passed, 3 skipped in 272.90s (0:04:32) ============= ==> ERROR: A failure occurred in check().  Aborting... ]3008;end=9a98420502544c268fe4b0ec56077f6c\[!p]104\[?7h]3008;end=5704555ac91444a1bffd630b6d570dae\==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-4/build [?25h[?25h[?25hreceiving incremental file list python-sphinx-autodoc-typehints-3.10.3-1-riscv64-build.log python-sphinx-autodoc-typehints-3.10.3-1-riscv64-check.log sent 62 bytes received 8,325 bytes 5,591.33 bytes/sec total size is 70,028 speedup is 8.35