Warning: Permanently added '2620:52:3:1:dead:beef:cafe:c190' (ED25519) to the list of known hosts. 100 1165k 100 1165k 0 0 12.4M 0 --:--:-- --:--:-- --:--:-- 12.3M INFO: Reading stdout from command: md5sum beartype-0.18.5.tar.gz Running (timeout=18000): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-djljjoiu/python-beartype/python-beartype.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-djljjoiu/python-beartype --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1747420626.430272 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 6.1 starting (python version = 3.13.0, NVR = mock-6.1-1.fc41), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-djljjoiu/python-beartype/python-beartype.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-djljjoiu/python-beartype --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1747420626.430272 -r /var/lib/copr-rpmbuild/results/configs/child.cfg Start(bootstrap): init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish(bootstrap): init plugins Start: init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins INFO: Signal handler active Start: run INFO: Start(/var/lib/copr-rpmbuild/workspace/workdir-djljjoiu/python-beartype/python-beartype.spec) Config(fedora-rawhide-x86_64) Start: clean chroot Finish: clean chroot Mock Version: 6.1 INFO: Mock Version: 6.1 Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1747420626.430272/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata INFO: Guessed host environment type: unknown INFO: Using container image: registry.fedoraproject.org/fedora:rawhide INFO: Pulling image: registry.fedoraproject.org/fedora:rawhide INFO: Tagging container image as mock-bootstrap-ee874008-777b-45c3-97ea-5f55cd593e59 INFO: Checking that 979bcf92ddd7679371d61ce12aeecb158a4789e0cb1b16809a56d93b3686826a image matches host's architecture INFO: Copy content of container 979bcf92ddd7679371d61ce12aeecb158a4789e0cb1b16809a56d93b3686826a to /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1747420626.430272/root INFO: mounting 979bcf92ddd7679371d61ce12aeecb158a4789e0cb1b16809a56d93b3686826a with podman image mount INFO: image 979bcf92ddd7679371d61ce12aeecb158a4789e0cb1b16809a56d93b3686826a as /var/lib/containers/storage/overlay/99c393476ca704ea24d636074f703bf58d495e986de750591f168daa54f7fa99/merged INFO: umounting image 979bcf92ddd7679371d61ce12aeecb158a4789e0cb1b16809a56d93b3686826a (/var/lib/containers/storage/overlay/99c393476ca704ea24d636074f703bf58d495e986de750591f168daa54f7fa99/merged) with podman image umount INFO: Removing image mock-bootstrap-ee874008-777b-45c3-97ea-5f55cd593e59 INFO: Package manager dnf5 detected and used (fallback) INFO: Not updating bootstrap chroot, bootstrap_image_ready=True Start(bootstrap): creating root cache Finish(bootstrap): creating root cache Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1747420626.430272/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Package manager dnf5 detected and used (direct choice) INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-5.99.90-5.fc43.x86_64 rpm-sequoia-1.8.0-1.fc43.x86_64 dnf5-5.2.13.1-2.fc43.x86_64 dnf5-plugins-5.2.13.1-2.fc43.x86_64 Start: installing minimal buildroot with dnf5 Updating and loading repositories: Additional repo http_kojipkgs_fedorapr 100% | 61.8 KiB/s | 3.8 KiB | 00m00s fedora 100% | 539.2 KiB/s | 24.3 KiB | 00m00s Copr repository 100% | 18.7 KiB/s | 1.5 KiB | 00m00s Copr repository 100% | 18.3 MiB/s | 2.9 MiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing group/module packages: bash x86_64 5.2.37-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.2 MiB bzip2 x86_64 1.0.8-20.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 99.3 KiB coreutils x86_64 9.7-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 5.4 MiB cpio x86_64 2.15-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 MiB diffutils x86_64 3.12-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 MiB fedora-release-common noarch 43-0.15 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 20.4 KiB findutils x86_64 1:4.10.0-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 MiB gawk x86_64 5.3.2-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 MiB glibc-minimal-langpack x86_64 2.41.9000-13.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 0.0 B grep x86_64 3.12-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 MiB gzip x86_64 1.13-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 392.9 KiB info x86_64 7.2-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 357.9 KiB patch x86_64 2.8-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 226.8 KiB redhat-rpm-config noarch 343-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 181.5 KiB rpm-build x86_64 5.99.90-5.fc43 copr_base 281.7 KiB sed x86_64 4.9-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 857.3 KiB shadow-utils x86_64 2:4.17.4-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.0 MiB tar x86_64 2:1.35-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 3.0 MiB unzip x86_64 6.0-66.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 390.3 KiB util-linux x86_64 2.41-2.fc43 copr_base 3.5 MiB which x86_64 2.23-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 83.4 KiB xz x86_64 1:5.8.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.3 MiB Installing dependencies: add-determinism x86_64 0.6.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.5 MiB alternatives x86_64 1.33-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 62.2 KiB ansible-srpm-macros noarch 1-17.1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 35.7 KiB audit-libs x86_64 4.0.3-2.fc43 copr_base 347.1 KiB binutils x86_64 2.44-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 25.9 MiB build-reproducibility-srpm-macros noarch 0.6.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 735.0 B bzip2-libs x86_64 1.0.8-20.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 84.6 KiB ca-certificates noarch 2024.2.69_v8.0.401-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.6 MiB coreutils-common x86_64 9.7-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11.3 MiB crypto-policies noarch 20250402-2.git86c0178.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 141.5 KiB curl x86_64 8.14.0~rc1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 473.2 KiB cyrus-sasl-lib x86_64 2.1.28-30.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.3 MiB debugedit x86_64 5.1-6.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 192.7 KiB dwz x86_64 0.15-9.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 291.0 KiB ed x86_64 1.21-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 146.5 KiB efi-srpm-macros noarch 6-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 40.1 KiB elfutils x86_64 0.193-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.9 MiB elfutils-debuginfod-client x86_64 0.193-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 83.9 KiB elfutils-default-yama-scope noarch 0.193-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 KiB elfutils-libelf x86_64 0.193-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.2 MiB elfutils-libs x86_64 0.193-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 683.4 KiB fedora-gpg-keys noarch 43-0.2 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 129.0 KiB fedora-release noarch 43-0.15 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 0.0 B fedora-release-identity-basic noarch 43-0.15 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 664.0 B fedora-repos noarch 43-0.2 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.9 KiB fedora-repos-rawhide noarch 43-0.2 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.2 KiB file x86_64 5.46-1.fc43 copr_base 100.3 KiB file-libs x86_64 5.46-1.fc43 copr_base 11.9 MiB filesystem x86_64 3.18-44.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 112.0 B filesystem-srpm-macros noarch 3.18-44.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 38.2 KiB fonts-srpm-macros noarch 1:2.0.5-21.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 55.8 KiB forge-srpm-macros noarch 0.4.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 38.9 KiB fpc-srpm-macros noarch 1.3-14.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 144.0 B gdb-minimal x86_64 16.3-1.fc43 copr_base 13.2 MiB gdbm-libs x86_64 1:1.23-9.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 129.9 KiB ghc-srpm-macros noarch 1.9.2-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 779.0 B glibc x86_64 2.41.9000-13.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 6.7 MiB glibc-common x86_64 2.41.9000-13.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 MiB glibc-gconv-extra x86_64 2.41.9000-13.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.2 MiB gmp x86_64 1:6.3.0-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 819.2 KiB gnat-srpm-macros noarch 6-7.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 KiB gnupg2 x86_64 2.4.8-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 9.8 MiB gnutls x86_64 3.8.9-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 3.6 MiB go-srpm-macros noarch 3.6.0-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 60.8 KiB gpgverify noarch 2.1-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.7 KiB ima-evm-utils-libs x86_64 1.6.2-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 60.7 KiB jansson x86_64 2.14-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 93.1 KiB json-c x86_64 0.18-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 86.7 KiB kernel-srpm-macros noarch 1.0-25.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 KiB keyutils-libs x86_64 1.6.3-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 58.3 KiB krb5-libs x86_64 1.21.3-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.3 MiB libacl x86_64 2.3.2-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 38.3 KiB libarchive x86_64 3.7.7-4.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 930.6 KiB libassuan x86_64 2.5.7-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 167.8 KiB libattr x86_64 2.5.2-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 27.1 KiB libblkid x86_64 2.41-2.fc43 copr_base 262.4 KiB libbrotli x86_64 1.1.0-6.fc43 copr_base 833.3 KiB libcap x86_64 2.76-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 209.2 KiB libcap-ng x86_64 0.8.5-4.fc43 copr_base 68.9 KiB libcom_err x86_64 1.47.2-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 67.1 KiB libcurl x86_64 8.14.0~rc1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 891.0 KiB libeconf x86_64 0.7.6-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 64.6 KiB libevent x86_64 2.1.12-15.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 903.1 KiB libfdisk x86_64 2.41-2.fc43 copr_base 376.4 KiB libffi x86_64 3.4.8-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 83.0 KiB libfsverity x86_64 1.6-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 32.5 KiB libgcc x86_64 15.1.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 266.6 KiB libgcrypt x86_64 1.11.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 MiB libgomp x86_64 15.1.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 538.5 KiB libgpg-error x86_64 1.55-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 915.3 KiB libidn2 x86_64 2.3.8-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 552.5 KiB libksba x86_64 1.6.7-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 402.5 KiB liblastlog2 x86_64 2.41-2.fc43 copr_base 33.9 KiB libmount x86_64 2.41-2.fc43 copr_base 372.7 KiB libnghttp2 x86_64 1.65.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 162.2 KiB libpkgconf x86_64 2.3.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 78.1 KiB libpsl x86_64 0.21.5-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 76.4 KiB libselinux x86_64 3.8-1.fc43 copr_base 193.1 KiB libsemanage x86_64 3.8-1.fc43 copr_base 304.4 KiB libsepol x86_64 3.8-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 826.0 KiB libsmartcols x86_64 2.41-2.fc43 copr_base 180.5 KiB libssh x86_64 0.11.1-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 565.5 KiB libssh-config noarch 0.11.1-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 277.0 B libstdc++ x86_64 15.1.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.8 MiB libtasn1 x86_64 4.20.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 176.3 KiB libtool-ltdl x86_64 2.5.4-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 70.1 KiB libunistring x86_64 1.1-9.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.7 MiB libusb1 x86_64 1.0.28-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 171.0 KiB libuuid x86_64 2.41-2.fc43 copr_base 37.3 KiB libverto x86_64 0.3.2-10.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 25.4 KiB libxcrypt x86_64 4.4.38-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 284.5 KiB libxml2 x86_64 2.12.10-1.fc43 copr_base 1.7 MiB libzstd x86_64 1.5.7-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 807.8 KiB lua-libs x86_64 5.4.7-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 276.9 KiB lua-srpm-macros noarch 1-15.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.3 KiB lz4-libs x86_64 1.10.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 157.4 KiB mpfr x86_64 4.2.2-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 828.8 KiB ncurses-base noarch 6.5-5.20250125.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 326.8 KiB ncurses-libs x86_64 6.5-5.20250125.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 946.3 KiB nettle x86_64 3.10.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 790.5 KiB npth x86_64 1.8-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 49.6 KiB ocaml-srpm-macros noarch 10-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 KiB openblas-srpm-macros noarch 2-19.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 112.0 B openldap x86_64 2.6.9-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 655.1 KiB openssl-libs x86_64 1:3.5.0-3.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.9 MiB p11-kit x86_64 0.25.5-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.2 MiB p11-kit-trust x86_64 0.25.5-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 395.5 KiB package-notes-srpm-macros noarch 0.5-13.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 KiB pam-libs x86_64 1.7.0-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 126.7 KiB pcre2 x86_64 10.45-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 697.7 KiB pcre2-syntax noarch 10.45-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 273.9 KiB perl-srpm-macros noarch 1-57.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 861.0 B pkgconf x86_64 2.3.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 88.5 KiB pkgconf-m4 noarch 2.3.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 14.4 KiB pkgconf-pkg-config x86_64 2.3.0-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 989.0 B popt x86_64 1.19-8.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 132.8 KiB publicsuffix-list-dafsa noarch 20250116-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 68.5 KiB pyproject-srpm-macros noarch 1.18.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 KiB python-srpm-macros noarch 3.14-5.fc43 copr_base 51.7 KiB qt5-srpm-macros noarch 5.15.16-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 500.0 B qt6-srpm-macros noarch 6.9.0-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 464.0 B readline x86_64 8.2-13.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 485.0 KiB rpm x86_64 5.99.90-5.fc43 copr_base 3.1 MiB rpm-build-libs x86_64 5.99.90-5.fc43 copr_base 264.4 KiB rpm-libs x86_64 5.99.90-5.fc43 copr_base 929.8 KiB rpm-sequoia x86_64 1.8.0-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.5 MiB rpm-sign-libs x86_64 5.99.90-5.fc43 copr_base 39.7 KiB rust-srpm-macros noarch 26.3-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.8 KiB setup noarch 2.15.0-25.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 725.0 KiB sqlite-libs x86_64 3.49.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.5 MiB systemd-libs x86_64 257.5-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.2 MiB systemd-standalone-sysusers x86_64 257.5-5.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 277.3 KiB tpm2-tss x86_64 4.1.3-7.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 MiB tree-sitter-srpm-macros noarch 0.2.4-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.5 KiB util-linux-core x86_64 2.41-2.fc43 copr_base 1.4 MiB xxhash-libs x86_64 0.8.3-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 90.2 KiB xz-libs x86_64 1:5.8.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 217.8 KiB zig-srpm-macros noarch 1-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 KiB zip x86_64 3.0-43.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 698.5 KiB zlib-ng-compat x86_64 2.2.4-2.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 137.6 KiB zstd x86_64 1.5.7-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.7 MiB Installing groups: Buildsystem building group Transaction Summary: Installing: 163 packages Total size of inbound packages is 58 MiB. Need to download 0 B. After this operation, 198 MiB extra will be used (install 198 MiB, remove 0 B). [ 1/163] tar-2:1.35-5.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 2/163] bzip2-0:1.0.8-20.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 3/163] redhat-rpm-config-0:343-5.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 4/163] rpm-build-0:5.99.90-5.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 5/163] unzip-0:6.0-66.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 6/163] cpio-0:2.15-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 7/163] which-0:2.23-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 8/163] bash-0:5.2.37-3.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 9/163] coreutils-0:9.7-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 10/163] grep-0:3.12-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 11/163] patch-0:2.8-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 12/163] sed-0:4.9-4.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 13/163] shadow-utils-2:4.17.4-1.fc43. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 14/163] util-linux-0:2.41-2.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 15/163] diffutils-0:3.12-2.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 16/163] fedora-release-common-0:43-0. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 17/163] findutils-1:4.10.0-5.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 18/163] gawk-0:5.3.2-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 19/163] glibc-minimal-langpack-0:2.41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 20/163] gzip-0:1.13-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 21/163] info-0:7.2-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 22/163] xz-1:5.8.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 23/163] libblkid-0:2.41-2.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 24/163] libfdisk-0:2.41-2.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 25/163] liblastlog2-0:2.41-2.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 26/163] libmount-0:2.41-2.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 27/163] libsmartcols-0:2.41-2.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 28/163] libuuid-0:2.41-2.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 29/163] util-linux-core-0:2.41-2.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 30/163] filesystem-0:3.18-44.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 31/163] glibc-0:2.41.9000-13.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 32/163] libgcc-0:15.1.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 33/163] libselinux-0:3.8-1.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 34/163] libxcrypt-0:4.4.38-7.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 35/163] ncurses-libs-0:6.5-5.20250125 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 36/163] systemd-libs-0:257.5-5.fc43.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 37/163] audit-libs-0:4.0.3-2.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 38/163] libcap-ng-0:0.8.5-4.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 39/163] pam-libs-0:1.7.0-4.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 40/163] readline-0:8.2-13.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 41/163] zlib-ng-compat-0:2.2.4-2.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 42/163] binutils-0:2.44-3.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 43/163] debugedit-0:5.1-6.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 44/163] elfutils-0:0.193-2.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 45/163] elfutils-libelf-0:0.193-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 46/163] file-0:5.46-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 47/163] file-libs-0:5.46-1.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 48/163] libarchive-0:3.7.7-4.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 49/163] libstdc++-0:15.1.1-1.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 50/163] pkgconf-pkg-config-0:2.3.0-2. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 51/163] popt-0:1.19-8.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 52/163] rpm-0:5.99.90-5.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 53/163] rpm-build-libs-0:5.99.90-5.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 54/163] rpm-libs-0:5.99.90-5.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 55/163] zstd-0:1.5.7-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 56/163] curl-0:8.14.0~rc1-1.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 57/163] libsepol-0:3.8-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 58/163] pcre2-0:10.45-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 59/163] sqlite-libs-0:3.49.1-1.fc43.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 60/163] lz4-libs-0:1.10.0-2.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 61/163] xz-libs-1:5.8.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 62/163] bzip2-libs-0:1.0.8-20.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 63/163] libacl-0:2.3.2-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 64/163] libcap-0:2.76-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 65/163] libeconf-0:0.7.6-1.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 66/163] libsemanage-0:3.8-1.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 67/163] setup-0:2.15.0-25.fc43.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 68/163] glibc-gconv-extra-0:2.41.9000 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 69/163] ansible-srpm-macros-0:1-17.1. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 70/163] build-reproducibility-srpm-ma 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 71/163] dwz-0:0.15-9.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 72/163] efi-srpm-macros-0:6-3.fc43.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 73/163] filesystem-srpm-macros-0:3.18 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 74/163] fonts-srpm-macros-1:2.0.5-21. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 75/163] forge-srpm-macros-0:0.4.0-2.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 76/163] fpc-srpm-macros-0:1.3-14.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 77/163] ghc-srpm-macros-0:1.9.2-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 78/163] gnat-srpm-macros-0:6-7.fc42.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 79/163] go-srpm-macros-0:3.6.0-7.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 80/163] kernel-srpm-macros-0:1.0-25.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 81/163] lua-srpm-macros-0:1-15.fc42.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 82/163] ocaml-srpm-macros-0:10-4.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 83/163] openblas-srpm-macros-0:2-19.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 84/163] package-notes-srpm-macros-0:0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 85/163] perl-srpm-macros-0:1-57.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 86/163] pyproject-srpm-macros-0:1.18. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 87/163] python-srpm-macros-0:3.14-5.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 88/163] qt5-srpm-macros-0:5.15.16-1.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 89/163] qt6-srpm-macros-0:6.9.0-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 90/163] rust-srpm-macros-0:26.3-4.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 91/163] tree-sitter-srpm-macros-0:0.2 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 92/163] zig-srpm-macros-0:1-4.fc42.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 93/163] zip-0:3.0-43.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 94/163] pkgconf-0:2.3.0-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 95/163] pkgconf-m4-0:2.3.0-2.fc42.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 96/163] libpkgconf-0:2.3.0-2.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 97/163] pcre2-syntax-0:10.45-1.fc43.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 98/163] ed-0:1.21-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 99/163] libattr-0:2.5.2-5.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [100/163] ncurses-base-0:6.5-5.20250125 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [101/163] libxml2-0:2.12.10-1.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [102/163] libzstd-0:1.5.7-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [103/163] openssl-libs-1:3.5.0-3.fc43.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [104/163] glibc-common-0:2.41.9000-13.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [105/163] gmp-1:6.3.0-3.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [106/163] mpfr-0:4.2.2-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [107/163] fedora-repos-0:43-0.2.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [108/163] elfutils-debuginfod-client-0: 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [109/163] elfutils-libs-0:0.193-2.fc43. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [110/163] coreutils-common-0:9.7-1.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [111/163] add-determinism-0:0.6.0-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [112/163] alternatives-0:1.33-1.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [113/163] jansson-0:2.14-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [114/163] lua-libs-0:5.4.7-3.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [115/163] rpm-sequoia-0:1.8.0-1.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [116/163] libgomp-0:15.1.1-1.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [117/163] rpm-sign-libs-0:5.99.90-5.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [118/163] ca-certificates-0:2024.2.69_v 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [119/163] crypto-policies-0:20250402-2. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [120/163] fedora-gpg-keys-0:43-0.2.noar 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [121/163] fedora-repos-rawhide-0:43-0.2 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [122/163] elfutils-default-yama-scope-0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [123/163] json-c-0:0.18-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [124/163] libffi-0:3.4.8-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [125/163] p11-kit-0:0.25.5-5.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [126/163] p11-kit-trust-0:0.25.5-5.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [127/163] gnupg2-0:2.4.8-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [128/163] ima-evm-utils-libs-0:1.6.2-5. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [129/163] libfsverity-0:1.6-2.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [130/163] gpgverify-0:2.1-3.fc43.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [131/163] libtasn1-0:4.20.0-1.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [132/163] tpm2-tss-0:4.1.3-7.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [133/163] gnutls-0:3.8.9-5.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [134/163] libassuan-0:2.5.7-3.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [135/163] libgcrypt-0:1.11.1-1.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [136/163] libgpg-error-0:1.55-1.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [137/163] libksba-0:1.6.7-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [138/163] npth-0:1.8-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [139/163] openldap-0:2.6.9-5.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [140/163] libusb1-0:1.0.28-2.fc43.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [141/163] cyrus-sasl-lib-0:2.1.28-30.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [142/163] libevent-0:2.1.12-15.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [143/163] libtool-ltdl-0:2.5.4-4.fc42.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [144/163] libidn2-0:2.3.8-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [145/163] libunistring-0:1.1-9.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [146/163] nettle-0:3.10.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [147/163] gdbm-libs-1:1.23-9.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [148/163] gdb-minimal-0:16.3-1.fc43.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [149/163] xxhash-libs-0:0.8.3-2.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [150/163] fedora-release-0:43-0.15.noar 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [151/163] fedora-release-identity-basic 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [152/163] libcurl-0:8.14.0~rc1-1.fc43.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [153/163] systemd-standalone-sysusers-0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [154/163] krb5-libs-0:1.21.3-5.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [155/163] libbrotli-0:1.1.0-6.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [156/163] libnghttp2-0:1.65.0-1.fc43.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [157/163] libpsl-0:0.21.5-5.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [158/163] libssh-0:0.11.1-4.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [159/163] keyutils-libs-0:1.6.3-5.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [160/163] libcom_err-0:1.47.2-3.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [161/163] libverto-0:0.3.2-10.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [162/163] libssh-config-0:0.11.1-4.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [163/163] publicsuffix-list-dafsa-0:202 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [163/163] Total 100% | 0.0 B/s | 0.0 B | 00m00s Running transaction [ 1/165] Verify package files 100% | 1.4 KiB/s | 163.0 B | 00m00s >>> Running pre-transaction scriptlet: filesystem-0:3.18-44.fc43.x86_64 >>> Finished pre-transaction scriptlet: filesystem-0:3.18-44.fc43.x86_64 >>> [RPM] /var/lib/mock/fedora-rawhide-x86_64-1747420626.430272/root/var/cache/d [ 2/165] Prepare transaction 100% | 1.8 KiB/s | 163.0 B | 00m00s [ 3/165] Installing libgcc-0:15.1.1-1. 100% | 131.0 MiB/s | 268.3 KiB | 00m00s [ 4/165] Installing publicsuffix-list- 100% | 67.6 MiB/s | 69.2 KiB | 00m00s [ 5/165] Installing libssh-config-0:0. 100% | 0.0 B/s | 816.0 B | 00m00s [ 6/165] Installing fedora-release-ide 100% | 0.0 B/s | 920.0 B | 00m00s [ 7/165] Installing fedora-repos-rawhi 100% | 0.0 B/s | 2.4 KiB | 00m00s [ 8/165] Installing fedora-gpg-keys-0: 100% | 19.1 MiB/s | 175.9 KiB | 00m00s [ 9/165] Installing fedora-repos-0:43- 100% | 0.0 B/s | 5.7 KiB | 00m00s [ 10/165] Installing fedora-release-com 100% | 12.1 MiB/s | 24.7 KiB | 00m00s [ 11/165] Installing fedora-release-0:4 100% | 8.6 KiB/s | 124.0 B | 00m00s >>> Running sysusers scriptlet: setup-0:2.15.0-25.fc43.noarch >>> Finished sysusers scriptlet: setup-0:2.15.0-25.fc43.noarch >>> Scriptlet output: >>> Creating group 'adm' with GID 4. >>> Creating group 'audio' with GID 63. >>> Creating group 'cdrom' with GID 11. >>> Creating group 'clock' with GID 103. >>> Creating group 'dialout' with GID 18. >>> Creating group 'disk' with GID 6. >>> Creating group 'floppy' with GID 19. >>> Creating group 'ftp' with GID 50. >>> Creating group 'games' with GID 20. >>> Creating group 'input' with GID 104. >>> Creating group 'kmem' with GID 9. >>> Creating group 'kvm' with GID 36. >>> Creating group 'lock' with GID 54. >>> Creating group 'lp' with GID 7. >>> Creating group 'mail' with GID 12. >>> Creating group 'man' with GID 15. >>> Creating group 'mem' with GID 8. >>> Creating group 'nobody' with GID 65534. >>> Creating group 'render' with GID 105. >>> Creating group 'root' with GID 0. >>> Creating group 'sgx' with GID 106. >>> Creating group 'sys' with GID 3. >>> Creating group 'tape' with GID 33. >>> Creating group 'tty' with GID 5. >>> Creating group 'users' with GID 100. >>> Creating group 'utmp' with GID 22. >>> Creating group 'video' with GID 39. >>> Creating group 'wheel' with GID 10. >>> Creating user 'adm' (adm) with UID 3 and GID 4. >>> Creating group 'bin' with GID 1. >>> Creating user 'bin' (bin) with UID 1 and GID 1. >>> Creating group 'daemon' with GID 2. >>> Creating user 'daemon' (daemon) with UID 2 and GID 2. >>> Creating user 'ftp' (FTP User) with UID 14 and GID 50. >>> Creating user 'games' (games) with UID 12 and GID 100. >>> Creating user 'halt' (halt) with UID 7 and GID 0. >>> Creating user 'lp' (lp) with UID 4 and GID 7. >>> Creating user 'mail' (mail) with UID 8 and GID 12. >>> Creating user 'nobody' (Kernel Overflow User) with UID 65534 and GID 65534. >>> Creating user 'operator' (operator) with UID 11 and GID 0. >>> Creating user 'root' (Super User) with UID 0 and GID 0. >>> Creating user 'shutdown' (shutdown) with UID 6 and GID 0. >>> Creating user 'sync' (sync) with UID 5 and GID 0. >>> [ 12/165] Installing setup-0:2.15.0-25. 100% | 42.0 MiB/s | 730.6 KiB | 00m00s >>> [RPM] /etc/hosts created as /etc/hosts.rpmnew [ 13/165] Installing filesystem-0:3.18- 100% | 1.4 MiB/s | 212.5 KiB | 00m00s [ 14/165] Installing coreutils-common-0 100% | 230.4 MiB/s | 11.3 MiB | 00m00s [ 15/165] Installing ncurses-base-0:6.5 100% | 38.2 MiB/s | 352.2 KiB | 00m00s [ 16/165] Installing bash-0:5.2.37-3.fc 100% | 204.5 MiB/s | 8.2 MiB | 00m00s [ 17/165] Installing glibc-common-0:2.4 100% | 53.7 MiB/s | 1.0 MiB | 00m00s [ 18/165] Installing glibc-gconv-extra- 100% | 146.2 MiB/s | 7.3 MiB | 00m00s [ 19/165] Installing glibc-0:2.41.9000- 100% | 145.2 MiB/s | 6.7 MiB | 00m00s [ 20/165] Installing ncurses-libs-0:6.5 100% | 186.1 MiB/s | 952.8 KiB | 00m00s [ 21/165] Installing glibc-minimal-lang 100% | 0.0 B/s | 124.0 B | 00m00s [ 22/165] Installing zlib-ng-compat-0:2 100% | 135.2 MiB/s | 138.4 KiB | 00m00s [ 23/165] Installing libstdc++-0:15.1.1 100% | 283.6 MiB/s | 2.8 MiB | 00m00s [ 24/165] Installing bzip2-libs-0:1.0.8 100% | 83.7 MiB/s | 85.7 KiB | 00m00s [ 25/165] Installing xz-libs-1:5.8.1-1. 100% | 213.8 MiB/s | 218.9 KiB | 00m00s [ 26/165] Installing libuuid-0:2.41-2.f 100% | 37.6 MiB/s | 38.5 KiB | 00m00s [ 27/165] Installing gmp-1:6.3.0-3.fc43 100% | 267.4 MiB/s | 821.5 KiB | 00m00s [ 28/165] Installing readline-0:8.2-13. 100% | 158.6 MiB/s | 487.1 KiB | 00m00s [ 29/165] Installing popt-0:1.19-8.fc42 100% | 34.0 MiB/s | 139.4 KiB | 00m00s [ 30/165] Installing libblkid-0:2.41-2. 100% | 128.7 MiB/s | 263.5 KiB | 00m00s [ 31/165] Installing libxcrypt-0:4.4.38 100% | 140.2 MiB/s | 287.2 KiB | 00m00s [ 32/165] Installing libzstd-0:1.5.7-1. 100% | 263.4 MiB/s | 809.1 KiB | 00m00s [ 33/165] Installing elfutils-libelf-0: 100% | 291.6 MiB/s | 1.2 MiB | 00m00s [ 34/165] Installing libgpg-error-0:1.5 100% | 50.0 MiB/s | 921.1 KiB | 00m00s [ 35/165] Installing sqlite-libs-0:3.49 100% | 251.4 MiB/s | 1.5 MiB | 00m00s [ 36/165] Installing libattr-0:2.5.2-5. 100% | 27.4 MiB/s | 28.1 KiB | 00m00s [ 37/165] Installing libacl-0:2.3.2-3.f 100% | 38.2 MiB/s | 39.2 KiB | 00m00s [ 38/165] Installing libtasn1-0:4.20.0- 100% | 173.9 MiB/s | 178.1 KiB | 00m00s [ 39/165] Installing libunistring-0:1.1 100% | 246.7 MiB/s | 1.7 MiB | 00m00s [ 40/165] Installing libidn2-0:2.3.8-1. 100% | 30.3 MiB/s | 558.7 KiB | 00m00s [ 41/165] Installing crypto-policies-0: 100% | 14.8 MiB/s | 166.6 KiB | 00m00s [ 42/165] Installing dwz-0:0.15-9.fc42. 100% | 19.0 MiB/s | 292.4 KiB | 00m00s [ 43/165] Installing mpfr-0:4.2.2-1.fc4 100% | 202.7 MiB/s | 830.4 KiB | 00m00s [ 44/165] Installing gawk-0:5.3.2-1.fc4 100% | 75.7 MiB/s | 1.8 MiB | 00m00s [ 45/165] Installing unzip-0:6.0-66.fc4 100% | 27.5 MiB/s | 393.8 KiB | 00m00s [ 46/165] Installing file-libs-0:5.46-1 100% | 474.3 MiB/s | 11.9 MiB | 00m00s [ 47/165] Installing file-0:5.46-1.fc43 100% | 7.6 MiB/s | 101.7 KiB | 00m00s [ 48/165] Installing libsmartcols-0:2.4 100% | 177.3 MiB/s | 181.6 KiB | 00m00s [ 49/165] Installing libcap-ng-0:0.8.5- 100% | 69.2 MiB/s | 70.8 KiB | 00m00s [ 50/165] Installing audit-libs-0:4.0.3 100% | 170.5 MiB/s | 349.3 KiB | 00m00s [ 51/165] Installing libsepol-0:3.8-1.f 100% | 269.2 MiB/s | 827.0 KiB | 00m00s [ 52/165] Installing lz4-libs-0:1.10.0- 100% | 154.7 MiB/s | 158.5 KiB | 00m00s [ 53/165] Installing libeconf-0:0.7.6-1 100% | 64.7 MiB/s | 66.2 KiB | 00m00s [ 54/165] Installing pam-libs-0:1.7.0-4 100% | 126.1 MiB/s | 129.1 KiB | 00m00s [ 55/165] Installing libcap-0:2.76-1.fc 100% | 14.0 MiB/s | 214.3 KiB | 00m00s [ 56/165] Installing systemd-libs-0:257 100% | 248.0 MiB/s | 2.2 MiB | 00m00s [ 57/165] Installing alternatives-0:1.3 100% | 4.8 MiB/s | 63.8 KiB | 00m00s [ 58/165] Installing lua-libs-0:5.4.7-3 100% | 135.8 MiB/s | 278.1 KiB | 00m00s [ 59/165] Installing json-c-0:0.18-2.fc 100% | 85.9 MiB/s | 88.0 KiB | 00m00s [ 60/165] Installing libffi-0:3.4.8-1.f 100% | 82.4 MiB/s | 84.3 KiB | 00m00s [ 61/165] Installing p11-kit-0:0.25.5-5 100% | 80.9 MiB/s | 2.2 MiB | 00m00s [ 62/165] Installing p11-kit-trust-0:0. 100% | 13.4 MiB/s | 397.2 KiB | 00m00s [ 63/165] Installing libusb1-0:1.0.28-2 100% | 84.3 MiB/s | 172.7 KiB | 00m00s [ 64/165] Installing zstd-0:1.5.7-1.fc4 100% | 90.0 MiB/s | 1.7 MiB | 00m00s [ 65/165] Installing zip-0:3.0-43.fc42. 100% | 42.9 MiB/s | 702.4 KiB | 00m00s [ 66/165] Installing libpsl-0:0.21.5-5. 100% | 75.7 MiB/s | 77.5 KiB | 00m00s [ 67/165] Installing liblastlog2-0:2.41 100% | 34.9 MiB/s | 35.8 KiB | 00m00s [ 68/165] Installing libassuan-0:2.5.7- 100% | 165.6 MiB/s | 169.6 KiB | 00m00s [ 69/165] Installing libgcrypt-0:1.11.1 100% | 262.5 MiB/s | 1.6 MiB | 00m00s [ 70/165] Installing libksba-0:1.6.7-3. 100% | 197.8 MiB/s | 405.1 KiB | 00m00s [ 71/165] Installing libfdisk-0:2.41-2. 100% | 184.3 MiB/s | 377.5 KiB | 00m00s [ 72/165] Installing nettle-0:3.10.1-1. 100% | 193.8 MiB/s | 793.6 KiB | 00m00s [ 73/165] Installing gnutls-0:3.8.9-5.f 100% | 238.2 MiB/s | 3.6 MiB | 00m00s [ 74/165] Installing libxml2-0:2.12.10- 100% | 89.7 MiB/s | 1.7 MiB | 00m00s [ 75/165] Installing bzip2-0:1.0.8-20.f 100% | 7.8 MiB/s | 103.8 KiB | 00m00s [ 76/165] Installing add-determinism-0: 100% | 123.3 MiB/s | 2.5 MiB | 00m00s [ 77/165] Installing build-reproducibil 100% | 0.0 B/s | 1.0 KiB | 00m00s [ 78/165] Installing cpio-0:2.15-2.fc41 100% | 57.9 MiB/s | 1.1 MiB | 00m00s [ 79/165] Installing diffutils-0:3.12-2 100% | 78.1 MiB/s | 1.6 MiB | 00m00s [ 80/165] Installing libpkgconf-0:2.3.0 100% | 77.4 MiB/s | 79.2 KiB | 00m00s [ 81/165] Installing pkgconf-0:2.3.0-2. 100% | 6.8 MiB/s | 91.0 KiB | 00m00s [ 82/165] Installing ed-0:1.21-2.fc42.x 100% | 11.2 MiB/s | 148.8 KiB | 00m00s [ 83/165] Installing patch-0:2.8-1.fc43 100% | 18.6 MiB/s | 228.3 KiB | 00m00s [ 84/165] Installing jansson-0:2.14-2.f 100% | 92.2 MiB/s | 94.4 KiB | 00m00s [ 85/165] Installing libgomp-0:15.1.1-1 100% | 263.6 MiB/s | 539.9 KiB | 00m00s [ 86/165] Installing npth-0:1.8-2.fc42. 100% | 49.5 MiB/s | 50.7 KiB | 00m00s [ 87/165] Installing libtool-ltdl-0:2.5 100% | 69.6 MiB/s | 71.2 KiB | 00m00s [ 88/165] Installing gdbm-libs-1:1.23-9 100% | 128.5 MiB/s | 131.6 KiB | 00m00s [ 89/165] Installing cyrus-sasl-lib-0:2 100% | 109.7 MiB/s | 2.3 MiB | 00m00s [ 90/165] Installing xxhash-libs-0:0.8. 100% | 89.4 MiB/s | 91.6 KiB | 00m00s [ 91/165] Installing libbrotli-0:1.1.0- 100% | 204.0 MiB/s | 835.6 KiB | 00m00s [ 92/165] Installing libnghttp2-0:1.65. 100% | 159.5 MiB/s | 163.3 KiB | 00m00s [ 93/165] Installing keyutils-libs-0:1. 100% | 58.3 MiB/s | 59.7 KiB | 00m00s [ 94/165] Installing libcom_err-0:1.47. 100% | 66.6 MiB/s | 68.2 KiB | 00m00s [ 95/165] Installing libverto-0:0.3.2-1 100% | 26.6 MiB/s | 27.2 KiB | 00m00s [ 96/165] Installing filesystem-srpm-ma 100% | 38.0 MiB/s | 38.9 KiB | 00m00s [ 97/165] Installing elfutils-default-y 100% | 170.2 KiB/s | 2.0 KiB | 00m00s [ 98/165] Installing elfutils-libs-0:0. 100% | 167.3 MiB/s | 685.2 KiB | 00m00s [ 99/165] Installing pcre2-syntax-0:10. 100% | 135.0 MiB/s | 276.4 KiB | 00m00s [100/165] Installing pcre2-0:10.45-1.fc 100% | 227.6 MiB/s | 699.1 KiB | 00m00s [101/165] Installing libselinux-0:3.8-1 100% | 94.9 MiB/s | 194.3 KiB | 00m00s [102/165] Installing grep-0:3.12-1.fc43 100% | 43.6 MiB/s | 1.0 MiB | 00m00s [103/165] Installing sed-0:4.9-4.fc42.x 100% | 44.5 MiB/s | 865.5 KiB | 00m00s [104/165] Installing findutils-1:4.10.0 100% | 81.5 MiB/s | 1.9 MiB | 00m00s [105/165] Installing xz-1:5.8.1-1.fc43. 100% | 55.5 MiB/s | 1.3 MiB | 00m00s [106/165] Installing libmount-0:2.41-2. 100% | 121.7 MiB/s | 373.8 KiB | 00m00s [107/165] Installing util-linux-core-0: 100% | 66.9 MiB/s | 1.5 MiB | 00m00s [108/165] Installing openssl-libs-1:3.5 100% | 286.7 MiB/s | 8.9 MiB | 00m00s [109/165] Installing coreutils-0:9.7-1. 100% | 102.7 MiB/s | 5.4 MiB | 00m00s [110/165] Installing ca-certificates-0: 100% | 1.1 MiB/s | 2.4 MiB | 00m02s [111/165] Installing libarchive-0:3.7.7 100% | 182.2 MiB/s | 932.6 KiB | 00m00s [112/165] Installing krb5-libs-0:1.21.3 100% | 88.5 MiB/s | 2.3 MiB | 00m00s >>> Running sysusers scriptlet: tpm2-tss-0:4.1.3-7.fc43.x86_64 >>> Finished sysusers scriptlet: tpm2-tss-0:4.1.3-7.fc43.x86_64 >>> Scriptlet output: >>> Creating group 'tss' with GID 59. >>> Creating user 'tss' (Account used for TPM access) with UID 59 and GID 59. >>> [113/165] Installing tpm2-tss-0:4.1.3-7 100% | 156.8 MiB/s | 1.6 MiB | 00m00s [114/165] Installing ima-evm-utils-libs 100% | 60.5 MiB/s | 62.0 KiB | 00m00s [115/165] Installing libssh-0:0.11.1-4. 100% | 184.7 MiB/s | 567.5 KiB | 00m00s [116/165] Installing gzip-0:1.13-3.fc42 100% | 22.9 MiB/s | 398.4 KiB | 00m00s [117/165] Installing rpm-sequoia-0:1.8. 100% | 250.4 MiB/s | 2.5 MiB | 00m00s [118/165] Installing libfsverity-0:1.6- 100% | 32.7 MiB/s | 33.5 KiB | 00m00s [119/165] Installing libevent-0:2.1.12- 100% | 221.4 MiB/s | 906.9 KiB | 00m00s [120/165] Installing openldap-0:2.6.9-5 100% | 128.7 MiB/s | 658.9 KiB | 00m00s [121/165] Installing gnupg2-0:2.4.8-1.f 100% | 179.0 MiB/s | 9.8 MiB | 00m00s [122/165] Installing libcurl-0:8.14.0~r 100% | 217.8 MiB/s | 892.1 KiB | 00m00s [123/165] Installing elfutils-debuginfo 100% | 6.0 MiB/s | 86.2 KiB | 00m00s [124/165] Installing binutils-0:2.44-3. 100% | 229.2 MiB/s | 25.9 MiB | 00m00s [125/165] Installing elfutils-0:0.193-2 100% | 116.9 MiB/s | 2.9 MiB | 00m00s [126/165] Installing gdb-minimal-0:16.3 100% | 217.2 MiB/s | 13.2 MiB | 00m00s [127/165] Installing debugedit-0:5.1-6. 100% | 13.6 MiB/s | 195.4 KiB | 00m00s [128/165] Installing curl-0:8.14.0~rc1- 100% | 31.0 MiB/s | 476.0 KiB | 00m00s [129/165] Installing gpgverify-0:2.1-3. 100% | 9.2 MiB/s | 9.4 KiB | 00m00s [130/165] Installing tar-2:1.35-5.fc42. 100% | 109.7 MiB/s | 3.0 MiB | 00m00s [131/165] Installing libsemanage-0:3.8- 100% | 99.7 MiB/s | 306.2 KiB | 00m00s [132/165] Installing systemd-standalone 100% | 17.0 MiB/s | 277.8 KiB | 00m00s [133/165] Installing rpm-libs-0:5.99.90 100% | 39.5 MiB/s | 931.3 KiB | 00m00s [134/165] Installing rpm-0:5.99.90-5.fc 100% | 44.0 MiB/s | 2.5 MiB | 00m00s [135/165] Installing efi-srpm-macros-0: 100% | 40.2 MiB/s | 41.1 KiB | 00m00s [136/165] Installing lua-srpm-macros-0: 100% | 0.0 B/s | 1.9 KiB | 00m00s [137/165] Installing tree-sitter-srpm-m 100% | 8.4 MiB/s | 8.6 KiB | 00m00s [138/165] Installing zig-srpm-macros-0: 100% | 1.6 MiB/s | 1.7 KiB | 00m00s [139/165] Installing rpm-sign-libs-0:5. 100% | 39.6 MiB/s | 40.5 KiB | 00m00s [140/165] Installing rpm-build-libs-0:5 100% | 129.5 MiB/s | 265.2 KiB | 00m00s [141/165] Installing pkgconf-m4-0:2.3.0 100% | 0.0 B/s | 14.8 KiB | 00m00s [142/165] Installing pkgconf-pkg-config 100% | 136.4 KiB/s | 1.8 KiB | 00m00s [143/165] Installing rust-srpm-macros-0 100% | 5.4 MiB/s | 5.6 KiB | 00m00s [144/165] Installing qt6-srpm-macros-0: 100% | 0.0 B/s | 740.0 B | 00m00s [145/165] Installing qt5-srpm-macros-0: 100% | 0.0 B/s | 776.0 B | 00m00s [146/165] Installing perl-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [147/165] Installing package-notes-srpm 100% | 0.0 B/s | 2.0 KiB | 00m00s [148/165] Installing openblas-srpm-macr 100% | 0.0 B/s | 392.0 B | 00m00s [149/165] Installing ocaml-srpm-macros- 100% | 0.0 B/s | 2.2 KiB | 00m00s [150/165] Installing kernel-srpm-macros 100% | 2.3 MiB/s | 2.3 KiB | 00m00s [151/165] Installing gnat-srpm-macros-0 100% | 0.0 B/s | 1.3 KiB | 00m00s [152/165] Installing ghc-srpm-macros-0: 100% | 0.0 B/s | 1.0 KiB | 00m00s [153/165] Installing fpc-srpm-macros-0: 100% | 0.0 B/s | 420.0 B | 00m00s [154/165] Installing ansible-srpm-macro 100% | 35.4 MiB/s | 36.2 KiB | 00m00s [155/165] Installing rpm-build-0:5.99.9 100% | 17.7 MiB/s | 290.3 KiB | 00m00s [156/165] Installing pyproject-srpm-mac 100% | 2.4 MiB/s | 2.5 KiB | 00m00s [157/165] Installing redhat-rpm-config- 100% | 61.2 MiB/s | 188.0 KiB | 00m00s [158/165] Installing forge-srpm-macros- 100% | 39.3 MiB/s | 40.3 KiB | 00m00s [159/165] Installing fonts-srpm-macros- 100% | 55.7 MiB/s | 57.0 KiB | 00m00s [160/165] Installing go-srpm-macros-0:3 100% | 60.5 MiB/s | 62.0 KiB | 00m00s [161/165] Installing python-srpm-macros 100% | 25.9 MiB/s | 53.0 KiB | 00m00s [162/165] Installing shadow-utils-2:4.1 100% | 82.7 MiB/s | 4.1 MiB | 00m00s [163/165] Installing which-0:2.23-1.fc4 100% | 5.6 MiB/s | 85.6 KiB | 00m00s [164/165] Installing util-linux-0:2.41- 100% | 65.9 MiB/s | 3.6 MiB | 00m00s [165/165] Installing info-0:7.2-3.fc42. 100% | 125.9 KiB/s | 358.3 KiB | 00m03s Warning: skipped OpenPGP checks for 163 packages from repositories: copr_base, http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch Complete! Finish: installing minimal buildroot with dnf5 Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: add-determinism-0.6.0-1.fc43.x86_64 alternatives-1.33-1.fc43.x86_64 ansible-srpm-macros-1-17.1.fc42.noarch audit-libs-4.0.3-2.fc43.x86_64 bash-5.2.37-3.fc43.x86_64 binutils-2.44-3.fc43.x86_64 build-reproducibility-srpm-macros-0.6.0-1.fc43.noarch bzip2-1.0.8-20.fc42.x86_64 bzip2-libs-1.0.8-20.fc42.x86_64 ca-certificates-2024.2.69_v8.0.401-5.fc42.noarch coreutils-9.7-1.fc43.x86_64 coreutils-common-9.7-1.fc43.x86_64 cpio-2.15-2.fc41.x86_64 crypto-policies-20250402-2.git86c0178.fc43.noarch curl-8.14.0~rc1-1.fc43.x86_64 cyrus-sasl-lib-2.1.28-30.fc42.x86_64 debugedit-5.1-6.fc43.x86_64 diffutils-3.12-2.fc43.x86_64 dwz-0.15-9.fc42.x86_64 ed-1.21-2.fc42.x86_64 efi-srpm-macros-6-3.fc43.noarch elfutils-0.193-2.fc43.x86_64 elfutils-debuginfod-client-0.193-2.fc43.x86_64 elfutils-default-yama-scope-0.193-2.fc43.noarch elfutils-libelf-0.193-2.fc43.x86_64 elfutils-libs-0.193-2.fc43.x86_64 fedora-gpg-keys-43-0.2.noarch fedora-release-43-0.15.noarch fedora-release-common-43-0.15.noarch fedora-release-identity-basic-43-0.15.noarch fedora-repos-43-0.2.noarch fedora-repos-rawhide-43-0.2.noarch file-5.46-1.fc43.x86_64 file-libs-5.46-1.fc43.x86_64 filesystem-3.18-44.fc43.x86_64 filesystem-srpm-macros-3.18-44.fc43.noarch findutils-4.10.0-5.fc42.x86_64 fonts-srpm-macros-2.0.5-21.fc42.noarch forge-srpm-macros-0.4.0-2.fc42.noarch fpc-srpm-macros-1.3-14.fc42.noarch gawk-5.3.2-1.fc43.x86_64 gdb-minimal-16.3-1.fc43.x86_64 gdbm-libs-1.23-9.fc42.x86_64 ghc-srpm-macros-1.9.2-2.fc42.noarch glibc-2.41.9000-13.fc43.x86_64 glibc-common-2.41.9000-13.fc43.x86_64 glibc-gconv-extra-2.41.9000-13.fc43.x86_64 glibc-minimal-langpack-2.41.9000-13.fc43.x86_64 gmp-6.3.0-3.fc43.x86_64 gnat-srpm-macros-6-7.fc42.noarch gnupg2-2.4.8-1.fc43.x86_64 gnutls-3.8.9-5.fc43.x86_64 go-srpm-macros-3.6.0-7.fc43.noarch gpgverify-2.1-3.fc43.noarch grep-3.12-1.fc43.x86_64 gzip-1.13-3.fc42.x86_64 ima-evm-utils-libs-1.6.2-5.fc43.x86_64 info-7.2-3.fc42.x86_64 jansson-2.14-2.fc42.x86_64 json-c-0.18-2.fc42.x86_64 kernel-srpm-macros-1.0-25.fc42.noarch keyutils-libs-1.6.3-5.fc42.x86_64 krb5-libs-1.21.3-5.fc42.x86_64 libacl-2.3.2-3.fc42.x86_64 libarchive-3.7.7-4.fc43.x86_64 libassuan-2.5.7-3.fc42.x86_64 libattr-2.5.2-5.fc42.x86_64 libblkid-2.41-2.fc43.x86_64 libbrotli-1.1.0-6.fc43.x86_64 libcap-2.76-1.fc43.x86_64 libcap-ng-0.8.5-4.fc43.x86_64 libcom_err-1.47.2-3.fc42.x86_64 libcurl-8.14.0~rc1-1.fc43.x86_64 libeconf-0.7.6-1.fc43.x86_64 libevent-2.1.12-15.fc42.x86_64 libfdisk-2.41-2.fc43.x86_64 libffi-3.4.8-1.fc43.x86_64 libfsverity-1.6-2.fc42.x86_64 libgcc-15.1.1-1.fc43.x86_64 libgcrypt-1.11.1-1.fc43.x86_64 libgomp-15.1.1-1.fc43.x86_64 libgpg-error-1.55-1.fc43.x86_64 libidn2-2.3.8-1.fc43.x86_64 libksba-1.6.7-3.fc42.x86_64 liblastlog2-2.41-2.fc43.x86_64 libmount-2.41-2.fc43.x86_64 libnghttp2-1.65.0-1.fc43.x86_64 libpkgconf-2.3.0-2.fc42.x86_64 libpsl-0.21.5-5.fc42.x86_64 libselinux-3.8-1.fc43.x86_64 libsemanage-3.8-1.fc43.x86_64 libsepol-3.8-1.fc42.x86_64 libsmartcols-2.41-2.fc43.x86_64 libssh-0.11.1-4.fc42.x86_64 libssh-config-0.11.1-4.fc42.noarch libstdc++-15.1.1-1.fc43.x86_64 libtasn1-4.20.0-1.fc43.x86_64 libtool-ltdl-2.5.4-4.fc42.x86_64 libunistring-1.1-9.fc42.x86_64 libusb1-1.0.28-2.fc43.x86_64 libuuid-2.41-2.fc43.x86_64 libverto-0.3.2-10.fc42.x86_64 libxcrypt-4.4.38-7.fc43.x86_64 libxml2-2.12.10-1.fc43.x86_64 libzstd-1.5.7-1.fc43.x86_64 lua-libs-5.4.7-3.fc43.x86_64 lua-srpm-macros-1-15.fc42.noarch lz4-libs-1.10.0-2.fc42.x86_64 mpfr-4.2.2-1.fc43.x86_64 ncurses-base-6.5-5.20250125.fc42.noarch ncurses-libs-6.5-5.20250125.fc42.x86_64 nettle-3.10.1-1.fc43.x86_64 npth-1.8-2.fc42.x86_64 ocaml-srpm-macros-10-4.fc42.noarch openblas-srpm-macros-2-19.fc42.noarch openldap-2.6.9-5.fc43.x86_64 openssl-libs-3.5.0-3.fc43.x86_64 p11-kit-0.25.5-5.fc42.x86_64 p11-kit-trust-0.25.5-5.fc42.x86_64 package-notes-srpm-macros-0.5-13.fc42.noarch pam-libs-1.7.0-4.fc42.x86_64 patch-2.8-1.fc43.x86_64 pcre2-10.45-1.fc43.x86_64 pcre2-syntax-10.45-1.fc43.noarch perl-srpm-macros-1-57.fc42.noarch pkgconf-2.3.0-2.fc42.x86_64 pkgconf-m4-2.3.0-2.fc42.noarch pkgconf-pkg-config-2.3.0-2.fc42.x86_64 popt-1.19-8.fc42.x86_64 publicsuffix-list-dafsa-20250116-1.fc42.noarch pyproject-srpm-macros-1.18.1-1.fc43.noarch python-srpm-macros-3.14-5.fc43.noarch qt5-srpm-macros-5.15.16-1.fc43.noarch qt6-srpm-macros-6.9.0-2.fc43.noarch readline-8.2-13.fc43.x86_64 redhat-rpm-config-343-5.fc43.noarch rpm-5.99.90-5.fc43.x86_64 rpm-build-5.99.90-5.fc43.x86_64 rpm-build-libs-5.99.90-5.fc43.x86_64 rpm-libs-5.99.90-5.fc43.x86_64 rpm-sequoia-1.8.0-1.fc43.x86_64 rpm-sign-libs-5.99.90-5.fc43.x86_64 rust-srpm-macros-26.3-4.fc42.noarch sed-4.9-4.fc42.x86_64 setup-2.15.0-25.fc43.noarch shadow-utils-4.17.4-1.fc43.x86_64 sqlite-libs-3.49.1-1.fc43.x86_64 systemd-libs-257.5-5.fc43.x86_64 systemd-standalone-sysusers-257.5-5.fc43.x86_64 tar-1.35-5.fc42.x86_64 tpm2-tss-4.1.3-7.fc43.x86_64 tree-sitter-srpm-macros-0.2.4-1.fc43.noarch unzip-6.0-66.fc42.x86_64 util-linux-2.41-2.fc43.x86_64 util-linux-core-2.41-2.fc43.x86_64 which-2.23-1.fc42.x86_64 xxhash-libs-0.8.3-2.fc42.x86_64 xz-5.8.1-1.fc43.x86_64 xz-libs-5.8.1-1.fc43.x86_64 zig-srpm-macros-1-4.fc42.noarch zip-3.0-43.fc42.x86_64 zlib-ng-compat-2.2.4-2.fc43.x86_64 zstd-1.5.7-1.fc43.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Wrote: /builddir/build/SRPMS/python-beartype-0.18.5-3.fc43.src.rpm Finish: rpmbuild -bs INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1747420626.430272/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names Finish: buildsrpm INFO: Done(/var/lib/copr-rpmbuild/workspace/workdir-djljjoiu/python-beartype/python-beartype.spec) Config(child) 0 minutes 19 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot INFO: Start(/var/lib/copr-rpmbuild/results/python-beartype-0.18.5-3.fc43.src.rpm) Config(fedora-rawhide-x86_64) Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1747420626.430272/root. INFO: reusing tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1747420626.430272/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1747420626.430272/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-5.99.90-5.fc43.x86_64 rpm-sequoia-1.8.0-1.fc43.x86_64 dnf5-5.2.13.1-2.fc43.x86_64 dnf5-plugins-5.2.13.1-2.fc43.x86_64 Finish: chroot init Start: build phase for python-beartype-0.18.5-3.fc43.src.rpm Start: build setup for python-beartype-0.18.5-3.fc43.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Wrote: /builddir/build/SRPMS/python-beartype-0.18.5-3.fc43.src.rpm Updating and loading repositories: Additional repo http_kojipkgs_fedorapr 100% | 59.8 KiB/s | 3.8 KiB | 00m00s fedora 100% | 622.1 KiB/s | 24.3 KiB | 00m00s Copr repository 100% | 38.4 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing: make x86_64 1:4.4.1-10.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 MiB python3-devel x86_64 3.14.0~b1-2.fc43 copr_base 1.9 MiB python3-pytest noarch 8.3.5-3.fc43 copr_base 4.1 MiB python3-sphinx noarch 1:8.2.3-5.fc43 copr_base 12.3 MiB Installing dependencies: expat x86_64 2.7.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 294.2 KiB mpdecimal x86_64 4.0.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 217.2 KiB pyproject-rpm-macros noarch 1.18.1-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 114.5 KiB python-pip-wheel noarch 25.1.1-3.fc43 copr_base 1.2 MiB python-rpm-macros noarch 3.14-5.fc43 copr_base 22.1 KiB python3 x86_64 3.14.0~b1-2.fc43 copr_base 28.9 KiB python3-babel noarch 2.17.0-2.fc43~bootstrap copr_base 30.3 MiB python3-charset-normalizer noarch 3.4.2-1.fc43 copr_base 354.0 KiB python3-docutils noarch 0.21.2-2.fc43 copr_base 5.0 MiB python3-idna noarch 3.10-2.fc43 copr_base 730.6 KiB python3-imagesize noarch 1.4.1-10.fc43 copr_base 36.0 KiB python3-iniconfig noarch 1.1.1-26.fc43 copr_base 21.0 KiB python3-jinja2 noarch 3.1.6-1.fc43 copr_base 1.7 MiB python3-libs x86_64 3.14.0~b1-2.fc43 copr_base 42.5 MiB python3-markupsafe x86_64 3.0.2-2.fc43 copr_base 61.5 KiB python3-packaging noarch 25.0-2.fc43~bootstrap copr_base 607.5 KiB python3-pluggy noarch 1.5.0-2.fc43 copr_base 213.2 KiB python3-pygments noarch 2.19.1-2.fc43 copr_base 8.6 MiB python3-requests noarch 2.32.3-13.fc43 copr_base 487.5 KiB python3-roman-numerals-py noarch 3.1.0-1.fc43 copr_base 40.4 KiB python3-rpm-generators noarch 14-12.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 81.7 KiB python3-rpm-macros noarch 3.14-5.fc43 copr_base 6.4 KiB python3-snowballstemmer noarch 3.0.1-4.fc43 copr_base 1.8 MiB python3-sphinx-theme-alabaster noarch 0.7.16-3.fc43 copr_base 42.0 KiB python3-urllib3 noarch 2.4.0-2.fc43 copr_base 1.1 MiB tzdata noarch 2025b-1.fc43 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 MiB Transaction Summary: Installing: 30 packages Total size of inbound packages is 27 MiB. Need to download 15 MiB. After this operation, 117 MiB extra will be used (install 117 MiB, remove 0 B). [ 1/30] make-1:4.4.1-10.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 2/30] python3-devel-0:3.14.0~b1-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 3/30] python3-0:3.14.0~b1-2.fc43.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 4/30] python3-libs-0:3.14.0~b1-2.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 5/30] python3-packaging-0:25.0-2.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 6/30] python3-markupsafe-0:3.0.2-2.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 7/30] expat-0:2.7.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 8/30] mpdecimal-0:4.0.1-1.fc43.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 9/30] python-pip-wheel-0:25.1.1-3.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [10/30] tzdata-0:2025b-1.fc43.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [11/30] python-rpm-macros-0:3.14-5.fc43 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [12/30] python3-rpm-macros-0:3.14-5.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [13/30] pyproject-rpm-macros-0:1.18.1-1 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [14/30] python3-rpm-generators-0:14-12. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [15/30] python3-iniconfig-0:1.1.1-26.fc 100% | 364.0 KiB/s | 18.9 KiB | 00m00s [16/30] python3-pytest-0:8.3.5-3.fc43.n 100% | 8.9 MiB/s | 775.2 KiB | 00m00s [17/30] python3-pluggy-0:1.5.0-2.fc43.n 100% | 1.6 MiB/s | 56.7 KiB | 00m00s [18/30] python3-sphinx-1:8.2.3-5.fc43.n 100% | 27.7 MiB/s | 2.7 MiB | 00m00s [19/30] python3-imagesize-0:1.4.1-10.fc 100% | 940.7 KiB/s | 22.6 KiB | 00m00s [20/30] python3-babel-0:2.17.0-2.fc43~b 100% | 60.3 MiB/s | 6.8 MiB | 00m00s [21/30] python3-docutils-0:0.21.2-2.fc4 100% | 9.1 MiB/s | 1.0 MiB | 00m00s [22/30] python3-jinja2-0:3.1.6-1.fc43.n 100% | 3.8 MiB/s | 338.9 KiB | 00m00s [23/30] python3-requests-0:2.32.3-13.fc 100% | 5.9 MiB/s | 151.0 KiB | 00m00s [24/30] python3-roman-numerals-py-0:3.1 100% | 1.0 MiB/s | 20.3 KiB | 00m00s [25/30] python3-pygments-0:2.19.1-2.fc4 100% | 50.7 MiB/s | 2.1 MiB | 00m00s [26/30] python3-sphinx-theme-alabaster- 100% | 1.7 MiB/s | 24.8 KiB | 00m00s [27/30] python3-charset-normalizer-0:3. 100% | 5.9 MiB/s | 109.3 KiB | 00m00s [28/30] python3-idna-0:3.10-2.fc43.noar 100% | 6.5 MiB/s | 119.2 KiB | 00m00s [29/30] python3-urllib3-0:2.4.0-2.fc43. 100% | 13.5 MiB/s | 276.7 KiB | 00m00s [30/30] python3-snowballstemmer-0:3.0.1 100% | 14.3 MiB/s | 263.0 KiB | 00m00s -------------------------------------------------------------------------------- [30/30] Total 100% | 52.1 MiB/s | 14.7 MiB | 00m00s Running transaction [ 1/32] Verify package files 100% | 476.0 B/s | 30.0 B | 00m00s [ 2/32] Prepare transaction 100% | 365.0 B/s | 30.0 B | 00m00s [ 3/32] Installing python-rpm-macros-0: 100% | 22.3 MiB/s | 22.8 KiB | 00m00s [ 4/32] Installing python3-rpm-macros-0 100% | 0.0 B/s | 6.7 KiB | 00m00s [ 5/32] Installing pyproject-rpm-macros 100% | 28.4 MiB/s | 116.4 KiB | 00m00s [ 6/32] Installing tzdata-0:2025b-1.fc4 100% | 24.3 MiB/s | 1.9 MiB | 00m00s [ 7/32] Installing python-pip-wheel-0:2 100% | 415.0 MiB/s | 1.2 MiB | 00m00s [ 8/32] Installing mpdecimal-0:4.0.1-1. 100% | 106.8 MiB/s | 218.8 KiB | 00m00s [ 9/32] Installing expat-0:2.7.1-1.fc43 100% | 14.5 MiB/s | 296.3 KiB | 00m00s [10/32] Installing python3-libs-0:3.14. 100% | 197.5 MiB/s | 42.9 MiB | 00m00s [11/32] Installing python3-0:3.14.0~b1- 100% | 2.0 MiB/s | 30.7 KiB | 00m00s [12/32] Installing python3-packaging-0: 100% | 121.1 MiB/s | 619.8 KiB | 00m00s [13/32] Installing python3-idna-0:3.10- 100% | 144.0 MiB/s | 737.1 KiB | 00m00s [14/32] Installing python3-urllib3-0:2. 100% | 122.0 MiB/s | 1.1 MiB | 00m00s [15/32] Installing python3-rpm-generato 100% | 81.0 MiB/s | 82.9 KiB | 00m00s [16/32] Installing python3-iniconfig-0: 100% | 11.8 MiB/s | 24.2 KiB | 00m00s [17/32] Installing python3-pluggy-0:1.5 100% | 53.6 MiB/s | 219.7 KiB | 00m00s [18/32] Installing python3-babel-0:2.17 100% | 216.3 MiB/s | 30.5 MiB | 00m00s [19/32] Installing python3-docutils-0:0 100% | 97.3 MiB/s | 5.1 MiB | 00m00s [20/32] Installing python3-imagesize-0: 100% | 12.7 MiB/s | 39.1 KiB | 00m00s [21/32] Installing python3-pygments-0:2 100% | 117.3 MiB/s | 8.8 MiB | 00m00s [22/32] Installing python3-roman-numera 100% | 21.2 MiB/s | 43.4 KiB | 00m00s [23/32] Installing python3-sphinx-theme 100% | 22.8 MiB/s | 46.6 KiB | 00m00s [24/32] Installing python3-markupsafe-0 100% | 32.1 MiB/s | 65.8 KiB | 00m00s [25/32] Installing python3-jinja2-0:3.1 100% | 192.9 MiB/s | 1.7 MiB | 00m00s [26/32] Installing python3-charset-norm 100% | 20.9 MiB/s | 364.1 KiB | 00m00s [27/32] Installing python3-requests-0:2 100% | 97.6 MiB/s | 499.8 KiB | 00m00s [28/32] Installing python3-snowballstem 100% | 155.0 MiB/s | 1.9 MiB | 00m00s [29/32] Installing python3-sphinx-1:8.2 100% | 112.2 MiB/s | 12.5 MiB | 00m00s [30/32] Installing python3-pytest-0:8.3 100% | 118.1 MiB/s | 4.1 MiB | 00m00s [31/32] Installing python3-devel-0:3.14 100% | 61.9 MiB/s | 2.0 MiB | 00m00s [32/32] Installing make-1:4.4.1-10.fc42 100% | 18.9 MiB/s | 1.8 MiB | 00m00s Warning: skipped OpenPGP checks for 30 packages from repositories: copr_base, http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch Complete! Finish: build setup for python-beartype-0.18.5-3.fc43.src.rpm Start: rpmbuild python-beartype-0.18.5-3.fc43.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.ojAZJt Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.PImUtN + umask 022 + cd /builddir/build/BUILD/python-beartype-0.18.5-build + cd /builddir/build/BUILD/python-beartype-0.18.5-build + rm -rf beartype-0.18.5 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/beartype-0.18.5.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd beartype-0.18.5 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/4b27fbb518cabad406132b0fc321028ddb26d829.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/e07f8ee04819e27e11270c33777649586c6f4d87.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/0b4453f83c7ed4be054d8733aab8075e1478e166.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/c8c4f05d49ac1dd240a7325652404ed995004eb9.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.n2b8AG + umask 022 + cd /builddir/build/BUILD/python-beartype-0.18.5-build + cd beartype-0.18.5 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir + RPM_TOXENV=py314 + FEDORA=43 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/pyproject-wheeldir --output /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-buildrequires -r Handling setuptools !=50.0 from build-system.requires Requirement not satisfied: setuptools !=50.0 Exiting dependency generation pass: build backend + cat /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-beartype-0.18.5-3.fc43.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: Additional repo http_kojipkgs_fedorapr 100% | 57.2 KiB/s | 3.8 KiB | 00m00s fedora 100% | 638.5 KiB/s | 24.3 KiB | 00m00s Copr repository 100% | 17.7 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package "make-1:4.4.1-10.fc42.x86_64" is already installed. Package "pyproject-rpm-macros-1.18.1-1.fc43.noarch" is already installed. Package "python3-devel-3.14.0~b1-2.fc43.x86_64" is already installed. Package "python3-packaging-25.0-2.fc43~bootstrap.noarch" is already installed. Package "python3-pytest-8.3.5-3.fc43.noarch" is already installed. Package "python3-sphinx-1:8.2.3-5.fc43.noarch" is already installed. Package Arch Version Repository Size Installing: python3-pip noarch 25.1.1-3.fc43 copr_base 12.5 MiB python3-setuptools noarch 78.1.1-5.fc43 copr_base 9.0 MiB Transaction Summary: Installing: 2 packages Total size of inbound packages is 5 MiB. Need to download 3 MiB. After this operation, 22 MiB extra will be used (install 22 MiB, remove 0 B). [1/2] python3-setuptools-0:78.1.1-5.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [2/2] python3-pip-0:25.1.1-3.fc43.noarc 100% | 21.5 MiB/s | 2.6 MiB | 00m00s -------------------------------------------------------------------------------- [2/2] Total 100% | 21.0 MiB/s | 2.6 MiB | 00m00s Running transaction [1/4] Verify package files 100% | 200.0 B/s | 2.0 B | 00m00s [2/4] Prepare transaction 100% | 55.0 B/s | 2.0 B | 00m00s [3/4] Installing python3-pip-0:25.1.1-3 100% | 99.5 MiB/s | 12.7 MiB | 00m00s [4/4] Installing python3-setuptools-0:7 100% | 97.1 MiB/s | 9.2 MiB | 00m00s Warning: skipped OpenPGP checks for 2 packages from repository: copr_base Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.pvPU9A + umask 022 + cd /builddir/build/BUILD/python-beartype-0.18.5-build + cd beartype-0.18.5 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir + RPM_TOXENV=py314 + FEDORA=43 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/pyproject-wheeldir --output /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-buildrequires -r Handling setuptools !=50.0 from build-system.requires Requirement satisfied: setuptools !=50.0 (installed: setuptools 78.1.1) WARNING: Registering "setup.py" directory for importation under broken installer (e.g., pip >= 19.0.0)... /usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running egg_info writing beartype.egg-info/PKG-INFO writing dependency_links to beartype.egg-info/dependency_links.txt writing requirements to beartype.egg-info/requires.txt writing top-level names to beartype.egg-info/top_level.txt reading manifest file 'beartype.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.pyc' found under directory '*' warning: no previously-included files matching '*.pyo' found under directory '*' adding license file 'LICENSE' writing manifest file 'beartype.egg-info/SOURCES.txt' running dist_info writing beartype.egg-info/PKG-INFO writing dependency_links to beartype.egg-info/dependency_links.txt writing requirements to beartype.egg-info/requires.txt writing top-level names to beartype.egg-info/top_level.txt reading manifest file 'beartype.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.pyc' found under directory '*' warning: no previously-included files matching '*.pyo' found under directory '*' adding license file 'LICENSE' writing manifest file 'beartype.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype-0.18.5.dist-info' Handling typing-extensions>=3.10.0.0; extra == "all" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: typing-extensions>=3.10.0.0; extra == "all" Handling coverage>=5.5; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: coverage>=5.5; extra == "dev" Handling equinox; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: equinox; extra == "dev" Handling mypy>=0.800; platform_python_implementation != "PyPy" and extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: mypy>=0.800; platform_python_implementation != "PyPy" and extra == "dev" Handling numpy; (sys_platform != "darwin" and platform_python_implementation != "PyPy") and extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: numpy; (sys_platform != "darwin" and platform_python_implementation != "PyPy") and extra == "dev" Handling pandera; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pandera; extra == "dev" Handling sphinx; python_version >= "3.8.0" and extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinx; python_version >= "3.8.0" and extra == "dev" Handling typing-extensions>=3.10.0.0; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: typing-extensions>=3.10.0.0; extra == "dev" Handling pytest>=4.0.0; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pytest>=4.0.0; extra == "dev" Handling tox>=3.20.1; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: tox>=3.20.1; extra == "dev" Handling sphinx<6.0.0,>=4.2.0; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinx<6.0.0,>=4.2.0; extra == "dev" Handling pydata-sphinx-theme<=0.7.2; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pydata-sphinx-theme<=0.7.2; extra == "dev" Handling autoapi>=0.9.0; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: autoapi>=0.9.0; extra == "dev" Handling sphinxext-opengraph>=0.7.5; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinxext-opengraph>=0.7.5; extra == "dev" Handling sphinx<6.0.0,>=4.2.0; extra == "doc-rtd" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinx<6.0.0,>=4.2.0; extra == "doc-rtd" Handling pydata-sphinx-theme<=0.7.2; extra == "doc-rtd" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pydata-sphinx-theme<=0.7.2; extra == "doc-rtd" Handling autoapi>=0.9.0; extra == "doc-rtd" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: autoapi>=0.9.0; extra == "doc-rtd" Handling sphinxext-opengraph>=0.7.5; extra == "doc-rtd" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinxext-opengraph>=0.7.5; extra == "doc-rtd" Handling equinox; extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: equinox; extra == "test-tox" Handling mypy>=0.800; platform_python_implementation != "PyPy" and extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: mypy>=0.800; platform_python_implementation != "PyPy" and extra == "test-tox" Handling numpy; (sys_platform != "darwin" and platform_python_implementation != "PyPy") and extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: numpy; (sys_platform != "darwin" and platform_python_implementation != "PyPy") and extra == "test-tox" Handling pandera; extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pandera; extra == "test-tox" Handling sphinx; python_version >= "3.8.0" and extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinx; python_version >= "3.8.0" and extra == "test-tox" Handling typing-extensions>=3.10.0.0; extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: typing-extensions>=3.10.0.0; extra == "test-tox" Handling pytest>=4.0.0; extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pytest>=4.0.0; extra == "test-tox" Handling coverage>=5.5; extra == "test-tox-coverage" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: coverage>=5.5; extra == "test-tox-coverage" + cat /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-buildrequires + rm -rfv beartype-0.18.5.dist-info/ removed 'beartype-0.18.5.dist-info/top_level.txt' removed 'beartype-0.18.5.dist-info/METADATA' removed 'beartype-0.18.5.dist-info/licenses/LICENSE' removed directory 'beartype-0.18.5.dist-info/licenses' removed directory 'beartype-0.18.5.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-beartype-0.18.5-3.fc43.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: Additional repo http_kojipkgs_fedorapr 100% | 58.9 KiB/s | 3.8 KiB | 00m00s fedora 100% | 693.2 KiB/s | 24.3 KiB | 00m00s Copr repository 100% | 36.6 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package "make-1:4.4.1-10.fc42.x86_64" is already installed. Package "pyproject-rpm-macros-1.18.1-1.fc43.noarch" is already installed. Package "python3-devel-3.14.0~b1-2.fc43.x86_64" is already installed. Package "python3-packaging-25.0-2.fc43~bootstrap.noarch" is already installed. Package "python3-pip-25.1.1-3.fc43.noarch" is already installed. Package "python3-pytest-8.3.5-3.fc43.noarch" is already installed. Package "python3-sphinx-1:8.2.3-5.fc43.noarch" is already installed. Nothing to do. Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1737158400 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.zKvbRS + umask 022 + cd /builddir/build/BUILD/python-beartype-0.18.5-build + cd beartype-0.18.5 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir + RPM_TOXENV=py314 + FEDORA=43 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/pyproject-wheeldir --output /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-buildrequires -r Handling setuptools !=50.0 from build-system.requires Requirement satisfied: setuptools !=50.0 (installed: setuptools 78.1.1) WARNING: Registering "setup.py" directory for importation under broken installer (e.g., pip >= 19.0.0)... /usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running egg_info writing beartype.egg-info/PKG-INFO writing dependency_links to beartype.egg-info/dependency_links.txt writing requirements to beartype.egg-info/requires.txt writing top-level names to beartype.egg-info/top_level.txt reading manifest file 'beartype.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.pyc' found under directory '*' warning: no previously-included files matching '*.pyo' found under directory '*' adding license file 'LICENSE' writing manifest file 'beartype.egg-info/SOURCES.txt' running dist_info writing beartype.egg-info/PKG-INFO writing dependency_links to beartype.egg-info/dependency_links.txt writing requirements to beartype.egg-info/requires.txt writing top-level names to beartype.egg-info/top_level.txt reading manifest file 'beartype.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.pyc' found under directory '*' warning: no previously-included files matching '*.pyo' found under directory '*' adding license file 'LICENSE' writing manifest file 'beartype.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype-0.18.5.dist-info' Handling typing-extensions>=3.10.0.0; extra == "all" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: typing-extensions>=3.10.0.0; extra == "all" Handling coverage>=5.5; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: coverage>=5.5; extra == "dev" Handling equinox; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: equinox; extra == "dev" Handling mypy>=0.800; platform_python_implementation != "PyPy" and extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: mypy>=0.800; platform_python_implementation != "PyPy" and extra == "dev" Handling numpy; (sys_platform != "darwin" and platform_python_implementation != "PyPy") and extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: numpy; (sys_platform != "darwin" and platform_python_implementation != "PyPy") and extra == "dev" Handling pandera; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pandera; extra == "dev" Handling sphinx; python_version >= "3.8.0" and extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinx; python_version >= "3.8.0" and extra == "dev" Handling typing-extensions>=3.10.0.0; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: typing-extensions>=3.10.0.0; extra == "dev" Handling pytest>=4.0.0; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pytest>=4.0.0; extra == "dev" Handling tox>=3.20.1; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: tox>=3.20.1; extra == "dev" Handling sphinx<6.0.0,>=4.2.0; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinx<6.0.0,>=4.2.0; extra == "dev" Handling pydata-sphinx-theme<=0.7.2; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pydata-sphinx-theme<=0.7.2; extra == "dev" Handling autoapi>=0.9.0; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: autoapi>=0.9.0; extra == "dev" Handling sphinxext-opengraph>=0.7.5; extra == "dev" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinxext-opengraph>=0.7.5; extra == "dev" Handling sphinx<6.0.0,>=4.2.0; extra == "doc-rtd" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinx<6.0.0,>=4.2.0; extra == "doc-rtd" Handling pydata-sphinx-theme<=0.7.2; extra == "doc-rtd" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pydata-sphinx-theme<=0.7.2; extra == "doc-rtd" Handling autoapi>=0.9.0; extra == "doc-rtd" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: autoapi>=0.9.0; extra == "doc-rtd" Handling sphinxext-opengraph>=0.7.5; extra == "doc-rtd" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinxext-opengraph>=0.7.5; extra == "doc-rtd" Handling equinox; extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: equinox; extra == "test-tox" Handling mypy>=0.800; platform_python_implementation != "PyPy" and extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: mypy>=0.800; platform_python_implementation != "PyPy" and extra == "test-tox" Handling numpy; (sys_platform != "darwin" and platform_python_implementation != "PyPy") and extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: numpy; (sys_platform != "darwin" and platform_python_implementation != "PyPy") and extra == "test-tox" Handling pandera; extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pandera; extra == "test-tox" Handling sphinx; python_version >= "3.8.0" and extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: sphinx; python_version >= "3.8.0" and extra == "test-tox" Handling typing-extensions>=3.10.0.0; extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: typing-extensions>=3.10.0.0; extra == "test-tox" Handling pytest>=4.0.0; extra == "test-tox" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: pytest>=4.0.0; extra == "test-tox" Handling coverage>=5.5; extra == "test-tox-coverage" from hook generated metadata: Requires-Dist (beartype) Ignoring alien requirement: coverage>=5.5; extra == "test-tox-coverage" + cat /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-buildrequires + rm -rfv beartype-0.18.5.dist-info/ removed 'beartype-0.18.5.dist-info/top_level.txt' removed 'beartype-0.18.5.dist-info/METADATA' removed 'beartype-0.18.5.dist-info/licenses/LICENSE' removed directory 'beartype-0.18.5.dist-info/licenses' removed directory 'beartype-0.18.5.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.i9ZosB + umask 022 + cd /builddir/build/BUILD/python-beartype-0.18.5-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd beartype-0.18.5 + mkdir -p /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/pyproject-wheeldir Processing /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) WARNING: Registering "setup.py" directory for importation under broken installer (e.g., pip >= 19.0.0)... /usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running dist_info creating /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir/pip-modern-metadata-zfda7vzj/beartype.egg-info writing /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir/pip-modern-metadata-zfda7vzj/beartype.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir/pip-modern-metadata-zfda7vzj/beartype.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir/pip-modern-metadata-zfda7vzj/beartype.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir/pip-modern-metadata-zfda7vzj/beartype.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir/pip-modern-metadata-zfda7vzj/beartype.egg-info/SOURCES.txt' reading manifest file '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir/pip-modern-metadata-zfda7vzj/beartype.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.pyc' found under directory '*' warning: no previously-included files matching '*.pyo' found under directory '*' adding license file 'LICENSE' writing manifest file '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir/pip-modern-metadata-zfda7vzj/beartype.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir/pip-modern-metadata-zfda7vzj/beartype-0.18.5.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: beartype Building wheel for beartype (pyproject.toml): started Running command Building wheel for beartype (pyproject.toml) WARNING: Registering "setup.py" directory for importation under broken installer (e.g., pip >= 19.0.0)... /usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running bdist_wheel running build running build_py creating build/lib/beartype copying beartype/__init__.py -> build/lib/beartype copying beartype/meta.py -> build/lib/beartype creating build/lib/beartype/_cave copying beartype/_cave/__init__.py -> build/lib/beartype/_cave copying beartype/_cave/_caveabc.py -> build/lib/beartype/_cave copying beartype/_cave/_cavefast.py -> build/lib/beartype/_cave copying beartype/_cave/_cavemap.py -> build/lib/beartype/_cave creating build/lib/beartype/_check copying beartype/_check/__init__.py -> build/lib/beartype/_check copying beartype/_check/_checksnip.py -> build/lib/beartype/_check copying beartype/_check/checkcache.py -> build/lib/beartype/_check copying beartype/_check/checkcall.py -> build/lib/beartype/_check copying beartype/_check/checkmagic.py -> build/lib/beartype/_check copying beartype/_check/checkmake.py -> build/lib/beartype/_check creating build/lib/beartype/_conf copying beartype/_conf/__init__.py -> build/lib/beartype/_conf copying beartype/_conf/_confget.py -> build/lib/beartype/_conf copying beartype/_conf/confcls.py -> build/lib/beartype/_conf copying beartype/_conf/confenum.py -> build/lib/beartype/_conf copying beartype/_conf/confoverrides.py -> build/lib/beartype/_conf copying beartype/_conf/conftest.py -> build/lib/beartype/_conf creating build/lib/beartype/_data copying beartype/_data/__init__.py -> build/lib/beartype/_data creating build/lib/beartype/_decor copying beartype/_decor/__init__.py -> build/lib/beartype/_decor copying beartype/_decor/_decornontype.py -> build/lib/beartype/_decor copying beartype/_decor/_decortype.py -> build/lib/beartype/_decor copying beartype/_decor/decorcache.py -> build/lib/beartype/_decor copying beartype/_decor/decorcore.py -> build/lib/beartype/_decor copying beartype/_decor/decormain.py -> build/lib/beartype/_decor creating build/lib/beartype/_util copying beartype/_util/__init__.py -> build/lib/beartype/_util copying beartype/_util/utilobject.py -> build/lib/beartype/_util creating build/lib/beartype/cave copying beartype/cave/__init__.py -> build/lib/beartype/cave copying beartype/cave/_cavelib.py -> build/lib/beartype/cave creating build/lib/beartype/claw copying beartype/claw/__init__.py -> build/lib/beartype/claw copying beartype/claw/_clawmagic.py -> build/lib/beartype/claw copying beartype/claw/_clawmain.py -> build/lib/beartype/claw copying beartype/claw/_clawstate.py -> build/lib/beartype/claw creating build/lib/beartype/door copying beartype/door/__init__.py -> build/lib/beartype/door copying beartype/door/_doorcheck.py -> build/lib/beartype/door copying beartype/door/_doordata.py -> build/lib/beartype/door copying beartype/door/_doortest.py -> build/lib/beartype/door creating build/lib/beartype/peps copying beartype/peps/__init__.py -> build/lib/beartype/peps copying beartype/peps/_pep563.py -> build/lib/beartype/peps creating build/lib/beartype/plug copying beartype/plug/__init__.py -> build/lib/beartype/plug copying beartype/plug/_plughintable.py -> build/lib/beartype/plug creating build/lib/beartype/roar copying beartype/roar/__init__.py -> build/lib/beartype/roar copying beartype/roar/_roarexc.py -> build/lib/beartype/roar copying beartype/roar/_roarwarn.py -> build/lib/beartype/roar creating build/lib/beartype/typing copying beartype/typing/__init__.py -> build/lib/beartype/typing copying beartype/typing/_typingcache.py -> build/lib/beartype/typing copying beartype/typing/_typingpep544.py -> build/lib/beartype/typing creating build/lib/beartype/vale copying beartype/vale/__init__.py -> build/lib/beartype/vale creating build/lib/beartype/_check/code copying beartype/_check/code/__init__.py -> build/lib/beartype/_check/code copying beartype/_check/code/codecls.py -> build/lib/beartype/_check/code copying beartype/_check/code/codemagic.py -> build/lib/beartype/_check/code copying beartype/_check/code/codemake.py -> build/lib/beartype/_check/code copying beartype/_check/code/codescope.py -> build/lib/beartype/_check/code creating build/lib/beartype/_check/convert copying beartype/_check/convert/__init__.py -> build/lib/beartype/_check/convert copying beartype/_check/convert/convcoerce.py -> build/lib/beartype/_check/convert copying beartype/_check/convert/convreduce.py -> build/lib/beartype/_check/convert copying beartype/_check/convert/convsanify.py -> build/lib/beartype/_check/convert creating build/lib/beartype/_check/error copying beartype/_check/error/__init__.py -> build/lib/beartype/_check/error copying beartype/_check/error/_errorcause.py -> build/lib/beartype/_check/error copying beartype/_check/error/_errordata.py -> build/lib/beartype/_check/error copying beartype/_check/error/_errortype.py -> build/lib/beartype/_check/error copying beartype/_check/error/errorget.py -> build/lib/beartype/_check/error creating build/lib/beartype/_check/forward copying beartype/_check/forward/__init__.py -> build/lib/beartype/_check/forward copying beartype/_check/forward/fwdmain.py -> build/lib/beartype/_check/forward copying beartype/_check/forward/fwdscope.py -> build/lib/beartype/_check/forward creating build/lib/beartype/_check/util copying beartype/_check/util/__init__.py -> build/lib/beartype/_check/util copying beartype/_check/util/_checkutilsnip.py -> build/lib/beartype/_check/util copying beartype/_check/util/checkutilmake.py -> build/lib/beartype/_check/util creating build/lib/beartype/_check/code/snip copying beartype/_check/code/snip/__init__.py -> build/lib/beartype/_check/code/snip copying beartype/_check/code/snip/codesnipcls.py -> build/lib/beartype/_check/code/snip copying beartype/_check/code/snip/codesnipstr.py -> build/lib/beartype/_check/code/snip creating build/lib/beartype/_check/error/_pep copying beartype/_check/error/_pep/__init__.py -> build/lib/beartype/_check/error/_pep copying beartype/_check/error/_pep/errorpep484604union.py -> build/lib/beartype/_check/error/_pep copying beartype/_check/error/_pep/errorpep586.py -> build/lib/beartype/_check/error/_pep copying beartype/_check/error/_pep/errorpep593.py -> build/lib/beartype/_check/error/_pep creating build/lib/beartype/_check/error/_pep/pep484 copying beartype/_check/error/_pep/pep484/__init__.py -> build/lib/beartype/_check/error/_pep/pep484 copying beartype/_check/error/_pep/pep484/errornoreturn.py -> build/lib/beartype/_check/error/_pep/pep484 creating build/lib/beartype/_check/error/_pep/pep484585 copying beartype/_check/error/_pep/pep484585/__init__.py -> build/lib/beartype/_check/error/_pep/pep484585 copying beartype/_check/error/_pep/pep484585/errorgeneric.py -> build/lib/beartype/_check/error/_pep/pep484585 copying beartype/_check/error/_pep/pep484585/errormapping.py -> build/lib/beartype/_check/error/_pep/pep484585 copying beartype/_check/error/_pep/pep484585/errorsequence.py -> build/lib/beartype/_check/error/_pep/pep484585 creating build/lib/beartype/_check/forward/reference copying beartype/_check/forward/reference/__init__.py -> build/lib/beartype/_check/forward/reference copying beartype/_check/forward/reference/fwdrefabc.py -> build/lib/beartype/_check/forward/reference copying beartype/_check/forward/reference/fwdrefmake.py -> build/lib/beartype/_check/forward/reference copying beartype/_check/forward/reference/fwdrefmeta.py -> build/lib/beartype/_check/forward/reference copying beartype/_check/forward/reference/fwdreftest.py -> build/lib/beartype/_check/forward/reference creating build/lib/beartype/_data/ast copying beartype/_data/ast/__init__.py -> build/lib/beartype/_data/ast copying beartype/_data/ast/dataast.py -> build/lib/beartype/_data/ast creating build/lib/beartype/_data/cls copying beartype/_data/cls/__init__.py -> build/lib/beartype/_data/cls copying beartype/_data/cls/datacls.py -> build/lib/beartype/_data/cls creating build/lib/beartype/_data/code copying beartype/_data/code/__init__.py -> build/lib/beartype/_data/code copying beartype/_data/code/datacodeindent.py -> build/lib/beartype/_data/code copying beartype/_data/code/datacodemagic.py -> build/lib/beartype/_data/code creating build/lib/beartype/_data/error copying beartype/_data/error/__init__.py -> build/lib/beartype/_data/error copying beartype/_data/error/dataerrmagic.py -> build/lib/beartype/_data/error creating build/lib/beartype/_data/func copying beartype/_data/func/__init__.py -> build/lib/beartype/_data/func copying beartype/_data/func/datafunc.py -> build/lib/beartype/_data/func copying beartype/_data/func/datafuncarg.py -> build/lib/beartype/_data/func copying beartype/_data/func/datafunccodeobj.py -> build/lib/beartype/_data/func creating build/lib/beartype/_data/hint copying beartype/_data/hint/__init__.py -> build/lib/beartype/_data/hint copying beartype/_data/hint/datahintfactory.py -> build/lib/beartype/_data/hint copying beartype/_data/hint/datahinttyping.py -> build/lib/beartype/_data/hint creating build/lib/beartype/_data/kind copying beartype/_data/kind/__init__.py -> build/lib/beartype/_data/kind copying beartype/_data/kind/datakinddict.py -> build/lib/beartype/_data/kind copying beartype/_data/kind/datakindsequence.py -> build/lib/beartype/_data/kind copying beartype/_data/kind/datakindset.py -> build/lib/beartype/_data/kind copying beartype/_data/kind/datakindtext.py -> build/lib/beartype/_data/kind creating build/lib/beartype/_data/module copying beartype/_data/module/__init__.py -> build/lib/beartype/_data/module copying beartype/_data/module/datamodcontextlib.py -> build/lib/beartype/_data/module copying beartype/_data/module/datamodpy.py -> build/lib/beartype/_data/module copying beartype/_data/module/datamodtyping.py -> build/lib/beartype/_data/module creating build/lib/beartype/_data/os copying beartype/_data/os/__init__.py -> build/lib/beartype/_data/os copying beartype/_data/os/dataosshell.py -> build/lib/beartype/_data/os creating build/lib/beartype/_data/hint/pep copying beartype/_data/hint/pep/__init__.py -> build/lib/beartype/_data/hint/pep copying beartype/_data/hint/pep/datapeprepr.py -> build/lib/beartype/_data/hint/pep creating build/lib/beartype/_data/hint/pep/sign copying beartype/_data/hint/pep/sign/__init__.py -> build/lib/beartype/_data/hint/pep/sign copying beartype/_data/hint/pep/sign/datapepsigncls.py -> build/lib/beartype/_data/hint/pep/sign copying beartype/_data/hint/pep/sign/datapepsigns.py -> build/lib/beartype/_data/hint/pep/sign copying beartype/_data/hint/pep/sign/datapepsignset.py -> build/lib/beartype/_data/hint/pep/sign copying beartype/_data/hint/pep/sign/datapepsignmap.py -> build/lib/beartype/_data/hint/pep/sign creating build/lib/beartype/_decor/wrap copying beartype/_decor/wrap/__init__.py -> build/lib/beartype/_decor/wrap copying beartype/_decor/wrap/_wrapargs.py -> build/lib/beartype/_decor/wrap copying beartype/_decor/wrap/_wrapreturn.py -> build/lib/beartype/_decor/wrap copying beartype/_decor/wrap/_wraputil.py -> build/lib/beartype/_decor/wrap copying beartype/_decor/wrap/wrapmain.py -> build/lib/beartype/_decor/wrap copying beartype/_decor/wrap/wrapsnip.py -> build/lib/beartype/_decor/wrap creating build/lib/beartype/_util/api copying beartype/_util/api/__init__.py -> build/lib/beartype/_util/api copying beartype/_util/api/utilapibeartype.py -> build/lib/beartype/_util/api copying beartype/_util/api/utilapicontextlib.py -> build/lib/beartype/_util/api copying beartype/_util/api/utilapifunctools.py -> build/lib/beartype/_util/api copying beartype/_util/api/utilapisphinx.py -> build/lib/beartype/_util/api copying beartype/_util/api/utilapityping.py -> build/lib/beartype/_util/api creating build/lib/beartype/_util/ast copying beartype/_util/ast/__init__.py -> build/lib/beartype/_util/ast copying beartype/_util/ast/utilastget.py -> build/lib/beartype/_util/ast copying beartype/_util/ast/utilastmake.py -> build/lib/beartype/_util/ast copying beartype/_util/ast/utilastmunge.py -> build/lib/beartype/_util/ast copying beartype/_util/ast/utilasttest.py -> build/lib/beartype/_util/ast creating build/lib/beartype/_util/cache copying beartype/_util/cache/__init__.py -> build/lib/beartype/_util/cache copying beartype/_util/cache/utilcachecall.py -> build/lib/beartype/_util/cache copying beartype/_util/cache/utilcachemeta.py -> build/lib/beartype/_util/cache creating build/lib/beartype/_util/cls copying beartype/_util/cls/__init__.py -> build/lib/beartype/_util/cls copying beartype/_util/cls/utilclsget.py -> build/lib/beartype/_util/cls copying beartype/_util/cls/utilclsmake.py -> build/lib/beartype/_util/cls copying beartype/_util/cls/utilclsset.py -> build/lib/beartype/_util/cls copying beartype/_util/cls/utilclstest.py -> build/lib/beartype/_util/cls creating build/lib/beartype/_util/error copying beartype/_util/error/__init__.py -> build/lib/beartype/_util/error copying beartype/_util/error/utilerrget.py -> build/lib/beartype/_util/error copying beartype/_util/error/utilerrraise.py -> build/lib/beartype/_util/error copying beartype/_util/error/utilerrtest.py -> build/lib/beartype/_util/error copying beartype/_util/error/utilerrwarn.py -> build/lib/beartype/_util/error creating build/lib/beartype/_util/func copying beartype/_util/func/__init__.py -> build/lib/beartype/_util/func copying beartype/_util/func/utilfunccode.py -> build/lib/beartype/_util/func copying beartype/_util/func/utilfunccodeobj.py -> build/lib/beartype/_util/func copying beartype/_util/func/utilfuncfile.py -> build/lib/beartype/_util/func copying beartype/_util/func/utilfuncframe.py -> build/lib/beartype/_util/func copying beartype/_util/func/utilfuncget.py -> build/lib/beartype/_util/func copying beartype/_util/func/utilfuncmake.py -> build/lib/beartype/_util/func copying beartype/_util/func/utilfuncscope.py -> build/lib/beartype/_util/func copying beartype/_util/func/utilfunctest.py -> build/lib/beartype/_util/func copying beartype/_util/func/utilfuncwrap.py -> build/lib/beartype/_util/func creating build/lib/beartype/_util/hint copying beartype/_util/hint/__init__.py -> build/lib/beartype/_util/hint copying beartype/_util/hint/utilhintfactory.py -> build/lib/beartype/_util/hint copying beartype/_util/hint/utilhintget.py -> build/lib/beartype/_util/hint copying beartype/_util/hint/utilhinttest.py -> build/lib/beartype/_util/hint creating build/lib/beartype/_util/kind copying beartype/_util/kind/__init__.py -> build/lib/beartype/_util/kind creating build/lib/beartype/_util/module copying beartype/_util/module/__init__.py -> build/lib/beartype/_util/module copying beartype/_util/module/utilmoddeprecate.py -> build/lib/beartype/_util/module copying beartype/_util/module/utilmodget.py -> build/lib/beartype/_util/module copying beartype/_util/module/utilmodimport.py -> build/lib/beartype/_util/module copying beartype/_util/module/utilmodtest.py -> build/lib/beartype/_util/module creating build/lib/beartype/_util/os copying beartype/_util/os/__init__.py -> build/lib/beartype/_util/os copying beartype/_util/os/utilosshell.py -> build/lib/beartype/_util/os copying beartype/_util/os/utilostest.py -> build/lib/beartype/_util/os copying beartype/_util/os/utilostty.py -> build/lib/beartype/_util/os creating build/lib/beartype/_util/path copying beartype/_util/path/__init__.py -> build/lib/beartype/_util/path copying beartype/_util/path/utilpathremove.py -> build/lib/beartype/_util/path copying beartype/_util/path/utilpathtest.py -> build/lib/beartype/_util/path creating build/lib/beartype/_util/py copying beartype/_util/py/__init__.py -> build/lib/beartype/_util/py copying beartype/_util/py/utilpyinterpreter.py -> build/lib/beartype/_util/py copying beartype/_util/py/utilpyversion.py -> build/lib/beartype/_util/py copying beartype/_util/py/utilpyweakref.py -> build/lib/beartype/_util/py copying beartype/_util/py/utilpyword.py -> build/lib/beartype/_util/py creating build/lib/beartype/_util/text copying beartype/_util/text/__init__.py -> build/lib/beartype/_util/text copying beartype/_util/text/utiltextansi.py -> build/lib/beartype/_util/text copying beartype/_util/text/utiltextget.py -> build/lib/beartype/_util/text copying beartype/_util/text/utiltextidentifier.py -> build/lib/beartype/_util/text copying beartype/_util/text/utiltextjoin.py -> build/lib/beartype/_util/text copying beartype/_util/text/utiltextlabel.py -> build/lib/beartype/_util/text copying beartype/_util/text/utiltextmunge.py -> build/lib/beartype/_util/text copying beartype/_util/text/utiltextprefix.py -> build/lib/beartype/_util/text copying beartype/_util/text/utiltextrepr.py -> build/lib/beartype/_util/text copying beartype/_util/text/utiltexttest.py -> build/lib/beartype/_util/text copying beartype/_util/text/utiltextversion.py -> build/lib/beartype/_util/text creating build/lib/beartype/_util/cache/map copying beartype/_util/cache/map/__init__.py -> build/lib/beartype/_util/cache/map copying beartype/_util/cache/map/utilmapbig.py -> build/lib/beartype/_util/cache/map copying beartype/_util/cache/map/utilmaplru.py -> build/lib/beartype/_util/cache/map creating build/lib/beartype/_util/cache/pool copying beartype/_util/cache/pool/__init__.py -> build/lib/beartype/_util/cache/pool copying beartype/_util/cache/pool/utilcachepool.py -> build/lib/beartype/_util/cache/pool copying beartype/_util/cache/pool/utilcachepoollistfixed.py -> build/lib/beartype/_util/cache/pool copying beartype/_util/cache/pool/utilcachepoolobjecttyped.py -> build/lib/beartype/_util/cache/pool creating build/lib/beartype/_util/cls/pep copying beartype/_util/cls/pep/__init__.py -> build/lib/beartype/_util/cls/pep copying beartype/_util/cls/pep/utilpep3119.py -> build/lib/beartype/_util/cls/pep copying beartype/_util/cls/pep/utilpep557.py -> build/lib/beartype/_util/cls/pep creating build/lib/beartype/_util/func/arg copying beartype/_util/func/arg/__init__.py -> build/lib/beartype/_util/func/arg copying beartype/_util/func/arg/utilfuncargget.py -> build/lib/beartype/_util/func/arg copying beartype/_util/func/arg/utilfuncargiter.py -> build/lib/beartype/_util/func/arg copying beartype/_util/func/arg/utilfuncargtest.py -> build/lib/beartype/_util/func/arg creating build/lib/beartype/_util/func/pep copying beartype/_util/func/pep/__init__.py -> build/lib/beartype/_util/func/pep copying beartype/_util/func/pep/utilpep484func.py -> build/lib/beartype/_util/func/pep creating build/lib/beartype/_util/hint/nonpep copying beartype/_util/hint/nonpep/__init__.py -> build/lib/beartype/_util/hint/nonpep copying beartype/_util/hint/nonpep/utilnonpeptest.py -> build/lib/beartype/_util/hint/nonpep creating build/lib/beartype/_util/hint/pep copying beartype/_util/hint/pep/__init__.py -> build/lib/beartype/_util/hint/pep copying beartype/_util/hint/pep/utilpepget.py -> build/lib/beartype/_util/hint/pep copying beartype/_util/hint/pep/utilpepreduce.py -> build/lib/beartype/_util/hint/pep copying beartype/_util/hint/pep/utilpeptest.py -> build/lib/beartype/_util/hint/pep creating build/lib/beartype/_util/hint/nonpep/mod copying beartype/_util/hint/nonpep/mod/__init__.py -> build/lib/beartype/_util/hint/nonpep/mod copying beartype/_util/hint/nonpep/mod/utilmodnumpy.py -> build/lib/beartype/_util/hint/nonpep/mod copying beartype/_util/hint/nonpep/mod/utilmodpandera.py -> build/lib/beartype/_util/hint/nonpep/mod creating build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/__init__.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep544.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep557.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep585.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep586.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep589.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep591.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep593.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep604.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep613.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep647.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep673.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep675.py -> build/lib/beartype/_util/hint/pep/proposal copying beartype/_util/hint/pep/proposal/utilpep695.py -> build/lib/beartype/_util/hint/pep/proposal creating build/lib/beartype/_util/hint/pep/proposal/pep484 copying beartype/_util/hint/pep/proposal/pep484/__init__.py -> build/lib/beartype/_util/hint/pep/proposal/pep484 copying beartype/_util/hint/pep/proposal/pep484/utilpep484.py -> build/lib/beartype/_util/hint/pep/proposal/pep484 copying beartype/_util/hint/pep/proposal/pep484/utilpep484generic.py -> build/lib/beartype/_util/hint/pep/proposal/pep484 copying beartype/_util/hint/pep/proposal/pep484/utilpep484namedtuple.py -> build/lib/beartype/_util/hint/pep/proposal/pep484 copying beartype/_util/hint/pep/proposal/pep484/utilpep484newtype.py -> build/lib/beartype/_util/hint/pep/proposal/pep484 copying beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py -> build/lib/beartype/_util/hint/pep/proposal/pep484 copying beartype/_util/hint/pep/proposal/pep484/utilpep484union.py -> build/lib/beartype/_util/hint/pep/proposal/pep484 creating build/lib/beartype/_util/hint/pep/proposal/pep484585 copying beartype/_util/hint/pep/proposal/pep484585/__init__.py -> build/lib/beartype/_util/hint/pep/proposal/pep484585 copying beartype/_util/hint/pep/proposal/pep484585/utilpep484585.py -> build/lib/beartype/_util/hint/pep/proposal/pep484585 copying beartype/_util/hint/pep/proposal/pep484585/utilpep484585callable.py -> build/lib/beartype/_util/hint/pep/proposal/pep484585 copying beartype/_util/hint/pep/proposal/pep484585/utilpep484585func.py -> build/lib/beartype/_util/hint/pep/proposal/pep484585 copying beartype/_util/hint/pep/proposal/pep484585/utilpep484585generic.py -> build/lib/beartype/_util/hint/pep/proposal/pep484585 copying beartype/_util/hint/pep/proposal/pep484585/utilpep484585ref.py -> build/lib/beartype/_util/hint/pep/proposal/pep484585 copying beartype/_util/hint/pep/proposal/pep484585/utilpep484585type.py -> build/lib/beartype/_util/hint/pep/proposal/pep484585 creating build/lib/beartype/_util/kind/map copying beartype/_util/kind/map/__init__.py -> build/lib/beartype/_util/kind/map copying beartype/_util/kind/map/utilmapfrozen.py -> build/lib/beartype/_util/kind/map copying beartype/_util/kind/map/utilmapset.py -> build/lib/beartype/_util/kind/map copying beartype/_util/kind/map/utilmaptest.py -> build/lib/beartype/_util/kind/map creating build/lib/beartype/claw/_ast copying beartype/claw/_ast/__init__.py -> build/lib/beartype/claw/_ast copying beartype/claw/_ast/_clawaststar.py -> build/lib/beartype/claw/_ast copying beartype/claw/_ast/_clawastutil.py -> build/lib/beartype/claw/_ast copying beartype/claw/_ast/clawastmain.py -> build/lib/beartype/claw/_ast creating build/lib/beartype/claw/_importlib copying beartype/claw/_importlib/__init__.py -> build/lib/beartype/claw/_importlib copying beartype/claw/_importlib/_clawimpload.py -> build/lib/beartype/claw/_importlib copying beartype/claw/_importlib/clawimpcache.py -> build/lib/beartype/claw/_importlib copying beartype/claw/_importlib/clawimppath.py -> build/lib/beartype/claw/_importlib creating build/lib/beartype/claw/_pkg copying beartype/claw/_pkg/__init__.py -> build/lib/beartype/claw/_pkg copying beartype/claw/_pkg/_clawpkgmake.py -> build/lib/beartype/claw/_pkg copying beartype/claw/_pkg/clawpkgcontext.py -> build/lib/beartype/claw/_pkg copying beartype/claw/_pkg/clawpkgenum.py -> build/lib/beartype/claw/_pkg copying beartype/claw/_pkg/clawpkghook.py -> build/lib/beartype/claw/_pkg copying beartype/claw/_pkg/clawpkgtrie.py -> build/lib/beartype/claw/_pkg creating build/lib/beartype/claw/_ast/pep copying beartype/claw/_ast/pep/__init__.py -> build/lib/beartype/claw/_ast/pep copying beartype/claw/_ast/pep/clawastpep526.py -> build/lib/beartype/claw/_ast/pep copying beartype/claw/_ast/pep/clawastpep695.py -> build/lib/beartype/claw/_ast/pep creating build/lib/beartype/door/_cls copying beartype/door/_cls/__init__.py -> build/lib/beartype/door/_cls copying beartype/door/_cls/doormeta.py -> build/lib/beartype/door/_cls copying beartype/door/_cls/doorsub.py -> build/lib/beartype/door/_cls copying beartype/door/_cls/doorsuper.py -> build/lib/beartype/door/_cls creating build/lib/beartype/door/_cls/pep copying beartype/door/_cls/pep/__init__.py -> build/lib/beartype/door/_cls/pep copying beartype/door/_cls/pep/doorpep484604.py -> build/lib/beartype/door/_cls/pep copying beartype/door/_cls/pep/doorpep586.py -> build/lib/beartype/door/_cls/pep copying beartype/door/_cls/pep/doorpep593.py -> build/lib/beartype/door/_cls/pep creating build/lib/beartype/door/_cls/pep/pep484 copying beartype/door/_cls/pep/pep484/__init__.py -> build/lib/beartype/door/_cls/pep/pep484 copying beartype/door/_cls/pep/pep484/doorpep484class.py -> build/lib/beartype/door/_cls/pep/pep484 copying beartype/door/_cls/pep/pep484/doorpep484newtype.py -> build/lib/beartype/door/_cls/pep/pep484 copying beartype/door/_cls/pep/pep484/doorpep484typevar.py -> build/lib/beartype/door/_cls/pep/pep484 creating build/lib/beartype/door/_cls/pep/pep484585 copying beartype/door/_cls/pep/pep484585/__init__.py -> build/lib/beartype/door/_cls/pep/pep484585 copying beartype/door/_cls/pep/pep484585/doorpep484585callable.py -> build/lib/beartype/door/_cls/pep/pep484585 copying beartype/door/_cls/pep/pep484585/doorpep484585tuple.py -> build/lib/beartype/door/_cls/pep/pep484585 creating build/lib/beartype/vale/_core copying beartype/vale/_core/__init__.py -> build/lib/beartype/vale/_core copying beartype/vale/_core/_valecore.py -> build/lib/beartype/vale/_core copying beartype/vale/_core/_valecorebinary.py -> build/lib/beartype/vale/_core copying beartype/vale/_core/_valecoreunary.py -> build/lib/beartype/vale/_core creating build/lib/beartype/vale/_is copying beartype/vale/_is/__init__.py -> build/lib/beartype/vale/_is copying beartype/vale/_is/_valeis.py -> build/lib/beartype/vale/_is copying beartype/vale/_is/_valeisabc.py -> build/lib/beartype/vale/_is copying beartype/vale/_is/_valeisobj.py -> build/lib/beartype/vale/_is copying beartype/vale/_is/_valeisoper.py -> build/lib/beartype/vale/_is copying beartype/vale/_is/_valeistype.py -> build/lib/beartype/vale/_is creating build/lib/beartype/vale/_util copying beartype/vale/_util/__init__.py -> build/lib/beartype/vale/_util copying beartype/vale/_util/_valeutilfunc.py -> build/lib/beartype/vale/_util copying beartype/vale/_util/_valeutilsnip.py -> build/lib/beartype/vale/_util copying beartype/vale/_util/_valeutiltext.py -> build/lib/beartype/vale/_util copying beartype/vale/_util/_valeutiltyping.py -> build/lib/beartype/vale/_util running egg_info writing beartype.egg-info/PKG-INFO writing dependency_links to beartype.egg-info/dependency_links.txt writing requirements to beartype.egg-info/requires.txt writing top-level names to beartype.egg-info/top_level.txt reading manifest file 'beartype.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.pyc' found under directory '*' warning: no previously-included files matching '*.pyo' found under directory '*' adding license file 'LICENSE' writing manifest file 'beartype.egg-info/SOURCES.txt' copying beartype/py.typed -> build/lib/beartype installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/beartype copying build/lib/beartype/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype copying build/lib/beartype/meta.py -> build/bdist.linux-x86_64/wheel/./beartype creating build/bdist.linux-x86_64/wheel/beartype/_cave copying build/lib/beartype/_cave/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_cave copying build/lib/beartype/_cave/_caveabc.py -> build/bdist.linux-x86_64/wheel/./beartype/_cave copying build/lib/beartype/_cave/_cavefast.py -> build/bdist.linux-x86_64/wheel/./beartype/_cave copying build/lib/beartype/_cave/_cavemap.py -> build/bdist.linux-x86_64/wheel/./beartype/_cave creating build/bdist.linux-x86_64/wheel/beartype/_check copying build/lib/beartype/_check/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check copying build/lib/beartype/_check/_checksnip.py -> build/bdist.linux-x86_64/wheel/./beartype/_check copying build/lib/beartype/_check/checkcache.py -> build/bdist.linux-x86_64/wheel/./beartype/_check copying build/lib/beartype/_check/checkcall.py -> build/bdist.linux-x86_64/wheel/./beartype/_check copying build/lib/beartype/_check/checkmagic.py -> build/bdist.linux-x86_64/wheel/./beartype/_check copying build/lib/beartype/_check/checkmake.py -> build/bdist.linux-x86_64/wheel/./beartype/_check creating build/bdist.linux-x86_64/wheel/beartype/_check/code copying build/lib/beartype/_check/code/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/code copying build/lib/beartype/_check/code/codecls.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/code copying build/lib/beartype/_check/code/codemagic.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/code copying build/lib/beartype/_check/code/codemake.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/code copying build/lib/beartype/_check/code/codescope.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/code creating build/bdist.linux-x86_64/wheel/beartype/_check/code/snip copying build/lib/beartype/_check/code/snip/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/code/snip copying build/lib/beartype/_check/code/snip/codesnipcls.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/code/snip copying build/lib/beartype/_check/code/snip/codesnipstr.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/code/snip creating build/bdist.linux-x86_64/wheel/beartype/_check/convert copying build/lib/beartype/_check/convert/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/convert copying build/lib/beartype/_check/convert/convcoerce.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/convert copying build/lib/beartype/_check/convert/convreduce.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/convert copying build/lib/beartype/_check/convert/convsanify.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/convert creating build/bdist.linux-x86_64/wheel/beartype/_check/error copying build/lib/beartype/_check/error/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error copying build/lib/beartype/_check/error/_errorcause.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error copying build/lib/beartype/_check/error/_errordata.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error copying build/lib/beartype/_check/error/_errortype.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error copying build/lib/beartype/_check/error/errorget.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error creating build/bdist.linux-x86_64/wheel/beartype/_check/error/_pep copying build/lib/beartype/_check/error/_pep/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error/_pep copying build/lib/beartype/_check/error/_pep/errorpep484604union.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error/_pep copying build/lib/beartype/_check/error/_pep/errorpep586.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error/_pep copying build/lib/beartype/_check/error/_pep/errorpep593.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error/_pep creating build/bdist.linux-x86_64/wheel/beartype/_check/error/_pep/pep484 copying build/lib/beartype/_check/error/_pep/pep484/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error/_pep/pep484 copying build/lib/beartype/_check/error/_pep/pep484/errornoreturn.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error/_pep/pep484 creating build/bdist.linux-x86_64/wheel/beartype/_check/error/_pep/pep484585 copying build/lib/beartype/_check/error/_pep/pep484585/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error/_pep/pep484585 copying build/lib/beartype/_check/error/_pep/pep484585/errorgeneric.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error/_pep/pep484585 copying build/lib/beartype/_check/error/_pep/pep484585/errormapping.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error/_pep/pep484585 copying build/lib/beartype/_check/error/_pep/pep484585/errorsequence.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/error/_pep/pep484585 creating build/bdist.linux-x86_64/wheel/beartype/_check/forward copying build/lib/beartype/_check/forward/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/forward copying build/lib/beartype/_check/forward/fwdmain.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/forward copying build/lib/beartype/_check/forward/fwdscope.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/forward creating build/bdist.linux-x86_64/wheel/beartype/_check/forward/reference copying build/lib/beartype/_check/forward/reference/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/forward/reference copying build/lib/beartype/_check/forward/reference/fwdrefabc.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/forward/reference copying build/lib/beartype/_check/forward/reference/fwdrefmake.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/forward/reference copying build/lib/beartype/_check/forward/reference/fwdrefmeta.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/forward/reference copying build/lib/beartype/_check/forward/reference/fwdreftest.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/forward/reference creating build/bdist.linux-x86_64/wheel/beartype/_check/util copying build/lib/beartype/_check/util/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/util copying build/lib/beartype/_check/util/_checkutilsnip.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/util copying build/lib/beartype/_check/util/checkutilmake.py -> build/bdist.linux-x86_64/wheel/./beartype/_check/util creating build/bdist.linux-x86_64/wheel/beartype/_conf copying build/lib/beartype/_conf/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_conf copying build/lib/beartype/_conf/_confget.py -> build/bdist.linux-x86_64/wheel/./beartype/_conf copying build/lib/beartype/_conf/confcls.py -> build/bdist.linux-x86_64/wheel/./beartype/_conf copying build/lib/beartype/_conf/confenum.py -> build/bdist.linux-x86_64/wheel/./beartype/_conf copying build/lib/beartype/_conf/confoverrides.py -> build/bdist.linux-x86_64/wheel/./beartype/_conf copying build/lib/beartype/_conf/conftest.py -> build/bdist.linux-x86_64/wheel/./beartype/_conf creating build/bdist.linux-x86_64/wheel/beartype/_data copying build/lib/beartype/_data/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data creating build/bdist.linux-x86_64/wheel/beartype/_data/ast copying build/lib/beartype/_data/ast/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/ast copying build/lib/beartype/_data/ast/dataast.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/ast creating build/bdist.linux-x86_64/wheel/beartype/_data/cls copying build/lib/beartype/_data/cls/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/cls copying build/lib/beartype/_data/cls/datacls.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/cls creating build/bdist.linux-x86_64/wheel/beartype/_data/code copying build/lib/beartype/_data/code/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/code copying build/lib/beartype/_data/code/datacodeindent.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/code copying build/lib/beartype/_data/code/datacodemagic.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/code creating build/bdist.linux-x86_64/wheel/beartype/_data/error copying build/lib/beartype/_data/error/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/error copying build/lib/beartype/_data/error/dataerrmagic.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/error creating build/bdist.linux-x86_64/wheel/beartype/_data/func copying build/lib/beartype/_data/func/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/func copying build/lib/beartype/_data/func/datafunc.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/func copying build/lib/beartype/_data/func/datafuncarg.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/func copying build/lib/beartype/_data/func/datafunccodeobj.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/func creating build/bdist.linux-x86_64/wheel/beartype/_data/hint copying build/lib/beartype/_data/hint/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/hint copying build/lib/beartype/_data/hint/datahintfactory.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/hint copying build/lib/beartype/_data/hint/datahinttyping.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/hint creating build/bdist.linux-x86_64/wheel/beartype/_data/hint/pep copying build/lib/beartype/_data/hint/pep/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/hint/pep copying build/lib/beartype/_data/hint/pep/datapeprepr.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/hint/pep creating build/bdist.linux-x86_64/wheel/beartype/_data/hint/pep/sign copying build/lib/beartype/_data/hint/pep/sign/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/hint/pep/sign copying build/lib/beartype/_data/hint/pep/sign/datapepsigncls.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/hint/pep/sign copying build/lib/beartype/_data/hint/pep/sign/datapepsigns.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/hint/pep/sign copying build/lib/beartype/_data/hint/pep/sign/datapepsignset.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/hint/pep/sign copying build/lib/beartype/_data/hint/pep/sign/datapepsignmap.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/hint/pep/sign creating build/bdist.linux-x86_64/wheel/beartype/_data/kind copying build/lib/beartype/_data/kind/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/kind copying build/lib/beartype/_data/kind/datakinddict.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/kind copying build/lib/beartype/_data/kind/datakindsequence.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/kind copying build/lib/beartype/_data/kind/datakindset.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/kind copying build/lib/beartype/_data/kind/datakindtext.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/kind creating build/bdist.linux-x86_64/wheel/beartype/_data/module copying build/lib/beartype/_data/module/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/module copying build/lib/beartype/_data/module/datamodcontextlib.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/module copying build/lib/beartype/_data/module/datamodpy.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/module copying build/lib/beartype/_data/module/datamodtyping.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/module creating build/bdist.linux-x86_64/wheel/beartype/_data/os copying build/lib/beartype/_data/os/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/os copying build/lib/beartype/_data/os/dataosshell.py -> build/bdist.linux-x86_64/wheel/./beartype/_data/os creating build/bdist.linux-x86_64/wheel/beartype/_decor copying build/lib/beartype/_decor/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor copying build/lib/beartype/_decor/_decornontype.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor copying build/lib/beartype/_decor/_decortype.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor copying build/lib/beartype/_decor/decorcache.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor copying build/lib/beartype/_decor/decorcore.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor copying build/lib/beartype/_decor/decormain.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor creating build/bdist.linux-x86_64/wheel/beartype/_decor/wrap copying build/lib/beartype/_decor/wrap/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor/wrap copying build/lib/beartype/_decor/wrap/_wrapargs.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor/wrap copying build/lib/beartype/_decor/wrap/_wrapreturn.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor/wrap copying build/lib/beartype/_decor/wrap/_wraputil.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor/wrap copying build/lib/beartype/_decor/wrap/wrapmain.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor/wrap copying build/lib/beartype/_decor/wrap/wrapsnip.py -> build/bdist.linux-x86_64/wheel/./beartype/_decor/wrap creating build/bdist.linux-x86_64/wheel/beartype/_util copying build/lib/beartype/_util/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util copying build/lib/beartype/_util/utilobject.py -> build/bdist.linux-x86_64/wheel/./beartype/_util creating build/bdist.linux-x86_64/wheel/beartype/_util/api copying build/lib/beartype/_util/api/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/api copying build/lib/beartype/_util/api/utilapibeartype.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/api copying build/lib/beartype/_util/api/utilapicontextlib.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/api copying build/lib/beartype/_util/api/utilapifunctools.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/api copying build/lib/beartype/_util/api/utilapisphinx.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/api copying build/lib/beartype/_util/api/utilapityping.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/api creating build/bdist.linux-x86_64/wheel/beartype/_util/ast copying build/lib/beartype/_util/ast/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/ast copying build/lib/beartype/_util/ast/utilastget.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/ast copying build/lib/beartype/_util/ast/utilastmake.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/ast copying build/lib/beartype/_util/ast/utilastmunge.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/ast copying build/lib/beartype/_util/ast/utilasttest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/ast creating build/bdist.linux-x86_64/wheel/beartype/_util/cache copying build/lib/beartype/_util/cache/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cache copying build/lib/beartype/_util/cache/utilcachecall.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cache copying build/lib/beartype/_util/cache/utilcachemeta.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cache creating build/bdist.linux-x86_64/wheel/beartype/_util/cache/map copying build/lib/beartype/_util/cache/map/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cache/map copying build/lib/beartype/_util/cache/map/utilmapbig.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cache/map copying build/lib/beartype/_util/cache/map/utilmaplru.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cache/map creating build/bdist.linux-x86_64/wheel/beartype/_util/cache/pool copying build/lib/beartype/_util/cache/pool/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cache/pool copying build/lib/beartype/_util/cache/pool/utilcachepool.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cache/pool copying build/lib/beartype/_util/cache/pool/utilcachepoollistfixed.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cache/pool copying build/lib/beartype/_util/cache/pool/utilcachepoolobjecttyped.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cache/pool creating build/bdist.linux-x86_64/wheel/beartype/_util/cls copying build/lib/beartype/_util/cls/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cls copying build/lib/beartype/_util/cls/utilclsget.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cls copying build/lib/beartype/_util/cls/utilclsmake.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cls copying build/lib/beartype/_util/cls/utilclsset.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cls copying build/lib/beartype/_util/cls/utilclstest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cls creating build/bdist.linux-x86_64/wheel/beartype/_util/cls/pep copying build/lib/beartype/_util/cls/pep/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cls/pep copying build/lib/beartype/_util/cls/pep/utilpep3119.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cls/pep copying build/lib/beartype/_util/cls/pep/utilpep557.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/cls/pep creating build/bdist.linux-x86_64/wheel/beartype/_util/error copying build/lib/beartype/_util/error/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/error copying build/lib/beartype/_util/error/utilerrget.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/error copying build/lib/beartype/_util/error/utilerrraise.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/error copying build/lib/beartype/_util/error/utilerrtest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/error copying build/lib/beartype/_util/error/utilerrwarn.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/error creating build/bdist.linux-x86_64/wheel/beartype/_util/func copying build/lib/beartype/_util/func/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func copying build/lib/beartype/_util/func/utilfunccode.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func copying build/lib/beartype/_util/func/utilfunccodeobj.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func copying build/lib/beartype/_util/func/utilfuncfile.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func copying build/lib/beartype/_util/func/utilfuncframe.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func copying build/lib/beartype/_util/func/utilfuncget.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func copying build/lib/beartype/_util/func/utilfuncmake.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func copying build/lib/beartype/_util/func/utilfuncscope.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func copying build/lib/beartype/_util/func/utilfunctest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func copying build/lib/beartype/_util/func/utilfuncwrap.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func creating build/bdist.linux-x86_64/wheel/beartype/_util/func/arg copying build/lib/beartype/_util/func/arg/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func/arg copying build/lib/beartype/_util/func/arg/utilfuncargget.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func/arg copying build/lib/beartype/_util/func/arg/utilfuncargiter.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func/arg copying build/lib/beartype/_util/func/arg/utilfuncargtest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func/arg creating build/bdist.linux-x86_64/wheel/beartype/_util/func/pep copying build/lib/beartype/_util/func/pep/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func/pep copying build/lib/beartype/_util/func/pep/utilpep484func.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/func/pep creating build/bdist.linux-x86_64/wheel/beartype/_util/hint copying build/lib/beartype/_util/hint/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint copying build/lib/beartype/_util/hint/utilhintfactory.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint copying build/lib/beartype/_util/hint/utilhintget.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint copying build/lib/beartype/_util/hint/utilhinttest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint creating build/bdist.linux-x86_64/wheel/beartype/_util/hint/nonpep copying build/lib/beartype/_util/hint/nonpep/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/nonpep copying build/lib/beartype/_util/hint/nonpep/utilnonpeptest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/nonpep creating build/bdist.linux-x86_64/wheel/beartype/_util/hint/nonpep/mod copying build/lib/beartype/_util/hint/nonpep/mod/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/nonpep/mod copying build/lib/beartype/_util/hint/nonpep/mod/utilmodnumpy.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/nonpep/mod copying build/lib/beartype/_util/hint/nonpep/mod/utilmodpandera.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/nonpep/mod creating build/bdist.linux-x86_64/wheel/beartype/_util/hint/pep copying build/lib/beartype/_util/hint/pep/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep copying build/lib/beartype/_util/hint/pep/utilpepget.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep copying build/lib/beartype/_util/hint/pep/utilpepreduce.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep copying build/lib/beartype/_util/hint/pep/utilpeptest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep creating build/bdist.linux-x86_64/wheel/beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep544.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep557.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep585.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep586.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep589.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep591.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep593.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep604.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep613.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep647.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep673.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep675.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal copying build/lib/beartype/_util/hint/pep/proposal/utilpep695.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal creating build/bdist.linux-x86_64/wheel/beartype/_util/hint/pep/proposal/pep484 copying build/lib/beartype/_util/hint/pep/proposal/pep484/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484 copying build/lib/beartype/_util/hint/pep/proposal/pep484/utilpep484.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484 copying build/lib/beartype/_util/hint/pep/proposal/pep484/utilpep484generic.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484 copying build/lib/beartype/_util/hint/pep/proposal/pep484/utilpep484namedtuple.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484 copying build/lib/beartype/_util/hint/pep/proposal/pep484/utilpep484newtype.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484 copying build/lib/beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484 copying build/lib/beartype/_util/hint/pep/proposal/pep484/utilpep484union.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484 creating build/bdist.linux-x86_64/wheel/beartype/_util/hint/pep/proposal/pep484585 copying build/lib/beartype/_util/hint/pep/proposal/pep484585/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484585 copying build/lib/beartype/_util/hint/pep/proposal/pep484585/utilpep484585.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484585 copying build/lib/beartype/_util/hint/pep/proposal/pep484585/utilpep484585callable.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484585 copying build/lib/beartype/_util/hint/pep/proposal/pep484585/utilpep484585func.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484585 copying build/lib/beartype/_util/hint/pep/proposal/pep484585/utilpep484585generic.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484585 copying build/lib/beartype/_util/hint/pep/proposal/pep484585/utilpep484585ref.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484585 copying build/lib/beartype/_util/hint/pep/proposal/pep484585/utilpep484585type.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/hint/pep/proposal/pep484585 creating build/bdist.linux-x86_64/wheel/beartype/_util/kind copying build/lib/beartype/_util/kind/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/kind creating build/bdist.linux-x86_64/wheel/beartype/_util/kind/map copying build/lib/beartype/_util/kind/map/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/kind/map copying build/lib/beartype/_util/kind/map/utilmapfrozen.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/kind/map copying build/lib/beartype/_util/kind/map/utilmapset.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/kind/map copying build/lib/beartype/_util/kind/map/utilmaptest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/kind/map creating build/bdist.linux-x86_64/wheel/beartype/_util/module copying build/lib/beartype/_util/module/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/module copying build/lib/beartype/_util/module/utilmoddeprecate.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/module copying build/lib/beartype/_util/module/utilmodget.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/module copying build/lib/beartype/_util/module/utilmodimport.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/module copying build/lib/beartype/_util/module/utilmodtest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/module creating build/bdist.linux-x86_64/wheel/beartype/_util/os copying build/lib/beartype/_util/os/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/os copying build/lib/beartype/_util/os/utilosshell.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/os copying build/lib/beartype/_util/os/utilostest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/os copying build/lib/beartype/_util/os/utilostty.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/os creating build/bdist.linux-x86_64/wheel/beartype/_util/path copying build/lib/beartype/_util/path/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/path copying build/lib/beartype/_util/path/utilpathremove.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/path copying build/lib/beartype/_util/path/utilpathtest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/path creating build/bdist.linux-x86_64/wheel/beartype/_util/py copying build/lib/beartype/_util/py/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/py copying build/lib/beartype/_util/py/utilpyinterpreter.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/py copying build/lib/beartype/_util/py/utilpyversion.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/py copying build/lib/beartype/_util/py/utilpyweakref.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/py copying build/lib/beartype/_util/py/utilpyword.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/py creating build/bdist.linux-x86_64/wheel/beartype/_util/text copying build/lib/beartype/_util/text/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text copying build/lib/beartype/_util/text/utiltextansi.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text copying build/lib/beartype/_util/text/utiltextget.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text copying build/lib/beartype/_util/text/utiltextidentifier.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text copying build/lib/beartype/_util/text/utiltextjoin.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text copying build/lib/beartype/_util/text/utiltextlabel.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text copying build/lib/beartype/_util/text/utiltextmunge.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text copying build/lib/beartype/_util/text/utiltextprefix.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text copying build/lib/beartype/_util/text/utiltextrepr.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text copying build/lib/beartype/_util/text/utiltexttest.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text copying build/lib/beartype/_util/text/utiltextversion.py -> build/bdist.linux-x86_64/wheel/./beartype/_util/text creating build/bdist.linux-x86_64/wheel/beartype/cave copying build/lib/beartype/cave/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/cave copying build/lib/beartype/cave/_cavelib.py -> build/bdist.linux-x86_64/wheel/./beartype/cave creating build/bdist.linux-x86_64/wheel/beartype/claw copying build/lib/beartype/claw/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/claw copying build/lib/beartype/claw/_clawmagic.py -> build/bdist.linux-x86_64/wheel/./beartype/claw copying build/lib/beartype/claw/_clawmain.py -> build/bdist.linux-x86_64/wheel/./beartype/claw copying build/lib/beartype/claw/_clawstate.py -> build/bdist.linux-x86_64/wheel/./beartype/claw creating build/bdist.linux-x86_64/wheel/beartype/claw/_ast copying build/lib/beartype/claw/_ast/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_ast copying build/lib/beartype/claw/_ast/_clawaststar.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_ast copying build/lib/beartype/claw/_ast/_clawastutil.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_ast copying build/lib/beartype/claw/_ast/clawastmain.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_ast creating build/bdist.linux-x86_64/wheel/beartype/claw/_ast/pep copying build/lib/beartype/claw/_ast/pep/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_ast/pep copying build/lib/beartype/claw/_ast/pep/clawastpep526.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_ast/pep copying build/lib/beartype/claw/_ast/pep/clawastpep695.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_ast/pep creating build/bdist.linux-x86_64/wheel/beartype/claw/_importlib copying build/lib/beartype/claw/_importlib/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_importlib copying build/lib/beartype/claw/_importlib/_clawimpload.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_importlib copying build/lib/beartype/claw/_importlib/clawimpcache.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_importlib copying build/lib/beartype/claw/_importlib/clawimppath.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_importlib creating build/bdist.linux-x86_64/wheel/beartype/claw/_pkg copying build/lib/beartype/claw/_pkg/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_pkg copying build/lib/beartype/claw/_pkg/_clawpkgmake.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_pkg copying build/lib/beartype/claw/_pkg/clawpkgcontext.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_pkg copying build/lib/beartype/claw/_pkg/clawpkgenum.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_pkg copying build/lib/beartype/claw/_pkg/clawpkghook.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_pkg copying build/lib/beartype/claw/_pkg/clawpkgtrie.py -> build/bdist.linux-x86_64/wheel/./beartype/claw/_pkg creating build/bdist.linux-x86_64/wheel/beartype/door copying build/lib/beartype/door/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/door copying build/lib/beartype/door/_doorcheck.py -> build/bdist.linux-x86_64/wheel/./beartype/door copying build/lib/beartype/door/_doordata.py -> build/bdist.linux-x86_64/wheel/./beartype/door copying build/lib/beartype/door/_doortest.py -> build/bdist.linux-x86_64/wheel/./beartype/door creating build/bdist.linux-x86_64/wheel/beartype/door/_cls copying build/lib/beartype/door/_cls/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls copying build/lib/beartype/door/_cls/doormeta.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls copying build/lib/beartype/door/_cls/doorsub.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls copying build/lib/beartype/door/_cls/doorsuper.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls creating build/bdist.linux-x86_64/wheel/beartype/door/_cls/pep copying build/lib/beartype/door/_cls/pep/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep copying build/lib/beartype/door/_cls/pep/doorpep484604.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep copying build/lib/beartype/door/_cls/pep/doorpep586.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep copying build/lib/beartype/door/_cls/pep/doorpep593.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep creating build/bdist.linux-x86_64/wheel/beartype/door/_cls/pep/pep484 copying build/lib/beartype/door/_cls/pep/pep484/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep/pep484 copying build/lib/beartype/door/_cls/pep/pep484/doorpep484class.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep/pep484 copying build/lib/beartype/door/_cls/pep/pep484/doorpep484newtype.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep/pep484 copying build/lib/beartype/door/_cls/pep/pep484/doorpep484typevar.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep/pep484 creating build/bdist.linux-x86_64/wheel/beartype/door/_cls/pep/pep484585 copying build/lib/beartype/door/_cls/pep/pep484585/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep/pep484585 copying build/lib/beartype/door/_cls/pep/pep484585/doorpep484585callable.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep/pep484585 copying build/lib/beartype/door/_cls/pep/pep484585/doorpep484585tuple.py -> build/bdist.linux-x86_64/wheel/./beartype/door/_cls/pep/pep484585 creating build/bdist.linux-x86_64/wheel/beartype/peps copying build/lib/beartype/peps/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/peps copying build/lib/beartype/peps/_pep563.py -> build/bdist.linux-x86_64/wheel/./beartype/peps creating build/bdist.linux-x86_64/wheel/beartype/plug copying build/lib/beartype/plug/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/plug copying build/lib/beartype/plug/_plughintable.py -> build/bdist.linux-x86_64/wheel/./beartype/plug creating build/bdist.linux-x86_64/wheel/beartype/roar copying build/lib/beartype/roar/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/roar copying build/lib/beartype/roar/_roarexc.py -> build/bdist.linux-x86_64/wheel/./beartype/roar copying build/lib/beartype/roar/_roarwarn.py -> build/bdist.linux-x86_64/wheel/./beartype/roar creating build/bdist.linux-x86_64/wheel/beartype/typing copying build/lib/beartype/typing/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/typing copying build/lib/beartype/typing/_typingcache.py -> build/bdist.linux-x86_64/wheel/./beartype/typing copying build/lib/beartype/typing/_typingpep544.py -> build/bdist.linux-x86_64/wheel/./beartype/typing creating build/bdist.linux-x86_64/wheel/beartype/vale copying build/lib/beartype/vale/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/vale creating build/bdist.linux-x86_64/wheel/beartype/vale/_core copying build/lib/beartype/vale/_core/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_core copying build/lib/beartype/vale/_core/_valecore.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_core copying build/lib/beartype/vale/_core/_valecorebinary.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_core copying build/lib/beartype/vale/_core/_valecoreunary.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_core creating build/bdist.linux-x86_64/wheel/beartype/vale/_is copying build/lib/beartype/vale/_is/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_is copying build/lib/beartype/vale/_is/_valeis.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_is copying build/lib/beartype/vale/_is/_valeisabc.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_is copying build/lib/beartype/vale/_is/_valeisobj.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_is copying build/lib/beartype/vale/_is/_valeisoper.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_is copying build/lib/beartype/vale/_is/_valeistype.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_is creating build/bdist.linux-x86_64/wheel/beartype/vale/_util copying build/lib/beartype/vale/_util/__init__.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_util copying build/lib/beartype/vale/_util/_valeutilfunc.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_util copying build/lib/beartype/vale/_util/_valeutilsnip.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_util copying build/lib/beartype/vale/_util/_valeutiltext.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_util copying build/lib/beartype/vale/_util/_valeutiltyping.py -> build/bdist.linux-x86_64/wheel/./beartype/vale/_util copying build/lib/beartype/py.typed -> build/bdist.linux-x86_64/wheel/./beartype running install_egg_info Copying beartype.egg-info to build/bdist.linux-x86_64/wheel/./beartype-0.18.5-py3.14.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/beartype-0.18.5.dist-info/WHEEL creating '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir/pip-wheel-qj3zs1nk/.tmp-p2v5pbd8/beartype-0.18.5-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'beartype/__init__.py' adding 'beartype/meta.py' adding 'beartype/py.typed' adding 'beartype/_cave/__init__.py' adding 'beartype/_cave/_caveabc.py' adding 'beartype/_cave/_cavefast.py' adding 'beartype/_cave/_cavemap.py' adding 'beartype/_check/__init__.py' adding 'beartype/_check/_checksnip.py' adding 'beartype/_check/checkcache.py' adding 'beartype/_check/checkcall.py' adding 'beartype/_check/checkmagic.py' adding 'beartype/_check/checkmake.py' adding 'beartype/_check/code/__init__.py' adding 'beartype/_check/code/codecls.py' adding 'beartype/_check/code/codemagic.py' adding 'beartype/_check/code/codemake.py' adding 'beartype/_check/code/codescope.py' adding 'beartype/_check/code/snip/__init__.py' adding 'beartype/_check/code/snip/codesnipcls.py' adding 'beartype/_check/code/snip/codesnipstr.py' adding 'beartype/_check/convert/__init__.py' adding 'beartype/_check/convert/convcoerce.py' adding 'beartype/_check/convert/convreduce.py' adding 'beartype/_check/convert/convsanify.py' adding 'beartype/_check/error/__init__.py' adding 'beartype/_check/error/_errorcause.py' adding 'beartype/_check/error/_errordata.py' adding 'beartype/_check/error/_errortype.py' adding 'beartype/_check/error/errorget.py' adding 'beartype/_check/error/_pep/__init__.py' adding 'beartype/_check/error/_pep/errorpep484604union.py' adding 'beartype/_check/error/_pep/errorpep586.py' adding 'beartype/_check/error/_pep/errorpep593.py' adding 'beartype/_check/error/_pep/pep484/__init__.py' adding 'beartype/_check/error/_pep/pep484/errornoreturn.py' adding 'beartype/_check/error/_pep/pep484585/__init__.py' adding 'beartype/_check/error/_pep/pep484585/errorgeneric.py' adding 'beartype/_check/error/_pep/pep484585/errormapping.py' adding 'beartype/_check/error/_pep/pep484585/errorsequence.py' adding 'beartype/_check/forward/__init__.py' adding 'beartype/_check/forward/fwdmain.py' adding 'beartype/_check/forward/fwdscope.py' adding 'beartype/_check/forward/reference/__init__.py' adding 'beartype/_check/forward/reference/fwdrefabc.py' adding 'beartype/_check/forward/reference/fwdrefmake.py' adding 'beartype/_check/forward/reference/fwdrefmeta.py' adding 'beartype/_check/forward/reference/fwdreftest.py' adding 'beartype/_check/util/__init__.py' adding 'beartype/_check/util/_checkutilsnip.py' adding 'beartype/_check/util/checkutilmake.py' adding 'beartype/_conf/__init__.py' adding 'beartype/_conf/_confget.py' adding 'beartype/_conf/confcls.py' adding 'beartype/_conf/confenum.py' adding 'beartype/_conf/confoverrides.py' adding 'beartype/_conf/conftest.py' adding 'beartype/_data/__init__.py' adding 'beartype/_data/ast/__init__.py' adding 'beartype/_data/ast/dataast.py' adding 'beartype/_data/cls/__init__.py' adding 'beartype/_data/cls/datacls.py' adding 'beartype/_data/code/__init__.py' adding 'beartype/_data/code/datacodeindent.py' adding 'beartype/_data/code/datacodemagic.py' adding 'beartype/_data/error/__init__.py' adding 'beartype/_data/error/dataerrmagic.py' adding 'beartype/_data/func/__init__.py' adding 'beartype/_data/func/datafunc.py' adding 'beartype/_data/func/datafuncarg.py' adding 'beartype/_data/func/datafunccodeobj.py' adding 'beartype/_data/hint/__init__.py' adding 'beartype/_data/hint/datahintfactory.py' adding 'beartype/_data/hint/datahinttyping.py' adding 'beartype/_data/hint/pep/__init__.py' adding 'beartype/_data/hint/pep/datapeprepr.py' adding 'beartype/_data/hint/pep/sign/__init__.py' adding 'beartype/_data/hint/pep/sign/datapepsigncls.py' adding 'beartype/_data/hint/pep/sign/datapepsignmap.py' adding 'beartype/_data/hint/pep/sign/datapepsigns.py' adding 'beartype/_data/hint/pep/sign/datapepsignset.py' adding 'beartype/_data/kind/__init__.py' adding 'beartype/_data/kind/datakinddict.py' adding 'beartype/_data/kind/datakindsequence.py' adding 'beartype/_data/kind/datakindset.py' adding 'beartype/_data/kind/datakindtext.py' adding 'beartype/_data/module/__init__.py' adding 'beartype/_data/module/datamodcontextlib.py' adding 'beartype/_data/module/datamodpy.py' adding 'beartype/_data/module/datamodtyping.py' adding 'beartype/_data/os/__init__.py' adding 'beartype/_data/os/dataosshell.py' adding 'beartype/_decor/__init__.py' adding 'beartype/_decor/_decornontype.py' adding 'beartype/_decor/_decortype.py' adding 'beartype/_decor/decorcache.py' adding 'beartype/_decor/decorcore.py' adding 'beartype/_decor/decormain.py' adding 'beartype/_decor/wrap/__init__.py' adding 'beartype/_decor/wrap/_wrapargs.py' adding 'beartype/_decor/wrap/_wrapreturn.py' adding 'beartype/_decor/wrap/_wraputil.py' adding 'beartype/_decor/wrap/wrapmain.py' adding 'beartype/_decor/wrap/wrapsnip.py' adding 'beartype/_util/__init__.py' adding 'beartype/_util/utilobject.py' adding 'beartype/_util/api/__init__.py' adding 'beartype/_util/api/utilapibeartype.py' adding 'beartype/_util/api/utilapicontextlib.py' adding 'beartype/_util/api/utilapifunctools.py' adding 'beartype/_util/api/utilapisphinx.py' adding 'beartype/_util/api/utilapityping.py' adding 'beartype/_util/ast/__init__.py' adding 'beartype/_util/ast/utilastget.py' adding 'beartype/_util/ast/utilastmake.py' adding 'beartype/_util/ast/utilastmunge.py' adding 'beartype/_util/ast/utilasttest.py' adding 'beartype/_util/cache/__init__.py' adding 'beartype/_util/cache/utilcachecall.py' adding 'beartype/_util/cache/utilcachemeta.py' adding 'beartype/_util/cache/map/__init__.py' adding 'beartype/_util/cache/map/utilmapbig.py' adding 'beartype/_util/cache/map/utilmaplru.py' adding 'beartype/_util/cache/pool/__init__.py' adding 'beartype/_util/cache/pool/utilcachepool.py' adding 'beartype/_util/cache/pool/utilcachepoollistfixed.py' adding 'beartype/_util/cache/pool/utilcachepoolobjecttyped.py' adding 'beartype/_util/cls/__init__.py' adding 'beartype/_util/cls/utilclsget.py' adding 'beartype/_util/cls/utilclsmake.py' adding 'beartype/_util/cls/utilclsset.py' adding 'beartype/_util/cls/utilclstest.py' adding 'beartype/_util/cls/pep/__init__.py' adding 'beartype/_util/cls/pep/utilpep3119.py' adding 'beartype/_util/cls/pep/utilpep557.py' adding 'beartype/_util/error/__init__.py' adding 'beartype/_util/error/utilerrget.py' adding 'beartype/_util/error/utilerrraise.py' adding 'beartype/_util/error/utilerrtest.py' adding 'beartype/_util/error/utilerrwarn.py' adding 'beartype/_util/func/__init__.py' adding 'beartype/_util/func/utilfunccode.py' adding 'beartype/_util/func/utilfunccodeobj.py' adding 'beartype/_util/func/utilfuncfile.py' adding 'beartype/_util/func/utilfuncframe.py' adding 'beartype/_util/func/utilfuncget.py' adding 'beartype/_util/func/utilfuncmake.py' adding 'beartype/_util/func/utilfuncscope.py' adding 'beartype/_util/func/utilfunctest.py' adding 'beartype/_util/func/utilfuncwrap.py' adding 'beartype/_util/func/arg/__init__.py' adding 'beartype/_util/func/arg/utilfuncargget.py' adding 'beartype/_util/func/arg/utilfuncargiter.py' adding 'beartype/_util/func/arg/utilfuncargtest.py' adding 'beartype/_util/func/pep/__init__.py' adding 'beartype/_util/func/pep/utilpep484func.py' adding 'beartype/_util/hint/__init__.py' adding 'beartype/_util/hint/utilhintfactory.py' adding 'beartype/_util/hint/utilhintget.py' adding 'beartype/_util/hint/utilhinttest.py' adding 'beartype/_util/hint/nonpep/__init__.py' adding 'beartype/_util/hint/nonpep/utilnonpeptest.py' adding 'beartype/_util/hint/nonpep/mod/__init__.py' adding 'beartype/_util/hint/nonpep/mod/utilmodnumpy.py' adding 'beartype/_util/hint/nonpep/mod/utilmodpandera.py' adding 'beartype/_util/hint/pep/__init__.py' adding 'beartype/_util/hint/pep/utilpepget.py' adding 'beartype/_util/hint/pep/utilpepreduce.py' adding 'beartype/_util/hint/pep/utilpeptest.py' adding 'beartype/_util/hint/pep/proposal/__init__.py' adding 'beartype/_util/hint/pep/proposal/utilpep544.py' adding 'beartype/_util/hint/pep/proposal/utilpep557.py' adding 'beartype/_util/hint/pep/proposal/utilpep585.py' adding 'beartype/_util/hint/pep/proposal/utilpep586.py' adding 'beartype/_util/hint/pep/proposal/utilpep589.py' adding 'beartype/_util/hint/pep/proposal/utilpep591.py' adding 'beartype/_util/hint/pep/proposal/utilpep593.py' adding 'beartype/_util/hint/pep/proposal/utilpep604.py' adding 'beartype/_util/hint/pep/proposal/utilpep613.py' adding 'beartype/_util/hint/pep/proposal/utilpep647.py' adding 'beartype/_util/hint/pep/proposal/utilpep673.py' adding 'beartype/_util/hint/pep/proposal/utilpep675.py' adding 'beartype/_util/hint/pep/proposal/utilpep695.py' adding 'beartype/_util/hint/pep/proposal/pep484/__init__.py' adding 'beartype/_util/hint/pep/proposal/pep484/utilpep484.py' adding 'beartype/_util/hint/pep/proposal/pep484/utilpep484generic.py' adding 'beartype/_util/hint/pep/proposal/pep484/utilpep484namedtuple.py' adding 'beartype/_util/hint/pep/proposal/pep484/utilpep484newtype.py' adding 'beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py' adding 'beartype/_util/hint/pep/proposal/pep484/utilpep484union.py' adding 'beartype/_util/hint/pep/proposal/pep484585/__init__.py' adding 'beartype/_util/hint/pep/proposal/pep484585/utilpep484585.py' adding 'beartype/_util/hint/pep/proposal/pep484585/utilpep484585callable.py' adding 'beartype/_util/hint/pep/proposal/pep484585/utilpep484585func.py' adding 'beartype/_util/hint/pep/proposal/pep484585/utilpep484585generic.py' adding 'beartype/_util/hint/pep/proposal/pep484585/utilpep484585ref.py' adding 'beartype/_util/hint/pep/proposal/pep484585/utilpep484585type.py' adding 'beartype/_util/kind/__init__.py' adding 'beartype/_util/kind/map/__init__.py' adding 'beartype/_util/kind/map/utilmapfrozen.py' adding 'beartype/_util/kind/map/utilmapset.py' adding 'beartype/_util/kind/map/utilmaptest.py' adding 'beartype/_util/module/__init__.py' adding 'beartype/_util/module/utilmoddeprecate.py' adding 'beartype/_util/module/utilmodget.py' adding 'beartype/_util/module/utilmodimport.py' adding 'beartype/_util/module/utilmodtest.py' adding 'beartype/_util/os/__init__.py' adding 'beartype/_util/os/utilosshell.py' adding 'beartype/_util/os/utilostest.py' adding 'beartype/_util/os/utilostty.py' adding 'beartype/_util/path/__init__.py' adding 'beartype/_util/path/utilpathremove.py' adding 'beartype/_util/path/utilpathtest.py' adding 'beartype/_util/py/__init__.py' adding 'beartype/_util/py/utilpyinterpreter.py' adding 'beartype/_util/py/utilpyversion.py' adding 'beartype/_util/py/utilpyweakref.py' adding 'beartype/_util/py/utilpyword.py' adding 'beartype/_util/text/__init__.py' adding 'beartype/_util/text/utiltextansi.py' adding 'beartype/_util/text/utiltextget.py' adding 'beartype/_util/text/utiltextidentifier.py' adding 'beartype/_util/text/utiltextjoin.py' adding 'beartype/_util/text/utiltextlabel.py' adding 'beartype/_util/text/utiltextmunge.py' adding 'beartype/_util/text/utiltextprefix.py' adding 'beartype/_util/text/utiltextrepr.py' adding 'beartype/_util/text/utiltexttest.py' adding 'beartype/_util/text/utiltextversion.py' adding 'beartype/cave/__init__.py' adding 'beartype/cave/_cavelib.py' adding 'beartype/claw/__init__.py' adding 'beartype/claw/_clawmagic.py' adding 'beartype/claw/_clawmain.py' adding 'beartype/claw/_clawstate.py' adding 'beartype/claw/_ast/__init__.py' adding 'beartype/claw/_ast/_clawaststar.py' adding 'beartype/claw/_ast/_clawastutil.py' adding 'beartype/claw/_ast/clawastmain.py' adding 'beartype/claw/_ast/pep/__init__.py' adding 'beartype/claw/_ast/pep/clawastpep526.py' adding 'beartype/claw/_ast/pep/clawastpep695.py' adding 'beartype/claw/_importlib/__init__.py' adding 'beartype/claw/_importlib/_clawimpload.py' adding 'beartype/claw/_importlib/clawimpcache.py' adding 'beartype/claw/_importlib/clawimppath.py' adding 'beartype/claw/_pkg/__init__.py' adding 'beartype/claw/_pkg/_clawpkgmake.py' adding 'beartype/claw/_pkg/clawpkgcontext.py' adding 'beartype/claw/_pkg/clawpkgenum.py' adding 'beartype/claw/_pkg/clawpkghook.py' adding 'beartype/claw/_pkg/clawpkgtrie.py' adding 'beartype/door/__init__.py' adding 'beartype/door/_doorcheck.py' adding 'beartype/door/_doordata.py' adding 'beartype/door/_doortest.py' adding 'beartype/door/_cls/__init__.py' adding 'beartype/door/_cls/doormeta.py' adding 'beartype/door/_cls/doorsub.py' adding 'beartype/door/_cls/doorsuper.py' adding 'beartype/door/_cls/pep/__init__.py' adding 'beartype/door/_cls/pep/doorpep484604.py' adding 'beartype/door/_cls/pep/doorpep586.py' adding 'beartype/door/_cls/pep/doorpep593.py' adding 'beartype/door/_cls/pep/pep484/__init__.py' adding 'beartype/door/_cls/pep/pep484/doorpep484class.py' adding 'beartype/door/_cls/pep/pep484/doorpep484newtype.py' adding 'beartype/door/_cls/pep/pep484/doorpep484typevar.py' adding 'beartype/door/_cls/pep/pep484585/__init__.py' adding 'beartype/door/_cls/pep/pep484585/doorpep484585callable.py' adding 'beartype/door/_cls/pep/pep484585/doorpep484585tuple.py' adding 'beartype/peps/__init__.py' adding 'beartype/peps/_pep563.py' adding 'beartype/plug/__init__.py' adding 'beartype/plug/_plughintable.py' adding 'beartype/roar/__init__.py' adding 'beartype/roar/_roarexc.py' adding 'beartype/roar/_roarwarn.py' adding 'beartype/typing/__init__.py' adding 'beartype/typing/_typingcache.py' adding 'beartype/typing/_typingpep544.py' adding 'beartype/vale/__init__.py' adding 'beartype/vale/_core/__init__.py' adding 'beartype/vale/_core/_valecore.py' adding 'beartype/vale/_core/_valecorebinary.py' adding 'beartype/vale/_core/_valecoreunary.py' adding 'beartype/vale/_is/__init__.py' adding 'beartype/vale/_is/_valeis.py' adding 'beartype/vale/_is/_valeisabc.py' adding 'beartype/vale/_is/_valeisobj.py' adding 'beartype/vale/_is/_valeisoper.py' adding 'beartype/vale/_is/_valeistype.py' adding 'beartype/vale/_util/__init__.py' adding 'beartype/vale/_util/_valeutilfunc.py' adding 'beartype/vale/_util/_valeutilsnip.py' adding 'beartype/vale/_util/_valeutiltext.py' adding 'beartype/vale/_util/_valeutiltyping.py' adding 'beartype-0.18.5.dist-info/licenses/LICENSE' adding 'beartype-0.18.5.dist-info/METADATA' adding 'beartype-0.18.5.dist-info/WHEEL' adding 'beartype-0.18.5.dist-info/top_level.txt' adding 'beartype-0.18.5.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Building wheel for beartype (pyproject.toml): finished with status 'done' Created wheel for beartype: filename=beartype-0.18.5-py3-none-any.whl size=917417 sha256=d786f5ead483e6caef2858640cfec5431c400dd6789e33601b90c77fd6a4c04b Stored in directory: /builddir/.cache/pip/wheels/4e/cc/db/9e586100669bd9f9554f5ce751affe07c5d83245d7fb6812c0 Successfully built beartype + cd doc + make man singlehtml Running Sphinx v8.2.3 WARNING: Optional Sphinx extension "pydata-sphinx-theme" not found; falling back to default Sphinx HTML theme. loading translations [en]... done making output directory... done WARNING: html_static_path entry '_static' does not exist loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ... loading intersphinx inventory 'numpy' from https://numpy.org/doc/stable/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.python.org/3/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.python.org', port=443): Max retries exceeded with url: /3/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.python.org' ([Errno -3] Temporary failure in name resolution)")) loading intersphinx inventory 'pandas' from https://pandas.pydata.org/docs/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://numpy.org/doc/stable/objects.inv' not fetchable due to : HTTPSConnectionPool(host='numpy.org', port=443): Max retries exceeded with url: /doc/stable/objects.inv (Caused by NameResolutionError(": Failed to resolve 'numpy.org' ([Errno -3] Temporary failure in name resolution)")) WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://pandas.pydata.org/docs/objects.inv' not fetchable due to : HTTPSConnectionPool(host='pandas.pydata.org', port=443): Max retries exceeded with url: /docs/objects.inv (Caused by NameResolutionError(": Failed to resolve 'pandas.pydata.org' ([Errno -3] Temporary failure in name resolution)")) loading intersphinx inventory 'scipy' from https://docs.scipy.org/doc/scipy/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.scipy.org/doc/scipy/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.scipy.org', port=443): Max retries exceeded with url: /doc/scipy/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.scipy.org' ([Errno -3] Temporary failure in name resolution)")) building [mo]: targets for 0 po files that are out of date writing output... building [man]: all manpages updating environment: [new config] 15 added, 0 changed, 0 removed reading sources... [ 7%] api reading sources... [ 13%] api_claw reading sources... [ 20%] api_decor reading sources... [ 27%] api_door reading sources... [ 33%] api_roar reading sources... [ 40%] api_vale reading sources... [ 47%] code reading sources... [ 53%] eli5 reading sources... [ 60%] faq reading sources... [ 67%] index reading sources... [ 73%] install reading sources... [ 80%] math reading sources... [ 87%] moar reading sources... [ 93%] pep reading sources... [100%] tldr looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying assets: done writing... beartype.1 { install tldr eli5 api api_claw api_decor api_vale api_door api_roar faq pep code math moar } done build succeeded, 5 warnings. The manual pages are in trg/man. Running Sphinx v8.2.3 WARNING: Optional Sphinx extension "pydata-sphinx-theme" not found; falling back to default Sphinx HTML theme. loading translations [en]... done making output directory... done WARNING: html_static_path entry '_static' does not exist loading pickled environment... done loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ... loading intersphinx inventory 'numpy' from https://numpy.org/doc/stable/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.python.org/3/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.python.org', port=443): Max retries exceeded with url: /3/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.python.org' ([Errno -3] Temporary failure in name resolution)")) loading intersphinx inventory 'pandas' from https://pandas.pydata.org/docs/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://numpy.org/doc/stable/objects.inv' not fetchable due to : HTTPSConnectionPool(host='numpy.org', port=443): Max retries exceeded with url: /doc/stable/objects.inv (Caused by NameResolutionError(": Failed to resolve 'numpy.org' ([Errno -3] Temporary failure in name resolution)")) WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://pandas.pydata.org/docs/objects.inv' not fetchable due to : HTTPSConnectionPool(host='pandas.pydata.org', port=443): Max retries exceeded with url: /docs/objects.inv (Caused by NameResolutionError(": Failed to resolve 'pandas.pydata.org' ([Errno -3] Temporary failure in name resolution)")) loading intersphinx inventory 'scipy' from https://docs.scipy.org/doc/scipy/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.scipy.org/doc/scipy/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.scipy.org', port=443): Max retries exceeded with url: /doc/scipy/objects.inv (Caused by NameResolutionError(": Failed to resolve 'docs.scipy.org' ([Errno -3] Temporary failure in name resolution)")) building [mo]: targets for 0 po files that are out of date writing output... building [singlehtml]: all documents updating environment: 0 added, 0 changed, 0 removed reading sources... looking for now-outdated files... none found preparing documents... WARNING: unsupported theme option 'announcement' given WARNING: unsupported theme option 'icon_links' given WARNING: unsupported theme option 'use_edit_page_button' given done copying assets... copying static files... Writing evaluated template result to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/doc/trg/singlehtml/_static/basic.css Writing evaluated template result to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/doc/trg/singlehtml/_static/documentation_options.js Writing evaluated template result to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/doc/trg/singlehtml/_static/language_data.js Writing evaluated template result to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/doc/trg/singlehtml/_static/alabaster.css copying static files: done copying extra files... copying extra files: done copying assets: done WARNING: unsupported theme option 'announcement' given WARNING: unsupported theme option 'icon_links' given WARNING: unsupported theme option 'use_edit_page_button' given assembling single document... index install tldr eli5 api api_claw api_decor api_vale api_door api_roar faq pep code math moar assembling single document: done writing... done writing additional files... done copying static files... Writing evaluated template result to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/doc/trg/singlehtml/_static/basic.css Writing evaluated template result to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/doc/trg/singlehtml/_static/documentation_options.js Writing evaluated template result to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/doc/trg/singlehtml/_static/language_data.js Writing evaluated template result to /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/doc/trg/singlehtml/_static/alabaster.css copying static files: done copying extra files... copying extra files: done dumping object inventory... done build succeeded, 11 warnings. The HTML page is in trg/singlehtml. + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.nyzkxf + umask 022 + cd /builddir/build/BUILD/python-beartype-0.18.5-build + '[' /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT '!=' / ']' + rm -rf /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT ++ dirname /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT + mkdir -p /builddir/build/BUILD/python-beartype-0.18.5-build + mkdir /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd beartype-0.18.5 ++ xargs basename --multiple ++ ls /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/pyproject-wheeldir/beartype-0.18.5-py3-none-any.whl ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=beartype==0.18.5 + '[' -z beartype==0.18.5 ']' + TMPDIR=/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/pyproject-wheeldir beartype==0.18.5 Using pip 25.1.1 from /usr/lib/python3.14/site-packages/pip (python 3.14) Looking in links: /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/pyproject-wheeldir Processing ./pyproject-wheeldir/beartype-0.18.5-py3-none-any.whl Installing collected packages: beartype Successfully installed beartype-0.18.5 + '[' -d /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/bin ']' + rm -f /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages ']' + site_dirs+=("/usr/lib/python3.14/site-packages") + '[' /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib64/python3.14/site-packages '!=' /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages ']' + '[' -d /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib64/python3.14/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.14/site-packages/beartype-0.18.5.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype-0.18.5.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT --record /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype-0.18.5.dist-info/RECORD --output /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-record + rm -fv /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype-0.18.5.dist-info/RECORD removed '/builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype-0.18.5.dist-info/RECORD' + rm -fv /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype-0.18.5.dist-info/REQUESTED removed '/builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype-0.18.5.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_FILES_ESCAPE=4.19 + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-files --output-modules /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-modules --buildroot /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT --sitelib /usr/lib/python3.14/site-packages --sitearch /usr/lib64/python3.14/site-packages --python-version 3.14 --pyproject-record /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-record --prefix /usr beartype + install -m0644 -D doc/trg/man/beartype.1 /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/share/man/man1/beartype.1 + gzip /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/share/man/man1/beartype.1 + mv doc/trg/singlehtml/index.html beartype.html + find /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT//usr/lib/python3.14/site-packages -type f -name '*.py' -print0 + xargs -0 sed -i 's:#\!/usr/bin/env python3:# :' + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/redhat/brp-python-rpm-in-distinfo + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j2 Bytecompiling .py files below /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14 using python3.14 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-determinism --brp -j2 /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_cave/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_cave/__pycache__/_caveabc.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_cave/__pycache__/_cavefast.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/snip/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/snip/__pycache__/codesnipcls.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/snip/__pycache__/codesnipstr.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/snip/__pycache__/codesnipcls.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_cave/__pycache__/_cavemap.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/__pycache__/codemagic.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/__pycache__/codemake.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/__pycache__/codecls.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/__pycache__/codescope.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/__pycache__/codemake.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/__pycache__/codescope.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/convert/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/code/__pycache__/codecls.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/convert/__pycache__/convcoerce.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/convert/__pycache__/convreduce.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/convert/__pycache__/convsanify.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/pep484/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/convert/__pycache__/convcoerce.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/pep484/__pycache__/errornoreturn.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/pep484585/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/pep484585/__pycache__/errorgeneric.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/pep484585/__pycache__/errormapping.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/pep484585/__pycache__/errorsequence.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/pep484585/__pycache__/errorgeneric.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/pep484585/__pycache__/errormapping.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/pep484585/__pycache__/errorsequence.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/__pycache__/errorpep484604union.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/__pycache__/errorpep586.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/__pycache__/errorpep593.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/__pycache__/errorpep484604union.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/__pycache__/errorpep586.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/__pycache__/errorpep593.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/_pep/pep484/__pycache__/errornoreturn.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/__pycache__/_errorcause.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/__pycache__/_errordata.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/__pycache__/_errortype.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/__pycache__/errorget.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/__pycache__/_errorcause.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/__pycache__/_errortype.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/error/__pycache__/errorget.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/reference/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/reference/__pycache__/fwdrefmake.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/reference/__pycache__/fwdrefabc.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/reference/__pycache__/fwdreftest.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/reference/__pycache__/fwdrefmake.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/__pycache__/fwdmain.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/reference/__pycache__/fwdrefmeta.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/__pycache__/fwdscope.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/__pycache__/fwdmain.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/util/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/util/__pycache__/_checkutilsnip.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/util/__pycache__/checkutilmake.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/forward/__pycache__/fwdscope.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/util/__pycache__/checkutilmake.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/__pycache__/_checksnip.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/__pycache__/checkcache.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/__pycache__/checkmagic.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/__pycache__/checkmake.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/__pycache__/checkcall.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_conf/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_conf/__pycache__/_confget.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_check/__pycache__/checkmake.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_conf/__pycache__/confenum.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_conf/__pycache__/confoverrides.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_conf/__pycache__/conftest.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_conf/__pycache__/confcls.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/ast/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/ast/__pycache__/dataast.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/cls/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/cls/__pycache__/datacls.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/code/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/code/__pycache__/datacodeindent.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/code/__pycache__/datacodemagic.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/code/__pycache__/datacodeindent.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/error/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/error/__pycache__/dataerrmagic.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/func/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_conf/__pycache__/confcls.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/func/__pycache__/datafuncarg.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/func/__pycache__/datafunc.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/func/__pycache__/datafunccodeobj.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/pep/sign/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/pep/sign/__pycache__/datapepsignmap.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/pep/sign/__pycache__/datapepsigncls.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/pep/sign/__pycache__/datapepsignset.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/pep/sign/__pycache__/datapepsigncls.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/pep/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/pep/__pycache__/datapeprepr.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/pep/sign/__pycache__/datapepsigns.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/pep/__pycache__/datapeprepr.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/__pycache__/datahintfactory.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/kind/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/kind/__pycache__/datakinddict.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/hint/__pycache__/datahinttyping.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/kind/__pycache__/datakindsequence.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/kind/__pycache__/datakindtext.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/kind/__pycache__/datakindset.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/module/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/module/__pycache__/datamodpy.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/module/__pycache__/datamodcontextlib.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/os/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/module/__pycache__/datamodtyping.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_data/os/__pycache__/dataosshell.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/wrap/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/wrap/__pycache__/_wrapargs.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/wrap/__pycache__/_wraputil.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/wrap/__pycache__/wrapmain.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/wrap/__pycache__/wrapsnip.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/wrap/__pycache__/_wrapargs.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/wrap/__pycache__/_wrapreturn.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/wrap/__pycache__/_wrapreturn.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/wrap/__pycache__/_wraputil.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/__pycache__/_decortype.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/__pycache__/decorcache.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/__pycache__/decorcore.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/__pycache__/decormain.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/__pycache__/_decortype.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/__pycache__/_decornontype.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/__pycache__/decorcore.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/__pycache__/decormain.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/api/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/api/__pycache__/utilapibeartype.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_decor/__pycache__/_decornontype.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/api/__pycache__/utilapicontextlib.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/api/__pycache__/utilapisphinx.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/api/__pycache__/utilapityping.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/api/__pycache__/utilapityping.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/api/__pycache__/utilapifunctools.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/ast/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/ast/__pycache__/utilastget.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/api/__pycache__/utilapifunctools.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/ast/__pycache__/utilastmunge.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/ast/__pycache__/utilasttest.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/ast/__pycache__/utilastget.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/ast/__pycache__/utilastmunge.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/ast/__pycache__/utilastmake.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/map/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/map/__pycache__/utilmapbig.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/map/__pycache__/utilmaplru.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/pool/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/pool/__pycache__/utilcachepool.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/ast/__pycache__/utilastmake.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/pool/__pycache__/utilcachepoollistfixed.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/pool/__pycache__/utilcachepoolobjecttyped.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/pool/__pycache__/utilcachepoolobjecttyped.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/pool/__pycache__/utilcachepool.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/pool/__pycache__/utilcachepoollistfixed.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/__pycache__/utilcachemeta.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/__pycache__/utilcachecall.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/pep/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cache/__pycache__/utilcachecall.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/pep/__pycache__/utilpep557.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/pep/__pycache__/utilpep3119.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/__pycache__/utilclsget.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/pep/__pycache__/utilpep3119.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/__pycache__/utilclsset.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/__pycache__/utilclsmake.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/__pycache__/utilclsget.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/__pycache__/utilclstest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/__pycache__/utilclsmake.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/error/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/error/__pycache__/utilerrget.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/error/__pycache__/utilerrraise.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/error/__pycache__/utilerrtest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/cls/__pycache__/utilclstest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/error/__pycache__/utilerrget.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/error/__pycache__/utilerrraise.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/error/__pycache__/utilerrtest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/error/__pycache__/utilerrwarn.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/arg/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/error/__pycache__/utilerrwarn.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/arg/__pycache__/utilfuncargget.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/arg/__pycache__/utilfuncargiter.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/arg/__pycache__/utilfuncargtest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/arg/__pycache__/utilfuncargiter.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/pep/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/pep/__pycache__/utilpep484func.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/arg/__pycache__/utilfuncargtest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfunccodeobj.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfuncfile.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfunccode.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfuncget.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfuncframe.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfuncmake.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfuncscope.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfuncwrap.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfunctest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfuncget.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfunccodeobj.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfunccode.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfuncmake.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfuncframe.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfuncscope.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/nonpep/mod/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/nonpep/mod/__pycache__/utilmodnumpy.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/nonpep/mod/__pycache__/utilmodpandera.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/nonpep/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/func/__pycache__/utilfunctest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/nonpep/__pycache__/utilnonpeptest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484/__pycache__/utilpep484.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/nonpep/__pycache__/utilnonpeptest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484/__pycache__/utilpep484generic.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484/__pycache__/utilpep484namedtuple.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484/__pycache__/utilpep484typevar.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484/__pycache__/utilpep484newtype.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484/__pycache__/utilpep484union.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484/__pycache__/utilpep484union.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484/__pycache__/utilpep484.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585callable.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585func.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585generic.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585ref.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585type.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585func.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585callable.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585ref.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/pep484585/__pycache__/utilpep484585generic.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep557.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep585.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep586.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep589.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep591.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep593.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep604.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep613.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep647.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep673.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep675.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep695.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep557.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep593.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep673.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/proposal/__pycache__/utilpep544.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/__pycache__/utilpepget.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/__pycache__/utilpepreduce.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/__pycache__/utilpeptest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/__pycache__/utilpepget.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/pep/__pycache__/utilpeptest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/__pycache__/utilhintget.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/__pycache__/utilhintfactory.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/__pycache__/utilhintfactory.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/kind/map/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/hint/__pycache__/utilhinttest.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/kind/map/__pycache__/utilmapset.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/kind/map/__pycache__/utilmaptest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/kind/map/__pycache__/utilmapfrozen.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/kind/map/__pycache__/utilmapset.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/kind/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/module/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/module/__pycache__/utilmoddeprecate.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/kind/map/__pycache__/utilmaptest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/module/__pycache__/utilmodget.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/module/__pycache__/utilmodtest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/module/__pycache__/utilmoddeprecate.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/module/__pycache__/utilmodimport.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/module/__pycache__/utilmodimport.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/module/__pycache__/utilmodtest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/os/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/os/__pycache__/utilosshell.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/os/__pycache__/utilostty.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/os/__pycache__/utilostest.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/path/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/path/__pycache__/utilpathtest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/path/__pycache__/utilpathremove.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/path/__pycache__/utilpathtest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/py/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/py/__pycache__/utilpyinterpreter.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/path/__pycache__/utilpathremove.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/py/__pycache__/utilpyversion.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/py/__pycache__/utilpyweakref.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/py/__pycache__/utilpyword.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/py/__pycache__/utilpyinterpreter.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/py/__pycache__/utilpyweakref.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextget.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextansi.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextjoin.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextidentifier.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextlabel.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextprefix.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextmunge.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextrepr.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltexttest.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextversion.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextjoin.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextidentifier.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextansi.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextrepr.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextlabel.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltexttest.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextversion.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextmunge.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/text/__pycache__/utiltextprefix.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/_util/__pycache__/utilobject.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/cave/__pycache__/_cavelib.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_ast/pep/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/cave/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_ast/pep/__pycache__/clawastpep526.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_ast/pep/__pycache__/clawastpep695.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_ast/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_ast/__pycache__/_clawaststar.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_ast/__pycache__/_clawastutil.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_ast/__pycache__/clawastmain.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_ast/__pycache__/_clawastutil.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_importlib/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_ast/__pycache__/clawastmain.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_importlib/__pycache__/clawimpcache.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_importlib/__pycache__/_clawimpload.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_pkg/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_importlib/__pycache__/clawimppath.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_pkg/__pycache__/_clawpkgmake.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_pkg/__pycache__/clawpkgenum.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_pkg/__pycache__/clawpkgcontext.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_pkg/__pycache__/clawpkghook.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_pkg/__pycache__/clawpkgtrie.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_pkg/__pycache__/_clawpkgmake.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/__pycache__/_clawmagic.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/_pkg/__pycache__/clawpkgtrie.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/__pycache__/_clawstate.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/pep484/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/claw/__pycache__/_clawmain.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/pep484/__pycache__/doorpep484class.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/pep484/__pycache__/doorpep484newtype.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/pep484585/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/pep484/__pycache__/doorpep484typevar.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/pep484585/__pycache__/doorpep484585callable.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/__pycache__/doorpep484604.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/pep484585/__pycache__/doorpep484585tuple.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/__pycache__/doorpep586.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/__pycache__/doormeta.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/pep/__pycache__/doorpep593.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/__pycache__/doorsub.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/__pycache__/_doorcheck.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/__pycache__/_doordata.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/__pycache__/_doortest.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/peps/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/peps/__pycache__/_pep563.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/plug/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/plug/__pycache__/_plughintable.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/roar/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/door/_cls/__pycache__/doorsuper.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/roar/__pycache__/_roarwarn.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/roar/__pycache__/_roarexc.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/typing/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/typing/__pycache__/_typingcache.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/typing/__pycache__/_typingpep544.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/typing/__pycache__/_typingcache.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_core/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/roar/__pycache__/_roarexc.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_core/__pycache__/_valecore.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_core/__pycache__/_valecoreunary.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_core/__pycache__/_valecorebinary.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_is/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_core/__pycache__/_valecore.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_is/__pycache__/_valeis.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_is/__pycache__/_valeisobj.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_is/__pycache__/_valeisabc.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_is/__pycache__/_valeisoper.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_is/__pycache__/_valeistype.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_util/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_is/__pycache__/_valeisabc.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_util/__pycache__/_valeutilfunc.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_util/__pycache__/_valeutiltext.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_util/__pycache__/_valeutiltyping.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_util/__pycache__/_valeutilsnip.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/_util/__pycache__/_valeutiltext.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/vale/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/__pycache__/meta.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages/beartype/__pycache__/meta.cpython-314.opt-1.pyc: replacing with normalized version Scanned 156 directories and 898 files, processed 397 inodes, 396 modified (198 replaced + 198 rewritten), 0 unsupported format, 0 errors Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.RRhJoo + umask 022 + cd /builddir/build/BUILD/python-beartype-0.18.5-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd beartype-0.18.5 + '[' '!' -f /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-modules ']' + PATH=/builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib64/python3.14/site-packages:/builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages + _PYTHONSITE=/builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib64/python3.14/site-packages:/builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages + PYTHONDONTWRITEBYTECODE=1 + /usr/bin/python3 -sP /usr/lib/rpm/redhat/import_all_modules.py -f /builddir/build/BUILD/python-beartype-0.18.5-build/python-beartype-0.18.5-3.fc43.x86_64-pyproject-modules Check import: beartype Check import: beartype.cave Check import: beartype.claw Check import: beartype.door Check import: beartype.meta Check import: beartype.peps Check import: beartype.plug Check import: beartype.roar Check import: beartype.typing Check import: beartype.vale + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + PATH=/builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib64/python3.14/site-packages:/builddir/build/BUILD/python-beartype-0.18.5-build/BUILDROOT/usr/lib/python3.14/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=2 + /usr/bin/pytest beartype_test ============================= test session starts ============================== platform linux -- Python 3.14.0b1, pytest-8.3.5, pluggy-1.5.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5 configfile: pytest.ini collecting ... collected 349 items beartype_test/a00_unit/a00_core/test_a00_package.py::test_api_beartype PASSED [ 0%] beartype_test/a00_unit/a00_core/test_a00_package.py::test_api_deprecations PASSED [ 0%] beartype_test/a00_unit/a00_core/test_a90_typing.py::test_api_typing FAILED [ 0%] beartype_test/a00_unit/a10_data/code/test_datacodeindent.py::test_data_indent_level_to_code PASSED [ 1%] beartype_test/a00_unit/a10_data/hint/pep/sign/test_datapepsignmap.py::test_hint_sign_origin_isinstanceable_to_args_len_range PASSED [ 1%] beartype_test/a00_unit/a20_util/a00_cache/map/test_utilmapbig.py::test_cacheunboundedstrong PASSED [ 1%] beartype_test/a00_unit/a20_util/a00_cache/map/test_utilmaplru.py::test_lrucachestrong_one_pass PASSED [ 2%] beartype_test/a00_unit/a20_util/a00_cache/map/test_utilmaplru.py::test_lrucachestrong_two_pass PASSED [ 2%] beartype_test/a00_unit/a20_util/a00_cache/map/test_utilmaplru.py::test_lrucachestrong_fail PASSED [ 2%] beartype_test/a00_unit/a20_util/a00_cache/pool/test_utilcachepool.py::test_key_pool_pass PASSED [ 2%] beartype_test/a00_unit/a20_util/a00_cache/pool/test_utilcachepool.py::test_key_pool_fail PASSED [ 3%] beartype_test/a00_unit/a20_util/a00_cache/pool/test_utilcachepoollistfixed.py::test_listfixed_pool_pass PASSED [ 3%] beartype_test/a00_unit/a20_util/a00_cache/pool/test_utilcachepoollistfixed.py::test_listfixed_pool_fail PASSED [ 3%] beartype_test/a00_unit/a20_util/a00_cache/pool/test_utilcachepoollistfixed.py::test_listfixed_type_pass PASSED [ 4%] beartype_test/a00_unit/a20_util/a00_cache/pool/test_utilcachepoollistfixed.py::test_listfixed_type_fail PASSED [ 4%] beartype_test/a00_unit/a20_util/a00_cache/pool/test_utilcachepoolobjecttyped.py::test_objecttyped_pool_pass PASSED [ 4%] beartype_test/a00_unit/a20_util/a00_cache/pool/test_utilcachepoolobjecttyped.py::test_objecttyped_pool_fail PASSED [ 4%] beartype_test/a00_unit/a20_util/a00_cache/test_utilcachecall.py::test_callable_cached PASSED [ 5%] beartype_test/a00_unit/a20_util/a00_cache/test_utilcachecall.py::test_method_cached_arg_by_id PASSED [ 5%] beartype_test/a00_unit/a20_util/a00_cache/test_utilcachecall.py::test_property_cached PASSED [ 5%] beartype_test/a00_unit/a20_util/a00_cache/test_utilcachemeta.py::test_caching_metaclass PASSED [ 6%] beartype_test/a00_unit/a20_util/api/test_utilapibeartype.py::test_is_func_beartyped PASSED [ 6%] beartype_test/a00_unit/a20_util/api/test_utilapibeartype.py::test_set_func_beartyped PASSED [ 6%] beartype_test/a00_unit/a20_util/api/test_utilapicontextlib.py::test_is_func_contextlib_contextmanager PASSED [ 6%] beartype_test/a00_unit/a20_util/api/test_utilapifunctools.py::test_is_func_functools_lru_cache PASSED [ 7%] beartype_test/a00_unit/a20_util/api/test_utilapifunctools.py::test_is_func_functools_partial PASSED [ 7%] beartype_test/a00_unit/a20_util/api/test_utilapifunctools.py::test_get_func_functools_partial_args PASSED [ 7%] beartype_test/a00_unit/a20_util/api/test_utilapifunctools.py::test_unwrap_func_functools_partial_once PASSED [ 8%] beartype_test/a00_unit/a20_util/api/test_utilapityping.py::test_import_typing_attr PASSED [ 8%] beartype_test/a00_unit/a20_util/ast/test_utilastmake.py::test_make_node_object_attr_load PASSED [ 8%] beartype_test/a00_unit/a20_util/ast/test_utilasttest.py::test_is_node_callable_typed PASSED [ 8%] beartype_test/a00_unit/a20_util/cls/pep/test_utilpep3119.py::test_die_unless_object_isinstanceable PASSED [ 9%] beartype_test/a00_unit/a20_util/cls/pep/test_utilpep3119.py::test_die_unless_type_isinstanceable PASSED [ 9%] beartype_test/a00_unit/a20_util/cls/pep/test_utilpep3119.py::test_die_unless_object_issubclassable PASSED [ 9%] beartype_test/a00_unit/a20_util/cls/pep/test_utilpep3119.py::test_die_unless_type_issubclassable PASSED [ 10%] beartype_test/a00_unit/a20_util/cls/pep/test_utilpep557.py::test_is_type_pep557 PASSED [ 10%] beartype_test/a00_unit/a20_util/cls/test_utilclsget.py::test_get_type_filename_or_none PASSED [ 10%] beartype_test/a00_unit/a20_util/cls/test_utilclsmake.py::test_make_type PASSED [ 10%] beartype_test/a00_unit/a20_util/cls/test_utilclstest.py::test_is_type_or_types PASSED [ 11%] beartype_test/a00_unit/a20_util/cls/test_utilclstest.py::test_is_type_subclass PASSED [ 11%] beartype_test/a00_unit/a20_util/cls/test_utilclstest.py::test_is_type_builtin PASSED [ 11%] beartype_test/a00_unit/a20_util/cls/test_utilclstest.py::test_is_type_builtin_or_fake PASSED [ 12%] beartype_test/a00_unit/a20_util/error/test_utilerrget.py::test_get_name_error_attr_name PASSED [ 12%] beartype_test/a00_unit/a20_util/error/test_utilerrraise.py::test_reraise_exception_placeholder PASSED [ 12%] beartype_test/a00_unit/a20_util/error/test_utilerrwarn.py::test_reissue_warnings_placeholder PASSED [ 12%] beartype_test/a00_unit/a20_util/func/arg/test_utilfuncargget.py::test_get_func_arg_first_name_or_none PASSED [ 13%] beartype_test/a00_unit/a20_util/func/arg/test_utilfuncargget.py::test_get_func_args_len_flexible PASSED [ 13%] beartype_test/a00_unit/a20_util/func/arg/test_utilfuncargiter.py::test_iter_func_args PASSED [ 13%] beartype_test/a00_unit/a20_util/func/arg/test_utilfuncargtest.py::test_is_func_argless PASSED [ 14%] beartype_test/a00_unit/a20_util/func/arg/test_utilfuncargtest.py::test_is_func_arg_variadic PASSED [ 14%] beartype_test/a00_unit/a20_util/func/arg/test_utilfuncargtest.py::test_is_func_arg_name PASSED [ 14%] beartype_test/a00_unit/a20_util/func/pep/test_utilpep484func.py::test_is_func_pep484_notypechecked PASSED [ 14%] beartype_test/a00_unit/a20_util/func/test_utilfunccode.py::test_get_func_code_or_none PASSED [ 15%] beartype_test/a00_unit/a20_util/func/test_utilfunccodeobj.py::test_get_func_codeobj PASSED [ 15%] beartype_test/a00_unit/a20_util/func/test_utilfunccodeobj.py::test_get_func_codeobj_or_none PASSED [ 15%] beartype_test/a00_unit/a20_util/func/test_utilfuncfile.py::test_is_func_file PASSED [ 16%] beartype_test/a00_unit/a20_util/func/test_utilfuncfile.py::test_get_func_filename_or_none PASSED [ 16%] beartype_test/a00_unit/a20_util/func/test_utilfuncframe.py::test_get_frame PASSED [ 16%] beartype_test/a00_unit/a20_util/func/test_utilfuncframe.py::test_iter_frames PASSED [ 16%] beartype_test/a00_unit/a20_util/func/test_utilfuncmake.py::test_make_func PASSED [ 17%] beartype_test/a00_unit/a20_util/func/test_utilfuncscope.py::test_is_func_nested PASSED [ 17%] beartype_test/a00_unit/a20_util/func/test_utilfuncscope.py::test_get_func_locals PASSED [ 17%] beartype_test/a00_unit/a20_util/func/test_utilfuncscope.py::test_add_func_scope_attr PASSED [ 18%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_lambda PASSED [ 18%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_async PASSED [ 18%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_coro PASSED [ 18%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_async_generator PASSED [ 19%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_sync_generator PASSED [ 19%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_die_unless_func_classmethod PASSED [ 19%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_classmethod PASSED [ 20%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_die_unless_func_property PASSED [ 20%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_property PASSED [ 20%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_die_unless_func_staticmethod PASSED [ 20%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_staticmethod PASSED [ 21%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_die_unless_func_python PASSED [ 21%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_python PASSED [ 21%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_closure PASSED [ 22%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_wrapper PASSED [ 22%] beartype_test/a00_unit/a20_util/func/test_utilfunctest.py::test_is_func_wrapper_isomorphic PASSED [ 22%] beartype_test/a00_unit/a20_util/func/test_utilfuncwrap.py::test_unwrap_func_all PASSED [ 22%] beartype_test/a00_unit/a20_util/func/test_utilfuncwrap.py::test_unwrap_func_classmethod_once PASSED [ 23%] beartype_test/a00_unit/a20_util/func/test_utilfuncwrap.py::test_unwrap_func_staticmethod_once PASSED [ 23%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484/test_utilpep484typevar.py::test_get_hint_pep484_typevar_bound_or_none FAILED [ 23%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585.py::test_is_hint_pep484585_tuple_empty PASSED [ 24%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585.py::test_get_hint_pep484585_args PASSED [ 24%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585callable.py::test_get_hint_pep484585_callable_params_and_return PASSED [ 24%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585generic.py::test_is_hint_pep484585_generic PASSED [ 24%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585generic.py::test_get_hint_pep484585_generic_type_or_none PASSED [ 25%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585generic.py::test_get_hint_pep484585_generic_bases_unerased PASSED [ 25%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585generic.py::test_find_hint_pep484585_generic_module_base_first PASSED [ 25%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585ref.py::test_get_hint_pep484585_ref_names PASSED [ 26%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585ref.py::test_get_hint_pep484585_ref_names_relative_to PASSED [ 26%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585type.py::test_get_hint_pep484585_type_superclass FAILED [ 26%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep544.py::test_is_hint_pep544_protocol PASSED [ 26%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep544.py::test_is_hint_pep544_io_generic PASSED [ 27%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep544.py::test_reduce_hint_pep484_generic_io_to_pep544_protocol PASSED [ 27%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep557.py::test_get_hint_pep557_initvar_arg PASSED [ 27%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep561.py::test_pep561_pytyped PASSED [ 28%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep585.py::test_is_hint_pep585_builtin PASSED [ 28%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep585.py::test_is_hint_pep585_generic PASSED [ 28%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep585.py::test_get_hint_pep585_generic_typevars PASSED [ 28%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep586.py::test_is_hint_pep586 FAILED [ 29%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep589.py::test_is_hint_pep589 PASSED [ 29%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep593.py::test_die_unless_hint_pep593 PASSED [ 29%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep593.py::test_is_hint_pep593_beartype FAILED [ 30%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep593.py::test_get_hint_pep593_metadata PASSED [ 30%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep593.py::test_get_hint_pep593_metahint PASSED [ 30%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep604.py::test_is_hint_pep604 PASSED [ 30%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep695.py::test_iter_hint_pep695_forwardrefs PASSED [ 31%] beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep695.py::test_reduce_hint_pep695 PASSED [ 31%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py::test_get_hint_pep_args FAILED [ 31%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py::test_get_hint_pep_typevars FAILED [ 32%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py::test_get_hint_pep_sign FAILED [ 32%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py::test_get_hint_pep_type_isinstanceable FAILED [ 32%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py::test_get_hint_pep_type_isinstanceable_or_none FAILED [ 32%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep_typevars FAILED [ 33%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep_typing FAILED [ 33%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep_type_typing FAILED [ 33%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep FAILED [ 34%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep_args FAILED [ 34%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep_supported FAILED [ 34%] beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_die_if_hint_pep_unsupported FAILED [ 34%] beartype_test/a00_unit/a20_util/hint/a10_nonpep/test_utilhintnonpeptest.py::test_die_unless_hint_nonpep FAILED [ 35%] beartype_test/a00_unit/a20_util/hint/a10_nonpep/test_utilhintnonpeptest.py::test_is_hint_nonpep FAILED [ 35%] beartype_test/a00_unit/a20_util/hint/a10_nonpep/test_utilhintnonpeptest.py::test_is_hint_nonpep_tuple PASSED [ 35%] beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhintfactory.py::test_typehinttypefactory PASSED [ 36%] beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhintget.py::test_get_hint_repr PASSED [ 36%] beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhinttest.py::test_die_unless_hint FAILED [ 36%] beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhinttest.py::test_is_hint FAILED [ 36%] beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhinttest.py::test_is_hint_ignorable FAILED [ 37%] beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhinttest.py::test_is_hint_needs_cls_stack PASSED [ 37%] beartype_test/a00_unit/a20_util/kind/map/test_utilmapfrozen.py::test_frozendict PASSED [ 37%] beartype_test/a00_unit/a20_util/kind/map/test_utilmapset.py::test_update_mapping PASSED [ 38%] beartype_test/a00_unit/a20_util/kind/map/test_utilmapset.py::test_merge_mappings_two PASSED [ 38%] beartype_test/a00_unit/a20_util/kind/map/test_utilmapset.py::test_merge_mappings_three PASSED [ 38%] beartype_test/a00_unit/a20_util/kind/map/test_utilmaptest.py::test_die_if_mappings_two_items_collide PASSED [ 38%] beartype_test/a00_unit/a20_util/kind/map/test_utilmaptest.py::test_is_mapping_keys_all PASSED [ 39%] beartype_test/a00_unit/a20_util/kind/map/test_utilmaptest.py::test_is_mapping_keys_any PASSED [ 39%] beartype_test/a00_unit/a20_util/module/test_utilmoddeprecate.py::test_deprecate_module_attr PASSED [ 39%] beartype_test/a00_unit/a20_util/module/test_utilmodget.py::test_get_object_module_or_none PASSED [ 40%] beartype_test/a00_unit/a20_util/module/test_utilmodget.py::test_get_object_module PASSED [ 40%] beartype_test/a00_unit/a20_util/module/test_utilmodget.py::test_get_object_module_line_number_begin PASSED [ 40%] beartype_test/a00_unit/a20_util/module/test_utilmodimport.py::test_import_module_or_none PASSED [ 40%] beartype_test/a00_unit/a20_util/module/test_utilmodimport.py::test_import_module_attr PASSED [ 41%] beartype_test/a00_unit/a20_util/module/test_utilmodimport.py::test_import_module_attr_or_none PASSED [ 41%] beartype_test/a00_unit/a20_util/module/test_utilmodimport.py::test_import_module_attr_or_sentinel PASSED [ 41%] beartype_test/a00_unit/a20_util/module/test_utilmodtest.py::test_die_unless_module_attr_name PASSED [ 42%] beartype_test/a00_unit/a20_util/module/test_utilmodtest.py::test_is_module PASSED [ 42%] beartype_test/a00_unit/a20_util/os/test_utilostest.py::test_is_os_macos PASSED [ 42%] beartype_test/a00_unit/a20_util/os/test_utilostest.py::test_is_os_windows_vanilla PASSED [ 42%] beartype_test/a00_unit/a20_util/os/test_utilostty.py::test_is_stdout_terminal PASSED [ 43%] beartype_test/a00_unit/a20_util/py/test_utilpyinterpreter.py::test_is_python_pypy PASSED [ 43%] beartype_test/a00_unit/a20_util/py/test_utilpyinterpreter.py::test_is_python_optimized PASSED [ 43%] beartype_test/a00_unit/a20_util/py/test_utilpyinterpreter.py::test_get_interpreter_command PASSED [ 44%] beartype_test/a00_unit/a20_util/py/test_utilpyinterpreter.py::test_get_interpreter_filename PASSED [ 44%] beartype_test/a00_unit/a20_util/py/test_utilpyweakref.py::test_make_obj_weakref_and_repr PASSED [ 44%] beartype_test/a00_unit/a20_util/py/test_utilpyweakref.py::test_get_weakref_obj_or_repr PASSED [ 44%] beartype_test/a00_unit/a20_util/py/test_utilpyword.py::test_word_size PASSED [ 45%] beartype_test/a00_unit/a20_util/test_utilobject.py::test_is_object_hashable PASSED [ 45%] beartype_test/a00_unit/a20_util/test_utilobject.py::test_get_object_basename_scoped PASSED [ 45%] beartype_test/a00_unit/a20_util/test_utilobject.py::test_get_object_filename_or_none PASSED [ 46%] beartype_test/a00_unit/a20_util/test_utilobject.py::test_get_object_name PASSED [ 46%] beartype_test/a00_unit/a20_util/text/test_utiltextansi.py::test_is_text_ansi PASSED [ 46%] beartype_test/a00_unit/a20_util/text/test_utiltextansi.py::test_strip_str_ansi PASSED [ 46%] beartype_test/a00_unit/a20_util/text/test_utiltextidentifier.py::test_die_unless_identifier PASSED [ 47%] beartype_test/a00_unit/a20_util/text/test_utiltextidentifier.py::test_is_identifier PASSED [ 47%] beartype_test/a00_unit/a20_util/text/test_utiltextjoin.py::test_join_delimited PASSED [ 47%] beartype_test/a00_unit/a20_util/text/test_utiltextjoin.py::test_join_delimited_disjunction PASSED [ 48%] beartype_test/a00_unit/a20_util/text/test_utiltextlabel.py::test_label_beartypeable_kind PASSED [ 48%] beartype_test/a00_unit/a20_util/text/test_utiltextlabel.py::test_label_callable PASSED [ 48%] beartype_test/a00_unit/a20_util/text/test_utiltextlabel.py::test_label_type PASSED [ 48%] beartype_test/a00_unit/a20_util/text/test_utiltextmunge.py::test_uppercase_str_char_first PASSED [ 49%] beartype_test/a00_unit/a20_util/text/test_utiltextmunge.py::test_number_str_lines PASSED [ 49%] beartype_test/a00_unit/a20_util/text/test_utiltextmunge.py::test_replace_str_substrs PASSED [ 49%] beartype_test/a00_unit/a20_util/text/test_utiltextmunge.py::test_suffix_str_unless_suffixed PASSED [ 50%] beartype_test/a00_unit/a20_util/text/test_utiltextmunge.py::test_truncate_str PASSED [ 50%] beartype_test/a00_unit/a20_util/text/test_utiltextrepr.py::test_represent_object PASSED [ 50%] beartype_test/a00_unit/a20_util/text/test_utiltextrepr.py::test_represent_func PASSED [ 51%] beartype_test/a00_unit/a20_util/text/test_utiltextrepr.py::test_represent_pith PASSED [ 51%] beartype_test/a00_unit/a20_util/text/test_utiltextversion.py::test_convert_str_version_to_tuple PASSED [ 51%] beartype_test/a00_unit/a40_api/conf/test_confcls.py::test_conf_dataclass PASSED [ 51%] beartype_test/a00_unit/a40_api/conf/test_confcls.py::test_conf_is_color PASSED [ 52%] beartype_test/a00_unit/a40_api/conf/test_confenum.py::test_conf_strategy PASSED [ 52%] beartype_test/a00_unit/a40_api/conf/test_confenum.py::test_conf_violation_verbosity PASSED [ 52%] beartype_test/a00_unit/a40_api/conf/test_confoverrides.py::test_conf_overrides PASSED [ 53%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_new FAILED [ 53%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_mapping FAILED [ 53%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_repr PASSED [ 53%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_equals FAILED [ 54%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_compare_fail PASSED [ 54%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_contains PASSED [ 54%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_iter PASSED [ 55%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_getitem PASSED [ 55%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_bool PASSED [ 55%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_len PASSED [ 55%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_is_ignorable FAILED [ 56%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_is_subhint_fail PASSED [ 56%] beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_is_args_ignorable PASSED [ 56%] beartype_test/a00_unit/a40_api/door/a90_func/test_door_func.py::test_door_is_subhint ERROR [ 57%] beartype_test/a00_unit/a40_api/plug/test_plugmixin.py::test_beartypehintable PASSED [ 57%] beartype_test/a00_unit/a40_api/test_api_cave.py::test_api_cave_type_core PASSED [ 57%] beartype_test/a00_unit/a40_api/test_api_cave.py::test_api_cave_type_core_nonpypy PASSED [ 57%] beartype_test/a00_unit/a40_api/test_api_cave.py::test_api_cave_tuple_core PASSED [ 58%] beartype_test/a00_unit/a40_api/test_api_cave.py::test_api_cave_tuple_nonetypeor PASSED [ 58%] beartype_test/a00_unit/a40_api/test_api_cave.py::test_api_cave_lib_numpy SKIPPED [ 58%] beartype_test/a00_unit/a40_api/test_api_meta.py::test_api_meta PASSED [ 59%] beartype_test/a00_unit/a40_api/typing/test_typingpep544.py::test_typingpep544_metaclass PASSED [ 59%] beartype_test/a00_unit/a40_api/typing/test_typingpep544.py::test_typingpep544_superclass PASSED [ 59%] beartype_test/a00_unit/a40_api/typing/test_typingpep544.py::test_typingpep544_subclass PASSED [ 59%] beartype_test/a00_unit/a40_api/typing/test_typingpep544.py::test_typingpep544_protocols_typing PASSED [ 60%] beartype_test/a00_unit/a40_api/typing/test_typingpep544.py::test_typingpep544_protocol_custom_direct PASSED [ 60%] beartype_test/a00_unit/a40_api/typing/test_typingpep544.py::test_typingpep544_protocol_custom_direct_typevar PASSED [ 60%] beartype_test/a00_unit/a40_api/typing/test_typingpep544.py::test_typingpep544_protocol_custom_indirect PASSED [ 61%] beartype_test/a00_unit/a40_api/typing/test_typingpep544.py::test_typingpep544_pep593_integration PASSED [ 61%] beartype_test/a00_unit/a40_api/vale/_core/test_valecore.py::test_api_vale_validator_pass PASSED [ 61%] beartype_test/a00_unit/a40_api/vale/_core/test_valecore.py::test_api_vale_validator_fail PASSED [ 61%] beartype_test/a00_unit/a40_api/vale/_is/test_valeis.py::test_api_vale_is_pass PASSED [ 62%] beartype_test/a00_unit/a40_api/vale/_is/test_valeis.py::test_api_vale_is_fail PASSED [ 62%] beartype_test/a00_unit/a40_api/vale/_is/test_valeiscls.py::test_api_vale_isinstance_pass PASSED [ 62%] beartype_test/a00_unit/a40_api/vale/_is/test_valeiscls.py::test_api_vale_isinstance_fail PASSED [ 63%] beartype_test/a00_unit/a40_api/vale/_is/test_valeiscls.py::test_api_vale_issubclass_pass PASSED [ 63%] beartype_test/a00_unit/a40_api/vale/_is/test_valeiscls.py::test_api_vale_issubclass_fail PASSED [ 63%] beartype_test/a00_unit/a40_api/vale/_is/test_valeisobj.py::test_api_vale_isattr_pass PASSED [ 63%] beartype_test/a00_unit/a40_api/vale/_is/test_valeisobj.py::test_api_vale_isattr_fail PASSED [ 64%] beartype_test/a00_unit/a40_api/vale/_is/test_valeisoper.py::test_api_vale_isequal_pass PASSED [ 64%] beartype_test/a00_unit/a40_api/vale/_is/test_valeisoper.py::test_api_vale_isequal_fail PASSED [ 64%] beartype_test/a00_unit/a40_api/vale/_util/test_valeutiltext.py::test_api_vale_format_diagnosis_line PASSED [ 65%] beartype_test/a00_unit/a60_check/a00_code/snip/test_codesnipcls.py::test_pith_index_to_var_name PASSED [ 65%] beartype_test/a00_unit/a60_check/a00_code/test_codemake.py::test_make_check_code_decoration PASSED [ 65%] beartype_test/a00_unit/a60_check/a00_code/test_codescope.py::test_add_func_scope_type PASSED [ 65%] beartype_test/a00_unit/a60_check/a00_code/test_codescope.py::test_add_func_scope_types PASSED [ 66%] beartype_test/a00_unit/a60_check/a00_code/test_codescope.py::test_express_func_scope_type_ref PASSED [ 66%] beartype_test/a00_unit/a60_check/a20_convert/test_convcoerce.py::test_coerce_func_hint_root PASSED [ 66%] beartype_test/a00_unit/a60_check/a20_convert/test_convcoerce.py::test_coerce_hint_any PASSED [ 67%] beartype_test/a00_unit/a60_check/a20_convert/test_convreduce.py::test_reduce_hint FAILED [ 67%] beartype_test/a00_unit/a60_check/a80_forward/reference/test_fwdrefmake.py::test_make_forwardref_indexable_subtype PASSED [ 67%] beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py::test_door_is_bearable_warnings FAILED [ 67%] beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py::test_door_die_if_unbearable FAILED [ 68%] beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py::test_door_typehint_die_if_unbearable FAILED [ 68%] beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py::test_door_is_bearable FAILED [ 68%] beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py::test_door_typehint_is_bearable FAILED [ 69%] beartype_test/a00_unit/a60_check/a90_door/test_checkdoor_pep563.py::test_resolve_pep563 PASSED [ 69%] beartype_test/a00_unit/a60_check/test_checkcall.py::test_beartypecall PASSED [ 69%] beartype_test/a00_unit/a70_decor/a00_core/test_decormore.py::test_beartype_descriptor_decorator_builtin PASSED [ 69%] beartype_test/a00_unit/a70_decor/a20_error/a90_main/test_errorget.py::test_get_func_pith_violation FAILED [ 70%] beartype_test/a00_unit/a70_decor/a20_error/a90_main/test_errorget.py::test_get_func_pith_violation_conf_is_color PASSED [ 70%] beartype_test/a00_unit/a70_decor/a20_error/a90_main/test_errorget.py::test_get_func_pith_violation_conf_violation_types FAILED [ 70%] beartype_test/a00_unit/a70_decor/a20_error/a90_main/test_errorget.py::test_get_func_pith_violation_conf_violation_verbosity PASSED [ 71%] beartype_test/a00_unit/a70_decor/a20_error/a90_main/test_errorget.py::test_get_hint_object_violation PASSED [ 71%] beartype_test/a00_unit/a70_decor/a20_error/a90_main/test_errorplug.py::test_get_func_pith_violation_instancecheck_str PASSED [ 71%] beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_contextlib.py::test_decor_contextlib_contextmanager FAILED [ 71%] beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_functools.py::test_decor_functools_lru_cache PASSED [ 72%] beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_mypy.py::test_decor_mypy_notimplemented FAILED [ 72%] beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_nptyping.py::test_decor_nptyping SKIPPED [ 72%] beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_pandera.py::test_decor_pandera SKIPPED [ 73%] beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_param_kind_positional_or_keyword_pass PASSED [ 73%] beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_param_kind_variadic_and_keyword_only_pass PASSED [ 73%] beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_param_kind_variadic_fail PASSED [ 73%] beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_pass_param_tuple FAILED [ 74%] beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_pass_param_custom PASSED [ 74%] beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_fail_param_call_tuple FAILED [ 74%] beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_param_hint_invalid_fail PASSED [ 75%] beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_fail_return_call PASSED [ 75%] beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_fail_return_hint_nonpep PASSED [ 75%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py::test_decor_pep484_no_type_check PASSED [ 75%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py::test_decor_pep484_hint_noreturn FAILED [ 76%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py::test_decor_pep484_hint_noreturn_async FAILED [ 76%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py::test_decor_pep484_namedtuple FAILED [ 76%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py::test_decor_pep484_hint_sequence_args_1_cached FAILED [ 77%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484ref.py::test_pep484_ref_data FAILED [ 77%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484ref.py::test_pep484_ref_arg_pass PASSED [ 77%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484ref.py::test_pep484_ref_decor_fail PASSED [ 77%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484ref.py::test_pep484_ref_call_fail FAILED [ 78%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484ref.py::test_pep484_ref_call_arg_fail PASSED [ 78%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep3119.py::test_decor_pep3119 PASSED [ 78%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep435663.py::test_decor_pep435 PASSED [ 79%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep435663.py::test_decor_pep663 PASSED [ 79%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep484585.py::test_decor_async_coroutine FAILED [ 79%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep484585.py::test_decor_async_generator FAILED [ 79%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep484585.py::test_decor_sync_generator FAILED [ 80%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep544.py::test_decor_pep544 PASSED [ 80%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep544.py::test_decor_pep544_hint_subprotocol_elision PASSED [ 80%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep557.py::test_decor_pep577 FAILED [ 81%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_class_self_reference_reloaded FAILED [ 81%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_class_self_reference_override FAILED [ 81%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_module FAILED [ 81%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_class FAILED [ 82%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_closure_nonnested FAILED [ 82%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_closure_nested SKIPPED [ 82%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_hint_pep484_namedtuple FAILED [ 83%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_hint_pep484_noreturn FAILED [ 83%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_hint_pep604 FAILED [ 83%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep585.py::test_decor_pep585_hint_nested_type_redefine PASSED [ 83%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep591.py::test_decor_pep591 PASSED [ 84%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep593.py::test_decor_pep593 PASSED [ 84%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep613.py::test_decor_pep613 PASSED [ 84%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep647.py::test_decor_pep647 PASSED [ 85%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep673.py::test_decor_pep673 FAILED [ 85%] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep695.py::test_decor_pep695 PASSED [ 85%] beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_name_fail PASSED [ 85%] beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_flex FAILED [ 86%] beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_flex_optional SKIPPED [ 86%] beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_flex_varkw FAILED [ 86%] beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_kw_unknown_fail PASSED [ 87%] beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_kwonly_mixed FAILED [ 87%] beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_flex_varpos_kwonly FAILED [ 87%] beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_posonly FAILED [ 87%] beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_posonly_flex_varpos_kwonly FAILED [ 88%] beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py::test_decor_noop_python_optimized PASSED [ 88%] beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py::test_decor_noop_unhinted_sync PASSED [ 88%] beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py::test_decor_noop_redecorated_sync PASSED [ 89%] beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py::test_decor_noop_unhinted_async FAILED [ 89%] beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py::test_decor_noop_redecorated_async FAILED [ 89%] beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py::test_decor_noop_hint_ignorable_iter FAILED [ 89%] beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py::test_decor_noop_hint_ignorable_order PASSED [ 90%] beartype_test/a00_unit/a70_decor/a40_code/test_codetype.py::test_decor_type PASSED [ 90%] beartype_test/a00_unit/a70_decor/a40_code/test_codetype.py::test_decor_type_nested PASSED [ 90%] beartype_test/a00_unit/a70_decor/a40_code/test_codetype.py::test_decor_subtype PASSED [ 91%] beartype_test/a00_unit/a70_decor/a60_main/test_beartype.py::test_beartype FAILED [ 91%] beartype_test/a00_unit/a70_decor/a80_conf/test_decorconf.py::test_decor_conf PASSED [ 91%] beartype_test/a00_unit/a70_decor/a80_conf/test_decorconf.py::test_decor_conf_is_debug PASSED [ 91%] beartype_test/a00_unit/a70_decor/a80_conf/test_decorconf.py::test_decor_conf_strategy_O0 PASSED [ 92%] beartype_test/a00_unit/a70_decor/a90_roar/test_beartype_roar.py::test_decor_violation_culprits PASSED [ 92%] beartype_test/a00_unit/a70_decor/a90_roar/test_beartype_roar.py::test_decor_violation_types FAILED [ 92%] beartype_test/a00_unit/a70_decor/test_decorgodmode.py::test_wrapper_fail_obj_large SKIPPED [ 93%] beartype_test/a00_unit/a70_decor/test_decornontype.py::test_decor_nontype_wrapper_isomorphic PASSED [ 93%] beartype_test/a00_unit/a70_decor/test_decornontype.py::test_decor_nontype_wrapper_type PASSED [ 93%] beartype_test/a00_unit/a70_decor/test_decornontype.py::test_decor_nontype_type_fail PASSED [ 93%] beartype_test/a00_unit/a70_decor/test_decortype.py::test_decor_type_callable_pseudo PASSED [ 94%] beartype_test/a00_unit/a70_decor/test_decortype.py::test_decor_type_descriptor_builtin PASSED [ 94%] beartype_test/a00_unit/a70_decor/test_decortype.py::test_decor_type_descriptor_builtin_called PASSED [ 94%] beartype_test/a00_unit/a70_decor/test_decortype.py::test_decor_type_descriptor_builtin_chain SKIPPED [ 95%] beartype_test/a00_unit/a90_claw/a00_core/test_claw_api.py::test_claw_api PASSED [ 95%] beartype_test/a00_unit/a90_claw/a90_hook/test_claw_extraprocess.py::test_claw_extraprocess_executable_submodule PASSED [ 95%] beartype_test/a00_unit/a90_claw/a90_hook/test_claw_extraprocess.py::test_claw_extraprocess_executable_package PASSED [ 95%] beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py::test_claw_intraprocess_beartype_this_package FAILED [ 96%] beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py::test_claw_intraprocess_beartype_package FAILED [ 96%] beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py::test_claw_intraprocess_beartype_packages FAILED [ 96%] beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py::test_claw_intraprocess_beartype_all FAILED [ 97%] beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py::test_claw_intraprocess_beartyping FAILED [ 97%] beartype_test/a90_func/doc/test_docreadme.py::test_doc_readme PASSED [ 97%] beartype_test/a90_func/package/test_package_import.py::test_package_import_isolation PASSED [ 97%] beartype_test/a90_func/pep/test_pep561_static.py::test_pep561_mypy SKIPPED [ 98%] beartype_test/a90_func/pep/test_pep561_static.py::test_pep561_pyright SKIPPED [ 98%] beartype_test/a90_func/z90_lib/a00_sphinx/test_sphinx.py::test_sphinx_docs_other PASSED [ 98%] beartype_test/a90_func/z90_lib/a00_sphinx/test_sphinx.py::test_sphinx_docs_these SKIPPED [ 99%] beartype_test/a90_func/z90_lib/a90_nuitka/test_nuitka.py::test_nuitka SKIPPED [ 99%] beartype_test/a90_func/z90_lib/test_equinox.py::test_equinox SKIPPED [ 99%] beartype_test/a90_func/z90_lib/test_torch.py::test_torch SKIPPED (co...) [100%] ==================================== ERRORS ==================================== ____________________ ERROR at setup of test_door_is_subhint ____________________ @fixture(scope='session') def door_cases_subhint() -> 'Iterable[Tuple[object, object, bool]]': ''' Session-scoped fixture returning an iterable of **hint subhint cases** (i.e., 3-tuples ``(subhint, superhint, is_subhint)`` describing the subhint relations between two PEP-compliant type hints), efficiently cached across all tests requiring this fixture. This iterable is intentionally defined by the return of this fixture rather than as a global constant of this submodule. Why? Because the former safely defers all heavyweight imports required to define this iterable to the call of the first unit test requiring this fixture, whereas the latter unsafely performs those imports at pytest test collection time. Returns -------- Iterable[Tuple[object, object, bool]] Iterable of one or more 3-tuples ``(subhint, superhint, is_subhint)``, where: * ``subhint`` is the PEP-compliant type hint to be passed as the first parameter to the :func:`beartype.door.is_subhint` tester. * ``superhint`` is the PEP-compliant type hint to be passed as the second parameter to the :func:`beartype.door.is_subhint` tester. * ``is_subhint`` is ``True`` only if that subhint is actually a subhint of that superhint according to that tester. ''' # ..................{ IMPORTS }.................. # Defer fixture-specific imports. import collections.abc import typing from beartype._data.hint.datahinttyping import S, T from beartype._util.hint.pep.utilpepget import get_hint_pep_typevars from beartype._util.py.utilpyversion import ( IS_PYTHON_AT_LEAST_3_9, ) from collections.abc import ( Collection as CollectionABC, Sequence as SequenceABC, ) # Intentionally import from "beartype.typing" rather than "typing" to # guarantee PEP 544-compliant caching protocol type hints. from beartype.typing import ( Literal, Protocol, TypedDict, ) # Intentionally import from "typing" rather than "beartype.typing" to # guarantee PEP 484-compliant type hints. > from typing import ( Any, Awaitable, ByteString, Callable, Collection, DefaultDict, Dict, Generic, Hashable, Iterable, List, Mapping, NamedTuple, NewType, Optional, Reversible, Sequence, Sized, Tuple, Type, TypeVar, Union, ) E ImportError: cannot import name 'ByteString' from 'typing' (/usr/lib64/python3.14/typing.py) Any = typing.Any Awaitable = typing.Awaitable CollectionABC = IS_PYTHON_AT_LEAST_3_9 = True Literal = typing.Literal Protocol = S = ~S SequenceABC = T = ~T TypedDict = collections = get_hint_pep_typevars = typing = beartype_test/a00_unit/a40_api/door/_doorfixture.py:173: ImportError =================================== FAILURES =================================== _______________________________ test_api_typing ________________________________ def test_api_typing() -> None: ''' Test the public API of the :mod:`beartype.meta` submodule. This test exercises that there exists a one-to-one mapping between public attributes exported by the :mod:`beartype.typing` and :mod:`typing` submodules. See the class docstring for relevant commentary. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. import typing as official_typing from beartype import typing as beartype_typing from beartype._util.py.utilpyversion import ( IS_PYTHON_AT_LEAST_3_13, IS_PYTHON_AT_LEAST_3_9, ) # ..................{ MAGIC }.................. # Set of the basenames of all erroneously publicized public attributes of # all "typing" modules across all Python versions. Ideally, these attributes # would have been privatized by prefixing these basenames by "_". Ideally, # the "typing.__all__" list would accurately list the basenames of all # explicitly exported public attributes. Since neither of these two ideals # is reflected by the "typing" module, this set exists. TYPING_ATTR_PUBLIC_BAD_NAMES = { 'ABCMeta', 'EXCLUDED_ATTRIBUTES', 'CT_co', 'KT', 'T', 'T_co', 'T_contra', 'V_co', 'VT', 'VT_co', 'CallableMeta', 'GenericAlias', 'GenericMeta', 'TupleMeta', 'TypingMeta', 'MethodDescriptorType', 'MethodWrapperType', 'NamedTupleMeta', 'WrapperDescriptorType', 'abc', 'abstractmethod', 'abstractproperty', 'collections', 'collections_abc', 'contextlib', 'copyreg', 'defaultdict', 'functools', 'io', 'operator', 're', 'stdlib_re', 'sys', 'types', 'warnings', } # Set of all soft-deprecated public "typing" attributes only dynamically # defined by the typing.__getattr__() dunder method and thus inaccessible to # the standard introspection performed below. TYPING_ATTR_PUBLIC_DYNAMIC_NAMES = set() # Set of the basenames of all public attributes declared by the "typing" # module whose *VALUES* differ from those declared by the "beartype.typing" # submodule. TYPING_ATTR_UNEQUAL_NAMES = { # Names of all inefficient PEP 544-specific "typing" attributes # overridden by efficient "beartype.typing" variants of the same name. 'Protocol', 'SupportsAbs', 'SupportsBytes', 'SupportsComplex', 'SupportsFloat', 'SupportsIndex', 'SupportsInt', 'SupportsRound', } # ..................{ MAGIC ~ version }.................. # If the active Python interpreter targets Python >= 3.9 and thus supports # PEP 585, add all "typing" attributes deprecated by PEP 585 to this set. if IS_PYTHON_AT_LEAST_3_9: TYPING_ATTR_UNEQUAL_NAMES.update({ 'AbstractSet', 'AsyncContextManager', 'AsyncGenerator', 'AsyncIterable', 'AsyncIterator', 'Awaitable', 'ByteString', 'Callable', 'ChainMap', 'Collection', 'Container', 'ContextManager', 'Coroutine', 'Counter', 'DefaultDict', 'Deque', 'Dict', 'FrozenSet', 'Generator', 'ItemsView', 'Iterable', 'Iterator', 'KeysView', 'List', 'Mapping', 'MappingView', 'Match', 'Pattern', 'MutableMapping', 'MutableSequence', 'MutableSet', 'OrderedDict', 'Reversible', 'Set', 'Tuple', 'Type', 'Sequence', 'ValuesView', }) # If the active Python interpreter targets Python >= 3.13... if IS_PYTHON_AT_LEAST_3_13: # Add all soft-deprecated public "typing" attributes only # dynamically defined by the typing.__getattr__() dunder method and # thus inaccessible to the introspection performed above. TYPING_ATTR_PUBLIC_DYNAMIC_NAMES.add( # This is an odd one, frankly. The typing.__getattr__() dunder # method now dynamically exports both the "AsyncContextManager" # and "ContextManager" ABCs. For unknown reasons, the # introspection performed below *ONLY* detects the former as # undefined by the "typing" module. Why? No idea. Clearly, both # are defined. *shrug* 'AsyncContextManager', # <-- no idea, but just go with it ) # ..................{ LOCALS }.................. # Set of the names of *ALL* attributes (both public and private) declared by # the standard "typing" module. OFFICIAL_TYPING_ATTR_NAMES = ( set(dir(official_typing)) | TYPING_ATTR_PUBLIC_DYNAMIC_NAMES) # Dictionary mapping from the basenames of all public attributes declared # by the "beartype.typing" subpackage to those attributes. BEARTYPE_TYPING_ATTR_NAME_TO_VALUE = { # Public attribute declared by the "beartype.typing" submodule. beartype_typing_attr_name: getattr( beartype_typing, beartype_typing_attr_name) # For the basename of each attribute declared by this submodule... for beartype_typing_attr_name in dir(beartype_typing) # If this basename is... if ( beartype_typing_attr_name[0] not in { # Prefixed by "_", this is a private rather than public # attribute. '_', # Prefixed by "@", this is most likely either the "@pytest_ar" # or "@py_builtins" attribute inserted from pytest during test # execution. In either case, ignore this attribute. '@', } # Then ignore this attribute. ) # Else, this attribute is public and thus unignorable. } # Dictionary mapping from the basenames of all public attributes declared # by the standard "typing" module to those attributes. OFFICIAL_TYPING_ATTR_NAME_TO_VALUE = { # Public attribute declared by the "typing" submodule. official_typing_attr_name: getattr( official_typing, official_typing_attr_name) # For the basename of each attribute declared by this submodule... for official_typing_attr_name in OFFICIAL_TYPING_ATTR_NAMES # If this basename is... if ( # Prefixed by "_" (implying this attribute to be a private rather # than public attribute) *AND*... official_typing_attr_name[0] != '_' and # This attribute was *NOT* erroneously publicized but should have # instead been privatized. Work with me here, CPython developers. official_typing_attr_name not in TYPING_ATTR_PUBLIC_BAD_NAMES # Then ignore this attribute. ) # Else, this attribute is public and thus unignorable. } # Sets of all public attributes exposed by "beartype.typing" and "typing". BEARTYPE_TYPING_ATTR_NAMES = BEARTYPE_TYPING_ATTR_NAME_TO_VALUE.keys() OFFICIAL_TYPING_ATTR_NAMES = OFFICIAL_TYPING_ATTR_NAME_TO_VALUE.keys() # Set of all desynchronized public attributes (i.e., exposed in exactly one # of either "beartype.typing" or "typing" but *NOT* both). DIFFERENT_TYPING_ATTR_NAMES = ( BEARTYPE_TYPING_ATTR_NAMES ^ OFFICIAL_TYPING_ATTR_NAMES) # Set of the basenames of all public attributes declared by the "typing" # module whose values are identical to those declared by the # "beartype.typing" submodule. TYPING_ATTR_EQUAL_NAMES = ( BEARTYPE_TYPING_ATTR_NAME_TO_VALUE.keys() - TYPING_ATTR_UNEQUAL_NAMES) # ..................{ ASSERTS }.................. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # CAUTION: When this assertion fails, the culprit is *USUALLY* the "typing" # module for the active Python module, which has probably erroneously # publicized one or more public attributes. In this case, the names of these # attributes *MUST* be manually added to the # "TYPING_ATTR_PUBLIC_BAD_NAMES" set defined far above. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # Assert that these two modules expose the same number of public attributes. # Since a simple assertion statement would produce non-human-readable # output, we expand this assertion to identify all differing attributes. > assert DIFFERENT_TYPING_ATTR_NAMES == set() E AssertionError: assert {'NoDefault',...'is_protocol'} == set() E E Extra items in the left set: E 'is_protocol' E 'get_protocol_members' E 'evaluate_forward_ref' E 'NoDefault' E 'TypeIs'... E E ...Full output truncated (12 lines hidden), use '-vv' to show BEARTYPE_TYPING_ATTR_NAMES = dict_keys(['AbstractSet', 'Annotated', 'Any', 'AnyStr', 'AsyncContextManager', 'AsyncGenerator', 'AsyncIterable', 'Asy...is_typeddict', 'no_type_check', 'no_type_check_decorator', 'overload', 'override', 'reveal_type', 'runtime_checkable']) BEARTYPE_TYPING_ATTR_NAME_TO_VALUE = {'AbstractSet': , 'Annotated': typing.Annotated, 'Any': typing.Any, 'AnyStr': ~AnyStr, ...} DIFFERENT_TYPING_ATTR_NAMES = {'NoDefault', 'ReadOnly', 'TypeIs', 'evaluate_forward_ref', 'get_protocol_members', 'is_protocol'} IS_PYTHON_AT_LEAST_3_13 = True IS_PYTHON_AT_LEAST_3_9 = True OFFICIAL_TYPING_ATTR_NAMES = dict_keys(['ParamSpecKwargs', 'override', 'Tuple', 'Coroutine', 'SupportsRound', 'AsyncGenerator', 'IO', 'Container', ...pecArgs', 'Sized', 'assert_never', 'TypedDict', 'List', 'no_type_check_decorator', 'MutableMapping', 'TypeIs', 'Type']) OFFICIAL_TYPING_ATTR_NAME_TO_VALUE = {'AbstractSet': typing.AbstractSet, 'Annotated': typing.Annotated, 'Any': typing.Any, 'AnyStr': ~AnyStr, ...} TYPING_ATTR_EQUAL_NAMES = {'Annotated', 'Any', 'AnyStr', 'BinaryIO', 'ClassVar', 'Concatenate', ...} TYPING_ATTR_PUBLIC_BAD_NAMES = {'ABCMeta', 'CT_co', 'CallableMeta', 'EXCLUDED_ATTRIBUTES', 'GenericAlias', 'GenericMeta', ...} TYPING_ATTR_PUBLIC_DYNAMIC_NAMES = {'AsyncContextManager'} TYPING_ATTR_UNEQUAL_NAMES = {'AbstractSet', 'AsyncContextManager', 'AsyncGenerator', 'AsyncIterable', 'AsyncIterator', 'Awaitable', ...} beartype_typing = official_typing = beartype_test/a00_unit/a00_core/test_a90_typing.py:259: AssertionError __________________ test_get_hint_pep484_typevar_bound_or_none __________________ args = (~T_CONSTRAINED,), args_flat = ~T_CONSTRAINED return_value = @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: raise exception # pyright: ignore[reportGeneralTypeIssues] # Else, this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception. # Value returned by a prior call to the decorated callable when # passed these parameters *OR* a sentinel placeholder otherwise # (i.e., if this callable has yet to be passed these parameters). return_value = args_flat_to_return_value_get( args_flat, SENTINEL) # If this callable has already been called with these parameters, # return the value returned by that prior call. if return_value is not SENTINEL: return return_value # Else, this callable has yet to be called with these parameters. # Attempt to... try: # Call this parameter with these parameters and cache the value # returned by this call to these parameters. return_value = args_flat_to_return_value[args_flat] = func( *args) # If this call raised an exception... except Exception as exception: # Cache this exception to these parameters. args_flat_to_exception[args_flat] = exception # Re-raise this exception. > raise exception args = (~T_CONSTRAINED,) args_flat = ~T_CONSTRAINED args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: } args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (~T_CONSTRAINED,) args_flat = ~T_CONSTRAINED args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: } args_flat_to_return_value_get = func = return_value = beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:111: in get_hint_pep484_typevar_bound_or_none return make_hint_pep484_union(hint.__constraints__) exception_prefix = '' hint = ~T_CONSTRAINED make_hint_pep484_union = beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: args = ((, ),) args_flat = (, ) exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: > raise exception # pyright: ignore[reportGeneralTypeIssues] args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: def test_get_hint_pep484_typevar_bound_or_none() -> None: ''' Test the :func:`beartype._util.hint.pep.proposal.pep484.utilpep484typevar.get_hint_pep484_typevar_bound_or_none` tester. ''' # Defer test-specific imports. from beartype.roar import BeartypeDecorHintPep484Exception from beartype._util.hint.pep.proposal.pep484.utilpep484typevar import ( get_hint_pep484_typevar_bound_or_none) from beartype_test.a00_unit.data.hint.pep.proposal.data_pep484 import ( T, T_BOUNDED, T_CONSTRAINED, ) from pytest import raises # Assert this getter returns "None" for unbounded type variables. assert get_hint_pep484_typevar_bound_or_none(T) is None # Assert this getter reduces bounded type variables to their upper bound. assert get_hint_pep484_typevar_bound_or_none(T_BOUNDED) is int # Union of all constraints parametrizing a constrained type variable, # reduced from that type variable. > typevar_constraints_union = get_hint_pep484_typevar_bound_or_none( T_CONSTRAINED) BeartypeDecorHintPep484Exception = T = ~T T_BOUNDED = ~T_BOUNDED T_CONSTRAINED = ~T_CONSTRAINED get_hint_pep484_typevar_bound_or_none = raises = beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484/test_utilpep484typevar.py:46: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~T_CONSTRAINED,) args_flat = ~T_CONSTRAINED args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: } args_flat_to_return_value_get = func = return_value = beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:111: in get_hint_pep484_typevar_bound_or_none return make_hint_pep484_union(hint.__constraints__) exception_prefix = '' hint = ~T_CONSTRAINED make_hint_pep484_union = beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError ___________________ test_get_hint_pep484585_type_superclass ____________________ def test_get_hint_pep484585_type_superclass() -> None: ''' Test the ``get_hint_pep484585_type_superclass`` getter defined by the :mod:`beartype._util.hint.pep.proposal.pep484585.utilpep484585type` submodule. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.roar import ( BeartypeDecorHintPep3119Exception, BeartypeDecorHintPep484585Exception, BeartypeDecorHintPep585Exception, ) from beartype.typing import ( ForwardRef, Type, Union, ) from beartype._util.hint.pep.proposal.pep484585.utilpep484585type import ( get_hint_pep484585_type_superclass) from beartype._util.py.utilpyversion import IS_PYTHON_AT_LEAST_3_9 from beartype_test.a00_unit.data.data_type import NonIssubclassableClass from pytest import raises # ....................{ PASS }.................... # Assert this getter returns the expected object when passed a PEP # 484-compliant subclass type hint subscripted by a class. assert get_hint_pep484585_type_superclass(Type[str], '') is str # Assert this getter returns the expected object when passed a PEP # 484-compliant subclass type hint subscripted by a union of classes. > hint_superclass = get_hint_pep484585_type_superclass( Type[Union[dict, set]], '') BeartypeDecorHintPep3119Exception = BeartypeDecorHintPep484585Exception = BeartypeDecorHintPep585Exception = ForwardRef = IS_PYTHON_AT_LEAST_3_9 = True NonIssubclassableClass = Type = Union = get_hint_pep484585_type_superclass = raises = beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585type.py:54: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = type[dict | set], exception_prefix = '' def get_hint_pep484585_type_superclass( hint: object, exception_prefix: str, ) -> _HINT_PEP484585_SUBCLASS_ARGS_1_UNION: ''' **Issubclassable superclass(es)** (i.e., class whose metaclass does *not* define a ``__subclasscheck__()`` dunder method that raises an exception, tuple of such classes, or forward reference to such a class) subscripting the passed :pep:`484`- or :pep:`585`-compliant **subclass type hint** (i.e., hint constraining objects to subclass that superclass). This getter is intentionally *not* memoized (e.g., by the :func:`callable_cached` decorator), as the implementation trivially reduces to an efficient one-liner. Parameters ---------- hint : object Object to be inspected. exception_prefix : str Human-readable label prefixing the representation of this object in the exception message. Returns ------- _HINT_PEP484585_SUBCLASS_ARGS_1_UNION Argument subscripting this subclass type hint, guaranteed to be either: * An issubclassable class. * A tuple of issubclassable classes. * A :pep:`484`-compliant forward reference to an issubclassable class that typically has yet to be declared (i.e., :class:`typing.ForwardRef` instance). * A :pep:`484`-compliant type variable constrained to classes (i.e., :class:`typing.TypeVar` instance). * A :pep:`585`-compliant union of two or more issubclassable classes. * A :pep:`484`-compliant type variable constrained to classes (i.e., :class:`typing.TypeVar` instance). Raises ------ BeartypeDecorHintPep3119Exception If this superclass subscripting this type hint is *not* **issubclassable** (i.e., class whose metaclass defines a ``__subclasscheck__()`` dunder method raising an exception). BeartypeDecorHintPep484585Exception If this hint is either: * Neither a :pep:`484`- nor :pep:`585`-compliant subclass type hint. * A :pep:`484`- or :pep:`585`-compliant subclass type hint subscripted by one argument that is neither a class, union of classes, nor forward reference to a class. BeartypeDecorHintPep585Exception If this hint is either: * A :pep:`585`-compliant subclass type hint subscripted by either: * *No* arguments. * Two or more arguments. ''' # Avoid circular import dependencies. from beartype._util.hint.pep.utilpepget import ( get_hint_pep_args, get_hint_pep_sign, get_hint_pep_sign_or_none, ) # If this is neither a PEP 484- *NOR* PEP 585-compliant subclass type hint, # raise an exception. if get_hint_pep_sign(hint) is not HintSignType: raise BeartypeDecorHintPep484585Exception( f'{exception_prefix}{repr(hint)} ' f'neither PEP 484 nor 585 subclass type hint.' ) # Else, this is a subclass type hint. # Superclass subscripting this hint. hint_superclass = get_hint_pep484585_args( hint=hint, args_len=1, exception_prefix=exception_prefix) # Sign identifying this superclass. hint_superclass_sign = get_hint_pep_sign_or_none(hint_superclass) # If this superclass is actually a union of superclasses... if hint_superclass_sign is HintSignUnion: # Efficiently reduce this superclass to the tuple of superclasses # subscripting and thus underlying this union. hint_superclass = get_hint_pep_args(hint_superclass) # If any item of this tuple is *NOT* an issubclassable class, raise an # exception. # print(f'hint_superclass union arg: {hint_superclass}') die_unless_object_issubclassable( obj=hint_superclass, exception_prefix=exception_prefix) # type: ignore[arg-type] # Else, this superclass is *NOT* a union of superclasses. # # If this superclass is actually a forward reference to a superclass, # silently accept this reference as is. This conditional exists only to # avoid raising a subsequent exception. elif hint_superclass_sign is HintSignForwardRef: pass # Else, this superclass is *NOT* a forward reference to a superclass. # # If this superclass is a class... elif isinstance(hint_superclass, type): die_unless_type_issubclassable( cls=hint_superclass, exception_prefix=exception_prefix) # Else, this superclass is issubclassable. # Else, this superclass is of an unexpected type. In this case, raise an # exception. # # Note that PEP 585-compliant subclass type hints infrequently trigger this # edge case. Although the "typing" module explicitly validates the # arguments subscripting PEP 484-compliant type hints, the CPython # interpreter applies *NO* such validation to PEP 585-compliant subclass # type hints. For example, PEP 585-compliant subclass type hints are # subscriptable by the empty tuple, which is technically an argument: # >>> type[()].__args__ # () # <---- thanks fer nuthin else: > raise BeartypeDecorHintPep484585Exception( f'{exception_prefix}PEP 484 or 585 subclass type hint ' f'{repr(hint)} child type hint {repr(hint_superclass)} neither ' f'class, union of classes, nor forward reference to class.' ) E beartype.roar.BeartypeDecorHintPep484585Exception: PEP 484 or 585 subclass type hint type[dict | set] child type hint dict | set neither class, union of classes, nor forward reference to class. exception_prefix = '' get_hint_pep_args = get_hint_pep_sign = get_hint_pep_sign_or_none = hint = type[dict | set] hint_superclass = dict | set hint_superclass_sign = None beartype/_util/hint/pep/proposal/pep484585/utilpep484585type.py:168: BeartypeDecorHintPep484585Exception _____________________________ test_is_hint_pep586 ______________________________ def test_is_hint_pep586() -> None: ''' Test the :func:`beartype._util.hint.pep.proposal.utilpep586.die_unless_hint_pep586` raiser. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.roar import BeartypeDecorHintPep586Exception from beartype.typing import Optional from beartype._util.hint.pep.proposal.utilpep586 import ( die_unless_hint_pep586) from beartype._util.api.utilapityping import get_typing_attrs from enum import Enum # ....................{ LOCALS }.................... class _Color(Enum): ''' Arbitrary enumeration to be tested below. ''' RED = 0 # Tuple of arbitrary objects permissible for use as arguments subscripting # PEP 586-compliant "Literal" type hints. # # For conformance, the items of this tuple are copied verbatim from a # prominent PEP 586 example under the "Legal parameters for Literal at type # check time" subsection. _LITERAL_ARGS = ( 26, 0x1A, -4, "hello world", b"hello world", u"hello world", True, _Color.RED, None, ) # ..................{ FACTORIES }.................. # For each PEP 586-compliant "Literal" factory importable from each # currently importable "typing" module... for Literal in get_typing_attrs('Literal'): # ....................{ PASS }.................... # For each object that is a valid literal argument, assert this raiser # raises no exception when passed that factory subscripted by that # argument. for literal_arg in _LITERAL_ARGS: die_unless_hint_pep586(Literal[literal_arg]) # Assert this raiser raises no exception when passed that factory # subscripted by two or more such arguments. die_unless_hint_pep586(Literal[ 26, "hello world", b"hello world", True, _Color.RED, None]) # ....................{ FAIL }.................... # Assert this validator raises the expected exception when passed an # object that is *NOT* a literal. with raises(BeartypeDecorHintPep586Exception): > die_unless_hint_pep586(Optional[str]) BeartypeDecorHintPep586Exception = Enum = Literal = typing.Literal Optional = typing.Optional _Color = _LITERAL_ARGS = (26, 26, -4, 'hello world', b'hello world', 'hello world', ...) die_unless_hint_pep586 = get_typing_attrs = literal_arg = None beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep586.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/hint/pep/proposal/utilpep586.py:88: in die_unless_hint_pep586 if get_hint_pep_sign(hint) is not HintSignLiteral: exception_cls = exception_prefix = '' get_hint_pep_args = get_hint_pep_sign = hint = str | None _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = str | None exception_cls = exception_prefix = '' def get_hint_pep_sign( # Mandatory parameters. hint: object, # Optional parameters. exception_cls: TypeException = BeartypeDecorHintPepSignException, exception_prefix: str = '', ) -> HintSign: ''' **Sign** (i.e., :class:`HintSign` instance) uniquely identifying the passed PEP-compliant type hint if PEP-compliant *or* raise an exception otherwise (i.e., if this hint is *not* PEP-compliant). This getter is intentionally *not* memoized (e.g., by the :func:`callable_cached` decorator), as the implementation trivially reduces to an efficient one-liner. Parameters ---------- hint : object Type hint to be inspected. exception_cls : TypeException, optional Type of exception to be raised in the event of a fatal error. Defaults to :exc:`.BeartypeDecorHintPepSignException`. exception_prefix : str, optional Human-readable substring prefixing the representation of this object in the exception message. Defaults to the empty string. Returns ------- dict Sign uniquely identifying this hint. Raises ------ exception_cls If this hint is either: * PEP-compliant but *not* uniquely identifiable by a sign. * PEP-noncompliant. * *Not* a hint (i.e., neither PEP-compliant nor -noncompliant). See Also -------- :func:`get_hint_pep_sign_or_none` Further details. ''' # Sign uniquely identifying this hint if recognized *OR* "None" otherwise. hint_sign = get_hint_pep_sign_or_none(hint) # If this hint is unrecognized... if hint_sign is None: assert isinstance(exception_cls, type), ( f'{exception_cls} not exception type.') assert isinstance(exception_prefix, str), ( f'{exception_prefix} not string.') # Avoid circular import dependencies. from beartype._util.hint.nonpep.utilnonpeptest import die_if_hint_nonpep # If this hint is PEP-noncompliant, raise an exception. die_if_hint_nonpep( hint=hint, exception_cls=exception_cls, exception_prefix=exception_prefix, ) # Else, this hint is *NOT* PEP-noncompliant. Since this hint was # unrecognized, this hint *MUST* necessarily be a PEP-compliant type # hint currently unsupported by the @beartype decorator. # Raise an exception indicating this. # # Note that we intentionally avoid calling the # die_if_hint_pep_unsupported() function here, which calls the # is_hint_pep_supported() function, which calls this function. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} ' f'currently unsupported by beartype. ' f'You suddenly feel encouraged to submit a feature request ' f'for this hint to our friendly issue tracker at:\n' f'\t{URL_ISSUES}' ) E beartype.roar.BeartypeDecorHintPepSignException: Type hint str | None currently unsupported by beartype. You suddenly feel encouraged to submit a feature request for this hint to our friendly issue tracker at: E https://github.com/beartype/beartype/issues die_if_hint_nonpep = exception_cls = exception_prefix = '' hint = str | None hint_sign = None beartype/_util/hint/pep/utilpepget.py:351: BeartypeDecorHintPepSignException _________________________ test_is_hint_pep593_beartype _________________________ def test_is_hint_pep593_beartype() -> None: ''' Test usage of the private :mod:`beartype._util.hint.pep.proposal.utilpep593.is_hint_pep593_beartype` tester. ''' # Defer test-specific imports. from beartype.roar import ( BeartypeDecorHintPepException, BeartypeValeLambdaWarning, ) from beartype.vale import Is from beartype._util.hint.pep.proposal.utilpep593 import ( is_hint_pep593_beartype) from beartype._util.py.utilpyversion import IS_PYTHON_AT_LEAST_3_9 from pytest import raises, warns # If the active Python interpreter targets at least Python >= 3.9 and thus # supports PEP 593... if IS_PYTHON_AT_LEAST_3_9: # Defer version-specific imports. from typing import Annotated # Assert this tester accepts beartype-specific metahints. # # Unfortunately, this test actually induces an error in CPython, which # our codebase emits as a non-fatal warning. Specifically, CPython # reports the "func.__code__.co_firstlineno" attribute of the nested # lambda function defined below to be one less than the expected value. # Since this issue is unlikely to be resolved soon *AND* since we have # no means of monkey-patching CPython itself, we acknowledge the # existence of this warning by simply ignoring it. *sigh* > with warns(BeartypeValeLambdaWarning): E Failed: DID NOT WARN. No warnings of type (,) were emitted. E Emitted warnings: []. Annotated = typing.Annotated BeartypeDecorHintPepException = BeartypeValeLambdaWarning = IS_PYTHON_AT_LEAST_3_9 = True Is = is_hint_pep593_beartype = raises = warns = beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep593.py:84: Failed ____________________________ test_get_hint_pep_args ____________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_get_hint_pep_args(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpepget.get_hint_pep_args` getter. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.typing import Tuple from beartype._util.hint.pep.utilpepget import ( _HINT_ARGS_EMPTY_TUPLE, get_hint_pep_args, ) from beartype._util.py.utilpyversion import IS_PYTHON_AT_LEAST_3_9 from beartype_test.a00_unit.data.hint.data_hint import NOT_HINTS_PEP # ....................{ PASS }.................... # For each PEP-compliant hint, assert this getter returns... for hint_pep_meta in hints_pep_meta: # Tuple of all arguments subscripting this hint. hint_args = get_hint_pep_args(hint_pep_meta.hint) > assert isinstance(hint_args, tuple) E AssertionError: assert False E + where False = isinstance(, tuple) IS_PYTHON_AT_LEAST_3_9 = True NOT_HINTS_PEP = frozenset({0.12345678910111213, , , (, 'list', 4277009102, ), (, ), , ...}) Tuple = _HINT_ARGS_EMPTY_TUPLE = ((),) get_hint_pep_args = hint_args = hint_pep_meta = HintPepMetadata( hint=, conf=BeartypeConf(), pep_sign=HintSign('Union'), typehin...=False, is_supported=True, is_typevars=False, is_type_typing=True, is_typing=True, piths_meta=(), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py:49: AssertionError __________________________ test_get_hint_pep_typevars __________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_get_hint_pep_typevars(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpepget.get_hint_pep_typevars` getter. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype._data.hint.pep.sign.datapepsigns import HintSignTypeVar from beartype._util.hint.pep.utilpepget import ( get_hint_pep_typevars, get_hint_pep_sign_or_none, ) from beartype_test.a00_unit.data.hint.data_hint import NOT_HINTS_PEP # For each PEP-compliant hint, assert this getter returns... for hint_pep_meta in hints_pep_meta: # Tuple of all type variables subscripting this hint. hint_typevars = get_hint_pep_typevars(hint_pep_meta.hint) > assert isinstance(hint_typevars, tuple) E AssertionError: assert False E + where False = isinstance(, tuple) HintSignTypeVar = HintSign('TypeVar') NOT_HINTS_PEP = frozenset({0.12345678910111213, , , (, 'list', 4277009102, ), (, ), , ...}) get_hint_pep_sign_or_none = get_hint_pep_typevars = hint_pep_meta = HintPepMetadata( hint=, conf=BeartypeConf(), pep_sign=HintSign('Union'), typehin...=False, is_supported=True, is_typevars=False, is_type_typing=True, is_typing=True, piths_meta=(), ) hint_typevar = ~T hint_typevars = hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py:104: AssertionError ____________________________ test_get_hint_pep_sign ____________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_get_hint_pep_sign(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpepget.get_hint_pep_sign` getter. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype.roar import BeartypeDecorHintPepSignException from beartype._util.hint.pep.utilpepget import get_hint_pep_sign from beartype_test.a00_unit.data.hint.data_hint import ( HINTS_NONPEP, NonpepCustomFakeTyping) from pytest import raises # Assert this getter returns the expected unsubscripted "typing" attribute # for all PEP-compliant type hints associated with such an attribute. for hint_pep_meta in hints_pep_meta: > assert get_hint_pep_sign(hint_pep_meta.hint) is hint_pep_meta.pep_sign BeartypeDecorHintPepSignException = HINTS_NONPEP = frozenset({(, ), , (, 'beartype._cave.._cavefast.NoneType', ), , }) NonpepCustomFakeTyping = get_hint_pep_sign = hint_pep_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) raises = beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') exception_cls = exception_prefix = '' def get_hint_pep_sign( # Mandatory parameters. hint: object, # Optional parameters. exception_cls: TypeException = BeartypeDecorHintPepSignException, exception_prefix: str = '', ) -> HintSign: ''' **Sign** (i.e., :class:`HintSign` instance) uniquely identifying the passed PEP-compliant type hint if PEP-compliant *or* raise an exception otherwise (i.e., if this hint is *not* PEP-compliant). This getter is intentionally *not* memoized (e.g., by the :func:`callable_cached` decorator), as the implementation trivially reduces to an efficient one-liner. Parameters ---------- hint : object Type hint to be inspected. exception_cls : TypeException, optional Type of exception to be raised in the event of a fatal error. Defaults to :exc:`.BeartypeDecorHintPepSignException`. exception_prefix : str, optional Human-readable substring prefixing the representation of this object in the exception message. Defaults to the empty string. Returns ------- dict Sign uniquely identifying this hint. Raises ------ exception_cls If this hint is either: * PEP-compliant but *not* uniquely identifiable by a sign. * PEP-noncompliant. * *Not* a hint (i.e., neither PEP-compliant nor -noncompliant). See Also -------- :func:`get_hint_pep_sign_or_none` Further details. ''' # Sign uniquely identifying this hint if recognized *OR* "None" otherwise. hint_sign = get_hint_pep_sign_or_none(hint) # If this hint is unrecognized... if hint_sign is None: assert isinstance(exception_cls, type), ( f'{exception_cls} not exception type.') assert isinstance(exception_prefix, str), ( f'{exception_prefix} not string.') # Avoid circular import dependencies. from beartype._util.hint.nonpep.utilnonpeptest import die_if_hint_nonpep # If this hint is PEP-noncompliant, raise an exception. die_if_hint_nonpep( hint=hint, exception_cls=exception_cls, exception_prefix=exception_prefix, ) # Else, this hint is *NOT* PEP-noncompliant. Since this hint was # unrecognized, this hint *MUST* necessarily be a PEP-compliant type # hint currently unsupported by the @beartype decorator. # Raise an exception indicating this. # # Note that we intentionally avoid calling the # die_if_hint_pep_unsupported() function here, which calls the # is_hint_pep_supported() function, which calls this function. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} ' f'currently unsupported by beartype. ' f'You suddenly feel encouraged to submit a feature request ' f'for this hint to our friendly issue tracker at:\n' f'\t{URL_ISSUES}' ) E beartype.roar.BeartypeDecorHintPepSignException: Type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') currently unsupported by beartype. You suddenly feel encouraged to submit a feature request for this hint to our friendly issue tracker at: E https://github.com/beartype/beartype/issues die_if_hint_nonpep = exception_cls = exception_prefix = '' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_sign = None beartype/_util/hint/pep/utilpepget.py:351: BeartypeDecorHintPepSignException ____________________ test_get_hint_pep_type_isinstanceable _____________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_get_hint_pep_type_isinstanceable(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpepget.get_hint_pep_origin_type_isinstanceable` getter. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype.roar import BeartypeDecorHintPepException from beartype._util.hint.pep.utilpepget import ( get_hint_pep_origin_type_isinstanceable) from beartype_test.a00_unit.data.hint.data_hint import NOT_HINTS_PEP from pytest import raises # Assert this getter... for hint_pep_meta in hints_pep_meta: # Returns the expected type origin for all PEP-compliant type hints # originating from an origin type. if hint_pep_meta.isinstanceable_type is not None: assert get_hint_pep_origin_type_isinstanceable(hint_pep_meta.hint) is ( hint_pep_meta.isinstanceable_type) # Raises the expected exception for all other hints. else: > with raises(BeartypeDecorHintPepException): E Failed: DID NOT RAISE BeartypeDecorHintPepException = NOT_HINTS_PEP = frozenset({0.12345678910111213, , , (, 'list', 4277009102, ), (, ), , ...}) get_hint_pep_origin_type_isinstanceable = hint_pep_meta = HintPepMetadata( hint=typing.List[str] | typing.Tuple[bytes, ...], conf=BeartypeConf(), pep_sign=HintSign(...tch_regexes=('\\blist\\b', '\\btuple\\b', '\\btype hint\\b'), exception_str_not_match_regexes=('\\n', '\\*'), )), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) raises = beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py:187: Failed ________________ test_get_hint_pep_type_isinstanceable_or_none _________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_get_hint_pep_type_isinstanceable_or_none(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpepget.get_hint_pep_origin_type_isinstanceable_or_none` getter. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype._util.hint.pep.utilpepget import ( get_hint_pep_origin_type_isinstanceable_or_none) from beartype_test.a00_unit.data.hint.data_hint import NOT_HINTS_PEP # Assert this getter returns the expected type origin for all PEP-compliant # type hints. for hint_pep_meta in hints_pep_meta: > assert get_hint_pep_origin_type_isinstanceable_or_none( hint_pep_meta.hint) is hint_pep_meta.isinstanceable_type E AssertionError: assert is None E + where = (typing.List[str] | typing.Tuple[bytes, ...]) E + where typing.List[str] | typing.Tuple[bytes, ...] = HintPepMetadata(\n hint=typing.List[str] | typing.Tuple[bytes, ...],\n conf=BeartypeConf(),\n pep_sign=HintSign('Union'),\n typehint_cls=,\n generic_type=None,\n isinstanceable_type=None,\n is_args=True,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=['Through tangled swamps', 'and deep precipitous dells,'],\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithSatisfiedMetadata(\n pith=(b'Startling with careless step', b'the moonlight snake,'),\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith=4276993775,\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\blist\\b', '\\btuple\\b', '\\btype hint\\b'),\n exception_str_not_match_regexes=('\\n', '\\*'),\n)),\n).hint E + and None = HintPepMetadata(\n hint=typing.List[str] | typing.Tuple[bytes, ...],\n conf=BeartypeConf(),\n pep_sign=HintSign('Union'),\n typehint_cls=,\n generic_type=None,\n isinstanceable_type=None,\n is_args=True,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=['Through tangled swamps', 'and deep precipitous dells,'],\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithSatisfiedMetadata(\n pith=(b'Startling with careless step', b'the moonlight snake,'),\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith=4276993775,\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\blist\\b', '\\btuple\\b', '\\btype hint\\b'),\n exception_str_not_match_regexes=('\\n', '\\*'),\n)),\n).isinstanceable_type NOT_HINTS_PEP = frozenset({0.12345678910111213, , , (, 'list', 4277009102, ), (, ), , ...}) get_hint_pep_origin_type_isinstanceable_or_none = hint_pep_meta = HintPepMetadata( hint=typing.List[str] | typing.Tuple[bytes, ...], conf=BeartypeConf(), pep_sign=HintSign(...tch_regexes=('\\blist\\b', '\\btuple\\b', '\\btype hint\\b'), exception_str_not_match_regexes=('\\n', '\\*'), )), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py:218: AssertionError __________________________ test_is_hint_pep_typevars ___________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_is_hint_pep_typevars(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpeptest.is_hint_pep_typevars` tester. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype._util.hint.pep.utilpeptest import is_hint_pep_typevars from beartype_test.a00_unit.data.hint.data_hint import HINTS_NONPEP # Assert that various "TypeVar"-centric types are correctly detected. for hint_pep_meta in hints_pep_meta: > assert is_hint_pep_typevars(hint_pep_meta.hint) is ( hint_pep_meta.is_typevars) E AssertionError: assert True is False E + where True = () E + where = HintPepMetadata(\n hint=,\n conf=BeartypeConf(),\n pep_sign=HintSign('Union'),\n typehint_cls=,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=True,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(),\n).hint E + and False = HintPepMetadata(\n hint=,\n conf=BeartypeConf(),\n pep_sign=HintSign('Union'),\n typehint_cls=,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=True,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(),\n).is_typevars HINTS_NONPEP = frozenset({(, ), , (, 'beartype._cave.._cavefast.NoneType', ), , }) hint_pep_meta = HintPepMetadata( hint=, conf=BeartypeConf(), pep_sign=HintSign('Union'), typehin...=False, is_supported=True, is_typevars=False, is_type_typing=True, is_typing=True, piths_meta=(), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_hint_pep_typevars = beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py:44: AssertionError ___________________________ test_is_hint_pep_typing ____________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_is_hint_pep_typing(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpeptest.is_hint_pep_typing` tester. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype._util.hint.pep.utilpeptest import ( is_hint_pep_typing) from beartype_test.a00_unit.data.hint.data_hint import NOT_HINTS_PEP # Assert this tester accepts PEP-compliant type hints defined by the # "typing" module. for hint_pep_meta in hints_pep_meta: > assert is_hint_pep_typing(hint_pep_meta.hint) is ( hint_pep_meta.is_typing) E AssertionError: assert False is True E + where False = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass')) E + where ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') = HintPepMetadata(\n hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'),\n conf=BeartypeConf(),\n pep_sign=HintSign('ForwardRef'),\n typehint_cls=None,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=,\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith='Silvicultures of',\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\btype hint\\b',),\n exception_str_not_match_regexes=(),\n)),\n).hint E + and True = HintPepMetadata(\n hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'),\n conf=BeartypeConf(),\n pep_sign=HintSign('ForwardRef'),\n typehint_cls=None,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=,\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith='Silvicultures of',\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\btype hint\\b',),\n exception_str_not_match_regexes=(),\n)),\n).is_typing NOT_HINTS_PEP = frozenset({0.12345678910111213, , , (, 'list', 4277009102, ), (, ), , ...}) hint_pep_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_hint_pep_typing = beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py:72: AssertionError _________________________ test_is_hint_pep_type_typing _________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_is_hint_pep_type_typing(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpeptest.is_hint_pep_type_typing` tester. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype._util.hint.pep.utilpeptest import ( is_hint_pep_type_typing) from beartype_test.a00_unit.data.hint.data_hint import NOT_HINTS_PEP # Assert this tester accepts PEP-compliant type hints defined by the # "typing" module. for hint_pep_meta in hints_pep_meta: > assert is_hint_pep_type_typing(hint_pep_meta.hint) is ( hint_pep_meta.is_type_typing) E AssertionError: assert False is True E + where False = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass')) E + where ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') = HintPepMetadata(\n hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'),\n conf=BeartypeConf(),\n pep_sign=HintSign('ForwardRef'),\n typehint_cls=None,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=,\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith='Silvicultures of',\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\btype hint\\b',),\n exception_str_not_match_regexes=(),\n)),\n).hint E + and True = HintPepMetadata(\n hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'),\n conf=BeartypeConf(),\n pep_sign=HintSign('ForwardRef'),\n typehint_cls=None,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=,\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith='Silvicultures of',\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\btype hint\\b',),\n exception_str_not_match_regexes=(),\n)),\n).is_type_typing NOT_HINTS_PEP = frozenset({0.12345678910111213, , , (, 'list', 4277009102, ), (, ), , ...}) hint_pep_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_hint_pep_type_typing = beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py:101: AssertionError _______________________________ test_is_hint_pep _______________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) hints_nonpep_meta = (HintNonpepMetadata( hint=(,), conf=BeartypeConf(), warning_type=None, is_ignorable=False..._regexes=('\\bfloat\\b', '\\btype hint\\b'), exception_str_not_match_regexes=('\\n', '\\*', '"float"'), )), ), ...) def test_is_hint_pep(hints_pep_meta, hints_nonpep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpeptest.is_hint_pep` tester. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. hints_nonpep_meta : Tuple[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintNonpepMetadata] Tuple of PEP-noncompliant type hint metadata describing PEP-noncompliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype._util.hint.pep.utilpeptest import is_hint_pep from beartype_test.a00_unit.data.hint.data_hint import NOT_HINTS_PEP # Assert this tester accepts PEP-compliant type hints. for hint_pep_meta in hints_pep_meta: > assert is_hint_pep(hint_pep_meta.hint) is True E AssertionError: assert False is True E + where False = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass')) E + where ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') = HintPepMetadata(\n hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'),\n conf=BeartypeConf(),\n pep_sign=HintSign('ForwardRef'),\n typehint_cls=None,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=,\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith='Silvicultures of',\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\btype hint\\b',),\n exception_str_not_match_regexes=(),\n)),\n).hint NOT_HINTS_PEP = frozenset({0.12345678910111213, , , (, 'list', 4277009102, ), (, ), , ...}) hint_pep_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_nonpep_meta = (HintNonpepMetadata( hint=(,), conf=BeartypeConf(), warning_type=None, is_ignorable=False..._regexes=('\\bfloat\\b', '\\btype hint\\b'), exception_str_not_match_regexes=('\\n', '\\*', '"float"'), )), ), ...) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_hint_pep = beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py:130: AssertionError ____________________________ test_is_hint_pep_args _____________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_is_hint_pep_args(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpeptest.is_hint_pep_args` tester. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype._util.hint.pep.utilpeptest import is_hint_pep_args from beartype_test.a00_unit.data.hint.data_hint import NOT_HINTS_PEP # Assert this tester accepts PEP-compliant subscripted type hints. for hint_pep_meta in hints_pep_meta: > assert is_hint_pep_args(hint_pep_meta.hint) is ( hint_pep_meta.is_args) E AssertionError: assert True is False E + where True = () E + where = HintPepMetadata(\n hint=,\n conf=BeartypeConf(),\n pep_sign=HintSign('Union'),\n typehint_cls=,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=True,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(),\n).hint E + and False = HintPepMetadata(\n hint=,\n conf=BeartypeConf(),\n pep_sign=HintSign('Union'),\n typehint_cls=,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=True,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(),\n).is_args NOT_HINTS_PEP = frozenset({0.12345678910111213, , , (, 'list', 4277009102, ), (, ), , ...}) hint_pep_meta = HintPepMetadata( hint=, conf=BeartypeConf(), pep_sign=HintSign('Union'), typehin...=False, is_supported=True, is_typevars=False, is_type_typing=True, is_typing=True, piths_meta=(), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_hint_pep_args = beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py:168: AssertionError __________________________ test_is_hint_pep_supported __________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_is_hint_pep_supported(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpeptest.is_hint_pep_supported` tester. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype._util.hint.pep.utilpeptest import is_hint_pep_supported from beartype_test.a00_unit.data.hint.data_hint import ( NOT_HINTS_PEP, NOT_HINTS_UNHASHABLE, ) # Assert this tester: # * Accepts supported PEP-compliant type hints. # * Rejects unsupported PEP-compliant type hints. for hint_pep_meta in hints_pep_meta: > assert is_hint_pep_supported(hint_pep_meta.hint) is ( hint_pep_meta.is_supported) E AssertionError: assert False is True E + where False = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass')) E + where ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') = HintPepMetadata(\n hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'),\n conf=BeartypeConf(),\n pep_sign=HintSign('ForwardRef'),\n typehint_cls=None,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=,\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith='Silvicultures of',\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\btype hint\\b',),\n exception_str_not_match_regexes=(),\n)),\n).hint E + and True = HintPepMetadata(\n hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'),\n conf=BeartypeConf(),\n pep_sign=HintSign('ForwardRef'),\n typehint_cls=None,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=,\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith='Silvicultures of',\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\btype hint\\b',),\n exception_str_not_match_regexes=(),\n)),\n).is_supported NOT_HINTS_PEP = frozenset({0.12345678910111213, , , (, 'list', 4277009102, ), (, ), , ...}) NOT_HINTS_UNHASHABLE = ({'For all things turn to barrenness': 'In the dim glass the demons hold,'}, ['The glass of outer weariness,', 'Made when God slept in times of old.'], {'The ravens of unresting thought;', 'There, through the broken branches, go'}) hint_pep_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_hint_pep_supported = beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py:240: AssertionError _______________________ test_die_if_hint_pep_unsupported _______________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_die_if_hint_pep_unsupported(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.pep.utilpeptest.die_if_hint_pep_unsupported` validator. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of PEP-compliant type hint metadata describing sample PEP-compliant type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype.roar import ( BeartypeDecorHintPepException, BeartypeDecorHintPepUnsupportedException, ) from beartype._util.hint.pep.utilpeptest import ( die_if_hint_pep_unsupported) from beartype_test.a00_unit.data.hint.data_hint import ( NOT_HINTS_UNHASHABLE, NOT_HINTS_PEP) # Assert this validator... for hint_pep_meta in hints_pep_meta: # Accepts supported PEP-compliant type hints. if hint_pep_meta.is_supported: > die_if_hint_pep_unsupported(hint_pep_meta.hint) BeartypeDecorHintPepException = BeartypeDecorHintPepUnsupportedException = NOT_HINTS_PEP = frozenset({0.12345678910111213, , , (, 'list', 4277009102, ), (, ), , ...}) NOT_HINTS_UNHASHABLE = ({'For all things turn to barrenness': 'In the dim glass the demons hold,'}, ['The glass of outer weariness,', 'Made when God slept in times of old.'], {'The ravens of unresting thought;', 'There, through the broken branches, go'}) die_if_hint_pep_unsupported = hint_pep_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py:279: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/hint/pep/utilpeptest.py:210: in die_if_hint_pep_unsupported die_unless_hint_pep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') exception_cls = exception_prefix = '' def die_unless_hint_pep( # Mandatory parameters. hint: object, # Optional parameters. exception_cls: TypeException = BeartypeDecorHintPepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-compliant type hint** (i.e., :mod:`beartype`-agnostic annotation compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. exception_cls : Type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`.BeartypeDecorHintPepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is *not* a PEP-compliant type hint. ''' # If this hint is *NOT* PEP-compliant, raise an exception. if not is_hint_pep(hint): assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} not PEP-compliant.') E beartype.roar.BeartypeDecorHintPepException: Type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') not PEP-compliant. exception_cls = exception_prefix = '' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_util/hint/pep/utilpeptest.py:143: BeartypeDecorHintPepException _________________________ test_die_unless_hint_nonpep __________________________ not_hints_nonpep = frozenset({typing.Sequence[str] | None, ), None, ...}) def test_die_unless_hint_nonpep(not_hints_nonpep) -> None: ''' Test the :func:`beartype._util.hint.nonpep.utilnonpeptest.die_unless_hint_nonpep` validator. Parameters ---------- not_hints_nonpep : frozenset Frozen set of various objects that are *not* PEP-noncompliant type hints exercising well-known edge cases. ''' # Defer test-specific imports. from beartype.roar import BeartypeDecorHintNonpepException from beartype._util.hint.nonpep.utilnonpeptest import ( die_unless_hint_nonpep) from beartype_test.a00_unit.data.hint.data_hint import ( HINTS_NONPEP, NOT_HINTS_UNHASHABLE, ) from pytest import raises # Assert this function accepts PEP-noncompliant type hints. for hint_nonpep in HINTS_NONPEP: die_unless_hint_nonpep(hint_nonpep) # Assert this function rejects objects excepted to be rejected. for not_hint_nonpep in not_hints_nonpep: > with raises(BeartypeDecorHintNonpepException): E Failed: DID NOT RAISE BeartypeDecorHintNonpepException = HINTS_NONPEP = frozenset({(, ), , (, 'beartype._cave.._cavefast.NoneType', ), , }) NOT_HINTS_UNHASHABLE = ({'For all things turn to barrenness': 'In the dim glass the demons hold,'}, ['The glass of outer weariness,', 'Made when God slept in times of old.'], {'The ravens of unresting thought;', 'There, through the broken branches, go'}) die_unless_hint_nonpep = hint_nonpep = not_hint_nonpep = not_hints_nonpep = frozenset({typing.Sequence[str] | None, ), None, ...}) raises = beartype_test/a00_unit/a20_util/hint/a10_nonpep/test_utilhintnonpeptest.py:49: Failed _____________________________ test_is_hint_nonpep ______________________________ not_hints_nonpep = frozenset({typing.Sequence[str] | None, ), None, ...}) def test_is_hint_nonpep(not_hints_nonpep) -> None: ''' Test the :func:`beartype._util.hint.nonpep.utilnonpeptest.is_hint_nonpep` tester. Parameters ---------- not_hints_nonpep : frozenset Frozen set of various objects that are *not* PEP-noncompliant type hints exercising well-known edge cases. ''' # Defer test-specific imports. from beartype._util.hint.nonpep.utilnonpeptest import is_hint_nonpep from beartype_test.a00_unit.data.hint.data_hint import ( HINTS_NONPEP, NOT_HINTS_UNHASHABLE, ) # Assert this function accepts PEP-noncompliant type hints. for hint_nonpep in HINTS_NONPEP: assert is_hint_nonpep(hint=hint_nonpep, is_str_valid=True) is True # Assert this function rejects objects excepted to be rejected. for not_hint_nonpep in not_hints_nonpep: > assert is_hint_nonpep(hint=not_hint_nonpep, is_str_valid=True) is False E AssertionError: assert True is False E + where True = (hint=, is_str_valid=True) HINTS_NONPEP = frozenset({(, ), , (, 'beartype._cave.._cavefast.NoneType', ), , }) NOT_HINTS_UNHASHABLE = ({'For all things turn to barrenness': 'In the dim glass the demons hold,'}, ['The glass of outer weariness,', 'Made when God slept in times of old.'], {'The ravens of unresting thought;', 'There, through the broken branches, go'}) hint_nonpep = is_hint_nonpep = not_hint_nonpep = not_hints_nonpep = frozenset({typing.Sequence[str] | None, ), None, ...}) beartype_test/a00_unit/a20_util/hint/a10_nonpep/test_utilhintnonpeptest.py:84: AssertionError _____________________________ test_die_unless_hint _____________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_die_unless_hint(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.utilhinttest.die_unless_hint` raiser. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of type hint metadata describing sample type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype.roar import ( BeartypeDecorHintNonpepException, BeartypeDecorHintPepUnsupportedException, ) from beartype._util.hint.utilhinttest import die_unless_hint from beartype_test.a00_unit.data.hint.data_hint import ( HINTS_NONPEP, NOT_HINTS, ) from pytest import raises # Assert this function accepts PEP-noncompliant type hints. for nonhint_pep in HINTS_NONPEP: die_unless_hint(nonhint_pep) # Assert this function... for hint_pep_meta in hints_pep_meta: # Accepts supported PEP-compliant type hints. if hint_pep_meta.is_supported: > die_unless_hint(hint_pep_meta.hint) BeartypeDecorHintNonpepException = BeartypeDecorHintPepUnsupportedException = HINTS_NONPEP = frozenset({(, ), , (, 'beartype._cave.._cavefast.NoneType', ), , }) NOT_HINTS = (0.12345678910111213, (), (, 'list', 4277009102, ), {'For all things turn to barrennes...Made when God slept in times of old.'], {'The ravens of unresting thought;', 'There, through the broken branches, go'}) die_unless_hint = hint_pep_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) nonhint_pep = raises = beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhinttest.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') is_str_valid = True exception_cls = exception_prefix = '' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException _________________________________ test_is_hint _________________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_is_hint(hints_pep_meta) -> None: ''' Test the :func:`beartype._util.hint.utilhinttest.is_hint` tester. Parameters ---------- hints_pep_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] List of type hint metadata describing sample type hints exercising edge cases in the :mod:`beartype` codebase. ''' # Defer test-specific imports. from beartype._util.hint.utilhinttest import is_hint from beartype_test.a00_unit.data.hint.data_hint import ( HINTS_NONPEP, NOT_HINTS, ) # Assert this tester accepts PEP-noncompliant type hints. for nonhint_pep in HINTS_NONPEP: assert is_hint(nonhint_pep) is True # Assert this tester: # * Accepts supported PEP-compliant type hints. # * Rejects unsupported PEP-compliant type hints. for hint_pep_meta in hints_pep_meta: > assert is_hint(hint_pep_meta.hint) is hint_pep_meta.is_supported E AssertionError: assert False is True E + where False = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass')) E + where ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') = HintPepMetadata(\n hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'),\n conf=BeartypeConf(),\n pep_sign=HintSign('ForwardRef'),\n typehint_cls=None,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=,\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith='Silvicultures of',\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\btype hint\\b',),\n exception_str_not_match_regexes=(),\n)),\n).hint E + and True = HintPepMetadata(\n hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'),\n conf=BeartypeConf(),\n pep_sign=HintSign('ForwardRef'),\n typehint_cls=None,\n generic_type=None,\n isinstanceable_type=None,\n is_args=False,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=,\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith='Silvicultures of',\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\btype hint\\b',),\n exception_str_not_match_regexes=(),\n)),\n).is_supported HINTS_NONPEP = frozenset({(, ), , (, 'beartype._cave.._cavefast.NoneType', ), , }) NOT_HINTS = (0.12345678910111213, (), (, 'list', 4277009102, ), {'For all things turn to barrennes...Made when God slept in times of old.'], {'The ravens of unresting thought;', 'There, through the broken branches, go'}) hint_pep_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_hint = nonhint_pep = beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhinttest.py:90: AssertionError ____________________________ test_is_hint_ignorable ____________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) hints_ignorable = frozenset({, typing.Annotated[object, ], typing.Annotated[typing.Any | ...est.a00_unit.data.hint.pep.proposal.data_pep484.TotallyNotObject, typing.Annotated[object, ] | None, ...}) def test_is_hint_ignorable(hints_pep_meta, hints_ignorable) -> None: ''' Test the :func:`beartype._util.hint.utilhinttest.is_hint_ignorable` tester. Parameters ---------- hints_pep_meta : tuple[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] Tuple of type hint metadata describing sample type hints exercising edge cases in the :mod:`beartype` codebase. hints_ignorable : frozenset Frozen set of ignorable PEP-agnostic type hints. ''' # Defer test-specific imports. from beartype._util.hint.utilhinttest import is_hint_ignorable from beartype_test.a00_unit.data.hint.data_hint import ( HINTS_NONPEP_UNIGNORABLE) # Assert this tester accepts ignorable type hints. for hint_ignorable in hints_ignorable: > assert is_hint_ignorable(hint_ignorable) is True E AssertionError: assert False is True E + where False = (typing.Annotated[typing.Any | float | str, ]) HINTS_NONPEP_UNIGNORABLE = (, (, )) hint_ignorable = typing.Annotated[typing.Any | float | str, ] hints_ignorable = frozenset({, typing.Annotated[object, ], typing.Annotated[typing.Any | ...est.a00_unit.data.hint.pep.proposal.data_pep484.TotallyNotObject, typing.Annotated[object, ] | None, ...}) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_hint_ignorable = beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhinttest.py:121: AssertionError ____________________________ test_door_typehint_new ____________________________ def test_door_typehint_new() -> None: ''' Test the :meth:`beartype.door.TypeHint.__new__` factory method. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.door import TypeHint from beartype.roar import BeartypeDoorNonpepException from beartype.typing import ( Any, Union, ) from pytest import raises # Intentionally import from "typing" rather than "beartype.typing" to # guarantee PEP 484-compliant type hints. from typing import List # ....................{ PASS }.................... # Assert that recreating a type hint against identical input yields the same # previously memoized type hint. assert TypeHint(List[Any]) is TypeHint(List[Any]) assert TypeHint(int) is TypeHint(int) #FIXME: Generalize "TypeHint" to ensure that these two type hints actually #do reduce to the same "TypeHint" object. Specifically, "List" and "list" #are both indeed semantically equivalent to "List[Any]". # Assert that recreating a type hint against non-identical but semantically # equivalent input does *NOT* reduce to the same previously memoized type # hint, sadly. assert TypeHint(List) is not TypeHint(list) # Assert that nested type hint invocations internally avoid nesting by # yielding the same previously memoized type hint. assert TypeHint(TypeHint(int)) is TypeHint(int) # Assert that public concrete subclasses of the "TypeHint" abstract base # class (ABC) pretend to reside in the top-level public "beartype.door" # subpackage rather than in a leaf private subpackage of that package. > assert TypeHint(Union[int, str]).__class__.__module__ == 'beartype.door' E AssertionError: assert 'beartype.doo...orpep484class' == 'beartype.door' E E - beartype.door E + beartype.door._cls.pep.pep484.doorpep484class Any = typing.Any BeartypeDoorNonpepException = List = typing.List TypeHint = Union = raises = beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py:62: AssertionError __________________________ test_door_typehint_mapping __________________________ iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> def test_door_typehint_mapping(iter_hints_piths_meta) -> None: ''' Test that the :meth:`beartype.door.TypeHint.__new__` factory method successfully creates and returns an instance of a concrete subclass of the abstract :class:`beartype.door.TypeHint` superclass conditionally handling the kind of low-level type hint passed to that factory method. Parameters ---------- iter_hints_piths_meta : Callable[[], Iterable[beartype_test.a00_unit.data.hint.util.data_hintmetautil.HintPithMetadata]] Factory function creating and returning a generator iteratively yielding ``HintPithMetadata`` instances, each describing a sample type hint exercising an edge case in the :mod:`beartype` codebase paired with a related object either satisfying or violating that hint. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.door import TypeHint from beartype_test.a00_unit.data.hint.util.data_hintmetacls import ( HintPepMetadata) # ....................{ ASSERTS }.................... # For each predefined type hint and associated metadata... for hint_pith_meta in iter_hints_piths_meta(): # ....................{ METADATA }.................... # Metadata describing this type hint. hint_meta = hint_pith_meta.hint_meta # This type hint. hint = hint_meta.hint # If either... if ( # This hint is PEP-noncompliant *OR*... not isinstance(hint_meta, HintPepMetadata) or # This kind of type hint is currently unsupported by the # "beartype.door" submodule... hint_meta.typehint_cls is None ): # Silently ignore this hint and continue to the next. continue # Else, this kind of type hint is currently supported by the # "beartype.door" submodule *AND* this hint is PEP-compliant. # Instance of a concrete subclass of the abstract "TypeHint" superclass # conditionally handling this kind of type hint. wrapper = TypeHint(hint) # Assert that this instance is of the expected subclass. > assert isinstance(wrapper, hint_meta.typehint_cls) E AssertionError: assert False E + where False = isinstance(ClassTypeHint(int | typing.Sequence[str]), ) E + where = HintPepMetadata(\n hint=int | typing.Sequence[str],\n conf=BeartypeConf(),\n pep_sign=HintSign('Union'),\n typehint_cls=,\n generic_type=None,\n isinstanceable_type=None,\n is_args=True,\n is_ignorable=False,\n is_needs_cls_stack=False,\n is_pep585_builtin_subscripted=False,\n is_pep585_generic=False,\n is_supported=True,\n is_typevars=False,\n is_type_typing=True,\n is_typing=True,\n piths_meta=(HintPithSatisfiedMetadata(\n pith=21,\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithSatisfiedMetadata(\n pith=('To claim all ͼarth a number, penumbraedBy blessed Pendragon’s flagon‐bedraggling constancies',),\n is_context_manager=False,\n is_pith_factory=False,\n), HintPithUnsatisfiedMetadata(\n pith=802.11,\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\bSequence\\b', '\\bint\\b', '\\btype hint\\b'),\n exception_str_not_match_regexes=('\\n', '\\*'),\n), HintPithUnsatisfiedMetadata(\n pith=(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89),\n is_context_manager=False,\n is_pith_factory=False,\n exception_str_match_regexes=('\\n\\*\\s.*\\bint\\b', '\\n\\*\\s.*\\b[Tt]uple index \\d+ item\\b', '\\btype hint\\b'),\n exception_str_not_match_regexes=(),\n)),\n).typehint_cls HintPepMetadata = TypeHint = hint = int | typing.Sequence[str] hint_meta = HintPepMetadata( hint=int | typing.Sequence[str], conf=BeartypeConf(), pep_sign=HintSign('Union'), typ...int\\b', '\\n\\*\\s.*\\b[Tt]uple index \\d+ item\\b', '\\btype hint\\b'), exception_str_not_match_regexes=(), )), ) hint_pith_meta = iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> wrapper = ClassTypeHint(int | typing.Sequence[str]) wrapper_hint = beartype_test.a00_unit.data.hint.pep.proposal.data_pep484.NewTypeBytes beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py:122: AssertionError __________________________ test_door_typehint_equals ___________________________ door_cases_equality = ((, typing.Tuple, True), (, , True), (, typing.List, True), (...g.List[typing.Any], True), (, typing.Tuple[typing.Any, ...], True), (int | str, str | list, False), ...) def test_door_typehint_equals( door_cases_equality: 'Iterable[Tuple[object, object, bool]]') -> None: ''' Test the :meth:`beartype.door.TypeHint.__equals__` dunder method. Parameters ---------- door_cases_equality : Iterable[Tuple[object, object, bool]] Iterable of one or more 3-tuples ``(hint_a, hint_b, is_equal)``, declared by the :func:`hint_subhint_cases` fixture. ''' # Defer test-specific imports. from beartype.door import TypeHint # Intentionally import from "typing" rather than "beartype.typing" to # guarantee PEP 484-compliant type hints. from typing import ( Generator, Union, ) # Arbitrary hint guaranteed to be unequal to every other hint listed in the # "hint_equality_cases" iterable. typehint_unequal = TypeHint(Generator[Union[list, str], str, None]) # Arbitrary non-hint object. Note that strings are valid type hints! nonhint = b'Of insects, beasts, and birds, becomes its spoil;' # For each equality relation to be tested... for hint_a, hint_b, IS_EQUAL in door_cases_equality: # "TypeHint" instances encapsulating these hints. typehint_a = TypeHint(hint_a) typehint_b = TypeHint(hint_b) # Assert this tester returns the expected boolean for these hints. is_equal = (typehint_a == typehint_b) > assert is_equal is IS_EQUAL E assert True is False Generator = typing.Generator IS_EQUAL = False TypeHint = Union = door_cases_equality = ((, typing.Tuple, True), (, , True), (, typing.List, True), (...g.List[typing.Any], True), (, typing.Tuple[typing.Any, ...], True), (int | str, str | list, False), ...) hint_a = int | str hint_b = str | list is_equal = True nonhint = b'Of insects, beasts, and birds, becomes its spoil;' typehint_a = ClassTypeHint(int | str) typehint_b = ClassTypeHint(str | list) typehint_unequal = TypeHint(typing.Generator[list | str, str, NoneType]) beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py:184: AssertionError _______________________ test_door_typehint_is_ignorable ________________________ hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) hints_ignorable = frozenset({, typing.Annotated[object, ], typing.Annotated[typing.Any | ...est.a00_unit.data.hint.pep.proposal.data_pep484.TotallyNotObject, typing.Annotated[object, ] | None, ...}) def test_door_typehint_is_ignorable(hints_pep_meta, hints_ignorable) -> None: ''' Test the :meth:`beartype.door.TypeHint.is_ignorable` property. Parameters ---------- hints_pep_meta : tuple[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintPepMetadata] Tuple of type hint metadata describing sample type hints exercising edge cases in the :mod:`beartype` codebase. hints_ignorable : frozenset Frozen set of ignorable PEP-agnostic type hints. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.door import TypeHint from beartype.roar import BeartypeDoorException, BeartypeDoorNonpepException from beartype.typing import TypeVar from beartype._util.hint.utilhinttest import is_hint_ignorable from beartype._util.hint.pep.proposal.pep484.utilpep484typevar import ( get_hint_pep484_typevar_bound_or_none) from contextlib import suppress # ....................{ PASS }.................... # Assert this property accepts ignorable type hints. for hint_ignorable in hints_ignorable: #FIXME: Remove this suppression *AFTER* improving "TypeHint" to support #all currently unsupported type hints. with suppress(BeartypeDoorNonpepException): > assert TypeHint(hint_ignorable).is_ignorable is True E AssertionError: assert False is True E + where False = AnnotatedTypeHint(typing.Annotated[typing.Any | float | str, ]).is_ignorable E + where AnnotatedTypeHint(typing.Annotated[typing.Any | float | str, ]) = (typing.Annotated[typing.Any | float | str, ]) BeartypeDoorException = BeartypeDoorNonpepException = TypeHint = TypeVar = get_hint_pep484_typevar_bound_or_none = hint_ignorable = typing.Annotated[typing.Any | float | str, ] hints_ignorable = frozenset({, typing.Annotated[object, ], typing.Annotated[typing.Any | ...est.a00_unit.data.hint.pep.proposal.data_pep484.TotallyNotObject, typing.Annotated[object, ] | None, ...}) hints_pep_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_hint_ignorable = suppress = beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py:402: AssertionError _______________________________ test_reduce_hint _______________________________ def test_reduce_hint() -> None: ''' Test the private :func:`beartype._check.convert.convreduce.reduce_hint` reducer. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype.roar import ( BeartypeDecorHintNonpepNumpyException, BeartypeDecorHintNonpepNumpyWarning, ) from beartype.vale import IsEqual from beartype._cave._cavefast import NoneType from beartype._check.convert.convreduce import reduce_hint from beartype._conf.confcls import ( BEARTYPE_CONF_DEFAULT, BeartypeConf, ) from beartype._data.hint.datahinttyping import ( Pep484TowerComplex, Pep484TowerFloat, ) from beartype._data.hint.pep.sign.datapepsigns import HintSignAnnotated from beartype._util.hint.pep.proposal.utilpep593 import is_hint_pep593 from beartype._util.hint.pep.utilpepget import get_hint_pep_sign from beartype_test.a00_unit.data.hint.pep.proposal.data_pep484 import ( PEP484_GENERICS_IO, T, T_BOUNDED, T_CONSTRAINED, ) from beartype_test._util.module.pytmodtyping import ( import_typing_attr_or_none_safe) from beartype_test._util.module.pytmodtest import ( is_package_numpy, is_package_numpy_typing_ndarray_deep, ) from dataclasses import InitVar from pytest import raises, warns from typing import Protocol # ..................{ LOCALS }.................. # Keyword arguments to be passed to all calls to reduce_hints() below. kwargs = { 'conf': BEARTYPE_CONF_DEFAULT, } # ..................{ CORE }.................. # Assert this reducer preserves an isinstanceable type as is. assert reduce_hint(hint=int, **kwargs) is int # Assert this reducer reduces "None" to "type(None)". assert reduce_hint(hint=None, **kwargs) is NoneType # ..................{ PEP 484 ~ tower }.................. # Assert this reducer expands the builtin "float" and "complex" types to # their corresponding numeric towers when configured to do so. > assert reduce_hint( hint=float, conf=BeartypeConf(is_pep484_tower=True), ) is Pep484TowerFloat BEARTYPE_CONF_DEFAULT = BeartypeConf() BeartypeConf = BeartypeDecorHintNonpepNumpyException = BeartypeDecorHintNonpepNumpyWarning = HintSignAnnotated = HintSign('Annotated') InitVar = IsEqual = NoneType = PEP484_GENERICS_IO = frozenset({, , }) Pep484TowerComplex = complex | float | int Pep484TowerFloat = float | int Protocol = T = ~T T_BOUNDED = ~T_BOUNDED T_CONSTRAINED = ~T_CONSTRAINED get_hint_pep_sign = import_typing_attr_or_none_safe = is_hint_pep593 = is_package_numpy = is_package_numpy_typing_ndarray_deep = kwargs = {'conf': BeartypeConf()} raises = reduce_hint = warns = beartype_test/a00_unit/a60_check/a20_convert/test_convreduce.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, : complex | float | int}), is_pep484_tower=True) exception_prefix = '' hint = hint_prev = pith_name = None beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, : complex | float | int}), is_pep484_tower=True), '') args_flat = (, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, : complex | float | int}), is_pep484_tower=True), '') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...artypeDecorHintNonpepException('Type hint float | int either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, : complex | float | int}), is_pep484_tower=True), '') args_flat = (, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, : complex | float | int}), is_pep484_tower=True), '') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...artypeDecorHintNonpepException('Type hint float | int either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, : complex | float | int}), is_pep484_tower=True) exception_prefix = '' hint = float | int hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, : complex | float | int}), is_pep484_tower=True) exception_prefix = '' hint = float | int kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '' hint = float | int _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = float | int, is_str_valid = True exception_cls = exception_prefix = '' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Type hint float | int either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '' hint = float | int is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ________________________ test_door_is_bearable_warnings ________________________ hints_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) def test_door_is_bearable_warnings(hints_meta) -> None: ''' Test the :class:`beartype.door.is_bearable` tester function with respect to non-fatal warnings emitted by that tester when passed various problematic (e.g., deprecated) type hints. Note that this test *cannot* be folded into the comparable :func:`.test_door_is_bearable` test. Why? Because that test (and almost all other tests testing type hints) iterates over type hints by calling the session-scoped ``iter_hints_piths_meta()`` closure iterator. For unknown reasons, :mod:`pytest` fails to capture deprecation warnings emitted from that iterator. This is almost certainly a :mod:`pytest` issue. However, reporting this issue would require reducing this issue to a minimal reproducible working example -- which appears to be infeasible. In short, this test manually iterates over type hints as an acceptable (albeit annoying) alternative that allows deprecation warnings to be captured. Parameters ---------- hints_meta : List[beartype_test.a00_unit.data.hint.util.data_hintmetacls.HintNonpepMetadata] List of PEP-agnostic type hint metadata describing sample PEP-agnostic type hints exercising edge cases in the :mod:`beartype` codebase. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype.door import is_bearable from pytest import warns from warnings import simplefilter # ....................{ SETUP }.................... # Force pytest to temporarily allow deprecation warnings to be caught by the # warns() context manager for the duration of this test. By default, pytest # simply "passes through" all deprecation warnings for subsequent reporting # if tests otherwise successfully pass. Deprecation warnings include: # * "DeprecationWarning". # * "FutureWarning". # * "PendingDeprecationWarning". simplefilter('always') # ..................{ PASS }.................. # For each predefined type hint and associated metadata... for hint_meta in hints_meta: # If it is *NOT* the case that... if not ( # This hint is currently supported *AND*... hint_meta.is_supported and # This is type-checkable against at least one object. hint_meta.piths_meta # Then this hint is ignorable. Silently continue to the next. ): continue # Else, this hint is currently supported. # Type hint to be type-checked. hint = hint_meta.hint # Beartype dataclass configuring this type-check. conf = hint_meta.conf # Object to be type-checked against this hint, arbitrarily selected from # the iterable of all such objects supplied with this hint. By the above # validation, this is guaranteed to be non-empty. pith = hint_meta.piths_meta[0] # If this tester is expected to emit a warning for this hint... if hint_meta.warning_type is not None: # Call this tester under a context manager asserting this tester to # emit the expected warning. with warns(hint_meta.warning_type): is_bearable(pith, hint, conf=conf) # print(f'Deprecated type hint {repr(hint)} warned!') # Else, this tester is expected to emit *NO* warning for this hint. In # this case, call this tester outside of such a context manager. else: > is_bearable(pith, hint, conf=conf) conf = BeartypeConf() hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_bearable = pith = HintPithSatisfiedMetadata( pith=, is_context_manager=False, is_pith_factory=False, ) simplefilter = warns = beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py:123: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/door/_doorcheck.py:300: in is_bearable func_tester = make_func_tester(hint, conf) conf = BeartypeConf() hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') obj = HintPithSatisfiedMetadata( pith=, is_context_manager=False, is_pith_factory=False, ) beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):... ('beartype_test.a00_unit.data.data_type.Subclass', BeartypeConf()): } args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):... ('beartype_test.a00_unit.data.data_type.Subclass', BeartypeConf()): } args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:180: in make_func_tester return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException("Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.") exception_message = "Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype." source_str = '$%ROOT_PITH_LABEL/~' target_str = 'is_bearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_prev = pith_name = None beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException _________________________ test_door_die_if_unbearable __________________________ iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> @ignore_warnings(DeprecationWarning) def test_door_die_if_unbearable(iter_hints_piths_meta) -> None: ''' Test the :class:`beartype.door.die_if_unbearable` raiser function. Parameters ---------- iter_hints_piths_meta : Callable[[], Iterable[beartype_test.a00_unit.data.hint.util.data_hintmetautil.HintPithMetadata]] Factory function creating and returning a generator iteratively yielding ``HintPithMetadata`` instances, each describing a sample type hint exercising an edge case in the :mod:`beartype` codebase paired with a related object either satisfying or violating that hint. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.door import die_if_unbearable from beartype.roar import ( BeartypeConfException, BeartypeDecorHintNonpepException, BeartypeDoorHintViolation, ) from beartype._util.text.utiltextrepr import represent_object from beartype_test.a00_unit.data.hint.util.data_hintmetacls import ( HintPithUnsatisfiedMetadata) from pytest import raises # ....................{ PASS }.................... # For each predefined type hint and associated metadata... for hint_pith_meta in iter_hints_piths_meta(): # Type hint to be type-checked. hint = hint_pith_meta.hint_meta.hint # Beartype dataclass configuring this type-check. conf = hint_pith_meta.hint_meta.conf # Object to type-check against this type hint. pith = hint_pith_meta.pith # If this pith violates this hint... if isinstance(hint_pith_meta.pith_meta, HintPithUnsatisfiedMetadata): # Assert this raiser raises the expected exception when passed this # pith and hint. with raises(BeartypeDoorHintViolation) as exception_info: die_if_unbearable(pith, hint, conf=conf) # Exception message raised by this wrapper function. exception_message = str(exception_info.value) # Truncated representation of this pith. pith_repr = represent_object(pith) # Assert that this message contains a truncated representation of # this pith. assert pith_repr in exception_message # Assert that this raiser successfully replaced the temporary # placeholder previously prefixing this message. assert 'die_if_unbearable() value ' in exception_message.lower() assert ' violates type hint ' in exception_message # Else, this raiser satisfies this hint. In this case... else: # Assert this validator raises *NO* exception when passed this pith # and hint. > die_if_unbearable(pith, hint, conf=conf) BeartypeConfException = BeartypeDecorHintNonpepException = BeartypeDoorHintViolation = HintPithUnsatisfiedMetadata = conf = BeartypeConf() die_if_unbearable = exception_info = .') tblen=3> exception_message = 'Die_if_unbearable() value \'Empirical Ṗath after‐mathematically harvesting agro‐\' violates type hint \'beartype_test...Ṗath after‐mathematically harvesting agro‐\' not instance of .' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_pith_meta = iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> pith = pith_repr = "'Empirical Ṗath after‐mathematically harvesting agro‐'" raises = represent_object = beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py:193: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/door/_doorcheck.py:102: in die_if_unbearable func_raiser = make_func_raiser(hint, conf, exception_prefix) conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') obj = beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() ') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() ') args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() '): BeartypeDecor...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf(), 'die_if_unbearable() '): , (typing...t.data.data_type.Subclass', BeartypeConf(), 'die_if_unbearable() '): } args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() ') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() ') args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() '): BeartypeDecor...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf(), 'die_if_unbearable() '): , (typing...t.data.data_type.Subclass', BeartypeConf(), 'die_if_unbearable() '): } args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:128: in make_func_raiser return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException("Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.") exception_message = "Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype." source_str = '$%ROOT_PITH_LABEL/~' target_str = 'die_if_unbearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_prev = pith_name = None beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException("Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.") func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.0011295140000129322 excinfo = func = . at 0x7f3cccf68d50> precise_start = 1504.562183201 precise_stop = 1504.563312715 reraise = (, ) result = None start = 1747420676.9267895 stop = 1747420676.92792 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3cccf72ed0> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3cccfb6cf0> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {'hints_meta': (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typeh...ctory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...)} pyfuncitem = testargs = {'hints_meta': (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typeh...ctory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...)} testfunction = beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py:123: in test_door_is_bearable_warnings is_bearable(pith, hint, conf=conf) conf = BeartypeConf() hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_bearable = pith = HintPithSatisfiedMetadata( pith=, is_context_manager=False, is_pith_factory=False, ) simplefilter = warns = beartype/door/_doorcheck.py:300: in is_bearable func_tester = make_func_tester(hint, conf) conf = BeartypeConf() hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') obj = HintPithSatisfiedMetadata( pith=, is_context_manager=False, is_pith_factory=False, ) beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):... ('beartype_test.a00_unit.data.data_type.Subclass', BeartypeConf()): } args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):... ('beartype_test.a00_unit.data.data_type.Subclass', BeartypeConf()): } args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:180: in make_func_tester return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException("Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.") exception_message = "Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype." source_str = '$%ROOT_PITH_LABEL/~' target_str = 'is_bearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_prev = pith_name = None beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Ref('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.")} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException _____________________ test_door_typehint_die_if_unbearable _____________________ args = (~AnyStr, BeartypeConf(), 'die_if_unbearable() ') args_flat = (~AnyStr, BeartypeConf(), 'die_if_unbearable() ') return_value = @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: raise exception # pyright: ignore[reportGeneralTypeIssues] # Else, this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception. # Value returned by a prior call to the decorated callable when # passed these parameters *OR* a sentinel placeholder otherwise # (i.e., if this callable has yet to be passed these parameters). return_value = args_flat_to_return_value_get( args_flat, SENTINEL) # If this callable has already been called with these parameters, # return the value returned by that prior call. if return_value is not SENTINEL: return return_value # Else, this callable has yet to be called with these parameters. # Attempt to... try: # Call this parameter with these parameters and cache the value # returned by this call to these parameters. return_value = args_flat_to_return_value[args_flat] = func( *args) # If this call raised an exception... except Exception as exception: # Cache this exception to these parameters. args_flat_to_exception[args_flat] = exception # Re-raise this exception. > raise exception args = (~AnyStr, BeartypeConf(), 'die_if_unbearable() ') args_flat = (~AnyStr, BeartypeConf(), 'die_if_unbearable() ') args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() '): BeartypeDecor...'die_if_unbearable() '): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf(), 'die_if_unbearable() '): , (typing..., (, BeartypeConf(), 'die_if_unbearable() '): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (~AnyStr, BeartypeConf(), 'die_if_unbearable() ') args_flat = (~AnyStr, BeartypeConf(), 'die_if_unbearable() ') args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() '): BeartypeDecor...'die_if_unbearable() '): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf(), 'die_if_unbearable() '): , (typing..., (, BeartypeConf(), 'die_if_unbearable() '): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:128: in make_func_raiser return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ~AnyStr beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ~AnyStr make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") exception_message = "descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'" source_str = '$%ROOT_PITH_LABEL/~' target_str = 'die_if_unbearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ~AnyStr make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr hint_prev = pith_name = None beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :... '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr hint_reducer = hint_sign = HintSign('TypeVar') beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:158: in reduce_hint_pep484_typevar hint_bound = get_hint_pep484_typevar_bound_or_none(hint, exception_prefix) args = () exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr kwargs = {'conf': BeartypeConf()} beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:111: in get_hint_pep484_typevar_bound_or_none return make_hint_pep484_union(hint.__constraints__) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr make_hint_pep484_union = beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: > raise exception # pyright: ignore[reportGeneralTypeIssues] args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :... '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :... '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :... '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr hint_reducer = hint_sign = HintSign('TypeVar') beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:158: in reduce_hint_pep484_typevar hint_bound = get_hint_pep484_typevar_bound_or_none(hint, exception_prefix) args = () exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr kwargs = {'conf': BeartypeConf()} beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = func = return_value = beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:111: in get_hint_pep484_typevar_bound_or_none return make_hint_pep484_union(hint.__constraints__) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr make_hint_pep484_union = beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: > raise exception # pyright: ignore[reportGeneralTypeIssues] args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = func = return_value = beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:111: in get_hint_pep484_typevar_bound_or_none return make_hint_pep484_union(hint.__constraints__) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr make_hint_pep484_union = beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: args = ((, ),) args_flat = (, ) exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: > raise exception # pyright: ignore[reportGeneralTypeIssues] args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> @ignore_warnings(DeprecationWarning) def test_door_typehint_die_if_unbearable(iter_hints_piths_meta) -> None: ''' Test the :meth:`beartype.door.TypeHint.die_if_unbearable` raiser method. This test intentionally tests only the core functionality of this tester to avoid violating Don't Repeat Yourself (DRY). This tester internally defers to the procedural :class:`beartype.door.die_if_unbearable` tester, already exhaustively tested by preceding unit tests. Parameters ---------- iter_hints_piths_meta : Callable[[], Iterable[beartype_test.a00_unit.data.hint.util.data_hintmetautil.HintPithMetadata]] Factory function creating and returning a generator iteratively yielding ``HintPithMetadata`` instances, each describing a sample type hint exercising an edge case in the :mod:`beartype` codebase paired with a related object either satisfying or violating that hint. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.door import TypeHint from beartype.roar import ( BeartypeDoorHintViolation, BeartypeDoorNonpepException, ) from beartype_test.a00_unit.data.hint.util.data_hintmetacls import ( HintPithUnsatisfiedMetadata) from contextlib import suppress from pytest import raises # ....................{ PASS }.................... # For each predefined unignorable type hint and associated metadata... for hint_pith_meta in iter_hints_piths_meta(): # Type hint to be type-checked. hint = hint_pith_meta.hint_meta.hint # Beartype dataclass configuring this type-check. conf = hint_pith_meta.hint_meta.conf # Object to type-check against this type hint. pith = hint_pith_meta.pith #FIXME: Remove this suppression *AFTER* improving "TypeHint" to support #all currently unsupported type hints. with suppress(BeartypeDoorNonpepException): # Wrapper wrapping this type hint. typehint = TypeHint(hint) # If this pith violates this hint, assert this raiser raises the # expected exception when passed this pith and hint. if isinstance( hint_pith_meta.pith_meta, HintPithUnsatisfiedMetadata): with raises(BeartypeDoorHintViolation): typehint.die_if_unbearable(pith, conf=conf) # Else, this pith satisfies this hint. In this case, assert this # raiser raises *NO* exception when passed this pith and hint. else: > typehint.die_if_unbearable(pith, conf=conf) BeartypeDoorHintViolation = BeartypeDoorNonpepException = HintPithUnsatisfiedMetadata = TypeHint = conf = BeartypeConf() hint = ~AnyStr hint_pith_meta = iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> pith = 'We were mysteries, unwon' raises = suppress = typehint = TypeVarTypeHint(~AnyStr) beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/door/_cls/doorsuper.py:557: in die_if_unbearable die_if_unbearable( conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' obj = 'We were mysteries, unwon' self = TypeVarTypeHint(~AnyStr) beartype/door/_doorcheck.py:102: in die_if_unbearable func_raiser = make_func_raiser(hint, conf, exception_prefix) conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ~AnyStr obj = 'We were mysteries, unwon' beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, BeartypeConf(), 'die_if_unbearable() ') args_flat = (~AnyStr, BeartypeConf(), 'die_if_unbearable() ') args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() '): BeartypeDecor...'die_if_unbearable() '): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf(), 'die_if_unbearable() '): , (typing..., (, BeartypeConf(), 'die_if_unbearable() '): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:128: in make_func_raiser return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ~AnyStr beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ~AnyStr make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") exception_message = "descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'" source_str = '$%ROOT_PITH_LABEL/~' target_str = 'die_if_unbearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ~AnyStr make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr hint_prev = pith_name = None beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :... '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr hint_reducer = hint_sign = HintSign('TypeVar') beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:158: in reduce_hint_pep484_typevar hint_bound = get_hint_pep484_typevar_bound_or_none(hint, exception_prefix) args = () exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr kwargs = {'conf': BeartypeConf()} beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:111: in get_hint_pep484_typevar_bound_or_none return make_hint_pep484_union(hint.__constraints__) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr make_hint_pep484_union = beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError ____________________________ test_door_is_bearable _____________________________ iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> hints_ignorable = frozenset({, typing.Annotated[object, ], typing.Annotated[typing.Any | ...est.a00_unit.data.hint.pep.proposal.data_pep484.TotallyNotObject, typing.Annotated[object, ] | None, ...}) @ignore_warnings(DeprecationWarning) def test_door_is_bearable(iter_hints_piths_meta, hints_ignorable) -> None: ''' Test the :class:`beartype.door.is_bearable` tester function. Parameters ---------- iter_hints_piths_meta : Callable[[], Iterable[beartype_test.a00_unit.data.hint.util.data_hintmetautil.HintPithMetadata]] Factory function creating and returning a generator iteratively yielding ``HintPithMetadata`` instances, each describing a sample type hint exercising an edge case in the :mod:`beartype` codebase paired with a related object either satisfying or violating that hint. hints_ignorable : frozenset Frozen set of ignorable PEP-agnostic type hints. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype.door import is_bearable from beartype.roar import ( BeartypeConfException, BeartypeDecorHintForwardRefException, BeartypeDecorHintNonpepException, ) from beartype_test.a00_unit.data.hint.util.data_hintmetacls import ( HintPithUnsatisfiedMetadata) from pytest import raises # from pytest import raises, warns from warnings import simplefilter # ....................{ SETUP }.................... # # Force pytest to temporarily allow deprecation warnings to be caught by the # # warns() context manager for the duration of this test. By default, pytest # # simply "passes through" all deprecation warnings for subsequent reporting # # if tests otherwise successfully pass. Deprecation warnings include: # # * "DeprecationWarning". # # * "FutureWarning". # # * "PendingDeprecationWarning". # simplefilter('always') # ..................{ PASS ~ ignorable }.................. # Arbitrary object to be tested below. pith = 'The breath and blood of distant lands, for ever' # For each predefined ignorable type hint... for hint_ignorable in hints_ignorable: # Assert this tester returns true when passed this object and this hint. > assert is_bearable(pith, hint_ignorable) is True BeartypeConfException = BeartypeDecorHintForwardRefException = BeartypeDecorHintNonpepException = HintPithUnsatisfiedMetadata = hint_ignorable = typing.Annotated[typing.Any | float | str, ] hints_ignorable = frozenset({, typing.Annotated[object, ], typing.Annotated[typing.Any | ...est.a00_unit.data.hint.pep.proposal.data_pep484.TotallyNotObject, typing.Annotated[object, ] | None, ...}) is_bearable = iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> pith = 'The breath and blood of distant lands, for ever' raises = simplefilter = beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py:324: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/door/_doorcheck.py:300: in is_bearable func_tester = make_func_tester(hint, conf) conf = BeartypeConf() hint = typing.Annotated[typing.Any | float | str, ] obj = 'The breath and blood of distant lands, for ever' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (typing.Annotated[typing.Any | float | str, ], BeartypeConf()) args_flat = (typing.Annotated[typing.Any | float | str, ], BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):...90c0>, (, BeartypeConf()): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (typing.Annotated[typing.Any | float | str, ], BeartypeConf()) args_flat = (typing.Annotated[typing.Any | float | str, ], BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):...90c0>, (, BeartypeConf()): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:180: in make_func_tester return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = typing.Annotated[typing.Any | float | str, ] beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = typing.Annotated[typing.Any | float | str, ] make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'is_bearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = typing.Annotated[typing.Any | float | str, ] make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Annotated[typing.Any | float | str, ] beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str hint_prev = typing.Any | float | str pith_name = None beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (typing.Any | float | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (typing.Any | float | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (typing.Any | float | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (typing.Any | float | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = typing.Any | float | str, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ________________________ test_door_typehint_is_bearable ________________________ args = (~AnyStr, BeartypeConf()), args_flat = (~AnyStr, BeartypeConf()) return_value = @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: raise exception # pyright: ignore[reportGeneralTypeIssues] # Else, this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception. # Value returned by a prior call to the decorated callable when # passed these parameters *OR* a sentinel placeholder otherwise # (i.e., if this callable has yet to be passed these parameters). return_value = args_flat_to_return_value_get( args_flat, SENTINEL) # If this callable has already been called with these parameters, # return the value returned by that prior call. if return_value is not SENTINEL: return return_value # Else, this callable has yet to be called with these parameters. # Attempt to... try: # Call this parameter with these parameters and cache the value # returned by this call to these parameters. return_value = args_flat_to_return_value[args_flat] = func( *args) # If this call raised an exception... except Exception as exception: # Cache this exception to these parameters. args_flat_to_exception[args_flat] = exception # Re-raise this exception. > raise exception args = (~AnyStr, BeartypeConf()) args_flat = (~AnyStr, BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...AnyStr, BeartypeConf()): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):...90c0>, (, BeartypeConf()): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (~AnyStr, BeartypeConf()) args_flat = (~AnyStr, BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...AnyStr, BeartypeConf()): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):...90c0>, (, BeartypeConf()): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:180: in make_func_tester return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ~AnyStr beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ~AnyStr make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") exception_message = "descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'" source_str = '$%ROOT_PITH_LABEL/~' target_str = 'is_bearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ~AnyStr make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr hint_prev = pith_name = None beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr hint_reducer = hint_sign = HintSign('TypeVar') beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:158: in reduce_hint_pep484_typevar hint_bound = get_hint_pep484_typevar_bound_or_none(hint, exception_prefix) args = () exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr kwargs = {'conf': BeartypeConf()} beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:111: in get_hint_pep484_typevar_bound_or_none return make_hint_pep484_union(hint.__constraints__) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr make_hint_pep484_union = beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: > raise exception # pyright: ignore[reportGeneralTypeIssues] args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr hint_reducer = hint_sign = HintSign('TypeVar') beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:158: in reduce_hint_pep484_typevar hint_bound = get_hint_pep484_typevar_bound_or_none(hint, exception_prefix) args = () exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr kwargs = {'conf': BeartypeConf()} beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = func = return_value = beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:111: in get_hint_pep484_typevar_bound_or_none return make_hint_pep484_union(hint.__constraints__) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr make_hint_pep484_union = beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: > raise exception # pyright: ignore[reportGeneralTypeIssues] args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = func = return_value = beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:111: in get_hint_pep484_typevar_bound_or_none return make_hint_pep484_union(hint.__constraints__) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr make_hint_pep484_union = beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: args = ((, ),) args_flat = (, ) exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: > raise exception # pyright: ignore[reportGeneralTypeIssues] args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> @ignore_warnings(DeprecationWarning) def test_door_typehint_is_bearable(iter_hints_piths_meta) -> None: ''' Test the :meth:`beartype.door.TypeHint.is_bearable` tester method. This test intentionally tests only the core functionality of this tester to avoid violating Don't Repeat Yourself (DRY). This tester internally defers to the procedural :class:`beartype.door.is_bearable` tester, already exhaustively tested by preceding unit tests. Parameters ---------- iter_hints_piths_meta : Callable[[], Iterable[beartype_test.a00_unit.data.hint.util.data_hintmetautil.HintPithMetadata]] Factory function creating and returning a generator iteratively yielding ``HintPithMetadata`` instances, each describing a sample type hint exercising an edge case in the :mod:`beartype` codebase paired with a related object either satisfying or violating that hint. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.door import TypeHint from beartype.roar import BeartypeDoorNonpepException from beartype_test.a00_unit.data.hint.util.data_hintmetacls import ( HintPithUnsatisfiedMetadata) from contextlib import suppress # ....................{ PASS }.................... # For each predefined unignorable type hint and associated metadata... for hint_pith_meta in iter_hints_piths_meta(): # Type hint to be type-checked. hint = hint_pith_meta.hint_meta.hint # Beartype dataclass configuring this type-check. conf = hint_pith_meta.hint_meta.conf # Object to type-check against this type hint. pith = hint_pith_meta.pith # True only if this pith satisfies this hint. is_bearable_expected = not isinstance( hint_pith_meta.pith_meta, HintPithUnsatisfiedMetadata) #FIXME: Remove this suppression *AFTER* improving "TypeHint" to support #all currently unsupported type hints. with suppress(BeartypeDoorNonpepException): # Assert this tester returns the expected boolean when passed this # pith and hint. > assert TypeHint(hint).is_bearable(pith, conf=conf) is ( is_bearable_expected) BeartypeDoorNonpepException = HintPithUnsatisfiedMetadata = TypeHint = conf = BeartypeConf() hint = ~AnyStr hint_pith_meta = is_bearable_expected = True iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> pith = 'We were mysteries, unwon' suppress = beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py:453: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/door/_cls/doorsuper.py:613: in is_bearable return is_bearable(obj=obj, hint=self._hint, conf=conf) conf = BeartypeConf() obj = 'We were mysteries, unwon' self = TypeVarTypeHint(~AnyStr) beartype/door/_doorcheck.py:300: in is_bearable func_tester = make_func_tester(hint, conf) conf = BeartypeConf() hint = ~AnyStr obj = 'We were mysteries, unwon' beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, BeartypeConf()) args_flat = (~AnyStr, BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...AnyStr, BeartypeConf()): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):...90c0>, (, BeartypeConf()): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:180: in make_func_tester return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ~AnyStr beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ~AnyStr make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") exception_message = "descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'" source_str = '$%ROOT_PITH_LABEL/~' target_str = 'is_bearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ~AnyStr make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr hint_prev = pith_name = None beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...ion('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.')} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr hint_reducer = hint_sign = HintSign('TypeVar') beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:158: in reduce_hint_pep484_typevar hint_bound = get_hint_pep484_typevar_bound_or_none(hint, exception_prefix) args = () exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr kwargs = {'conf': BeartypeConf()} beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat = (~AnyStr, '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {~T_CONSTRAINED: TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), (~AnyStr, '$%ROOT_PITH_LABEL/~'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {~T: None, ~T_BOUNDED: , (+_T_co, '$%ROOT_PITH_LABEL/~'): None, (~T, '$%ROOT_PITH_LABEL/~'): None} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = beartype/_util/hint/pep/proposal/pep484/utilpep484typevar.py:111: in get_hint_pep484_typevar_bound_or_none return make_hint_pep484_union(hint.__constraints__) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ~AnyStr make_hint_pep484_union = beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...bytes'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") func = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError _________________________ test_get_func_pith_violation _________________________ def test_get_func_pith_violation() -> None: ''' Test the :func:`beartype._check.error.errorget.get_func_pith_violation` getter. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype import BeartypeConf from beartype.roar import ( BeartypeCallHintParamViolation, BeartypeCallHintReturnViolation, BeartypeDecorHintNonpepException, ) from beartype.roar._roarexc import _BeartypeCallHintPepRaiseException from beartype.typing import ( List, Tuple, Union, ) from beartype._data.func.datafuncarg import ARG_NAME_RETURN from beartype._check.error.errorget import get_func_pith_violation from pytest import raises # ..................{ LOCALS }.................. def forest_unknown( secret_orchard: List[str], achromatic_voice, to_bid_you_farewell: str, amaranth_symbol: 42, ) -> Union[int, Tuple[str, ...]]: ''' Arbitrary callable exercised below. ''' return achromatic_voice # Keyword arguments to be unconditionally passed to all getter calls below. kwargs = dict( func=forest_unknown, conf=BeartypeConf(), ) # ..................{ PASS }.................. # Assert this function returns the expected exception when passed a # parameter annotated by a PEP-compliant type hint failing to shallowly # satisfy the type of that type hint. violation = get_func_pith_violation( pith_name='secret_orchard', pith_value=( 'You are in a forest unknown:', 'The secret orchard.', ), **kwargs ) assert isinstance(violation, BeartypeCallHintParamViolation) # Assert this function returns the expected exception when passed a # parameter annotated by a PEP-compliant type hint failing to deeply satisfy # the type of that type hint. violation = get_func_pith_violation( pith_name='secret_orchard', pith_value=[ b'I am awaiting the sunrise', b'Gazing modestly through the coldest morning', ], **kwargs ) assert isinstance(violation, BeartypeCallHintParamViolation) # Assert this function returns the expected exception when passed another # parameter annotated by a PEP-noncompliant type hint failing to shallowly # satisfy the type of that type hint. violation = get_func_pith_violation( pith_name='to_bid_you_farewell', pith_value=( b'Once it came you lied,' b"Embracing us over autumn's proud treetops." ), **kwargs ) assert isinstance(violation, BeartypeCallHintParamViolation) # Assert this function returns the expected exception when returning a # return value annotated by a PEP-compliant type hint failing to satisfy # that type hint. > violation = get_func_pith_violation( pith_name=ARG_NAME_RETURN, pith_value=[ 'Sunbirds leave their dark recesses.', 'Shadows glide the archways.', ], **kwargs ) ARG_NAME_RETURN = 'return' BeartypeCallHintParamViolation = BeartypeCallHintReturnViolation = BeartypeConf = BeartypeDecorHintNonpepException = List = Tuple = Union = _BeartypeCallHintPepRaiseException = forest_unknown = .forest_unknown at 0x7f3cccf6bed0> get_func_pith_violation = kwargs = {'conf': BeartypeConf(), 'func': .forest_unknown at 0x7f3cccf6bed0>} raises = violation = BeartypeCallHintParamViolation('Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_fu...t , as bytes b"Once it came you lied,Embracing us over autumn\'s proud treetops." not instance of str.') beartype_test/a00_unit/a70_decor/a20_error/a90_main/test_errorget.py:106: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_check/error/errorget.py:224: in get_func_pith_violation return get_hint_object_violation( conf = BeartypeConf() func = .forest_unknown at 0x7f3cccf6bed0> hint = int | tuple[str, ...] kwargs = {} pith_name = 'return' pith_value = ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] beartype/_check/error/errorget.py:449: in get_hint_object_violation violation_cause = ViolationCause( cls_stack = None conf = BeartypeConf() exception_cls = exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] " func = .forest_unknown at 0x7f3cccf6bed0> hint = int | tuple[str, ...] obj = ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] pith_name = 'return' random_int = None beartype/_check/error/_errorcause.py:254: in __init__ self.hint = sanify_hint_child_if_unignorable_or_none( cause_indent = '' cause_str_or_none = None cls_stack = None conf = BeartypeConf() exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] " func = .forest_unknown at 0x7f3cccf6bed0> hint = int | tuple[str, ...] pith = ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] pith_name = 'return' random_int = None self = beartype/_check/convert/convsanify.py:306: in sanify_hint_child_if_unignorable_or_none hint_child = sanify_hint_child(*args, **kwargs) args = () kwargs = {'cls_stack': None, 'conf': BeartypeConf(), 'exception_prefix': "Function beartype_test.a00_unit.a70_decor.a20_error.a...() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] ", 'hint': int | tuple[str, ...], ...} beartype/_check/convert/convsanify.py:371: in sanify_hint_child return reduce_hint( cls_stack = None conf = BeartypeConf() exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] " hint = int | tuple[str, ...] pith_name = 'return' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] " hint = int | tuple[str, ...] hint_prev = pith_name = 'return' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (int | tuple[str, ...], BeartypeConf(), "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.te...t_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] ") args_flat = (int | tuple[str, ...], BeartypeConf(), "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.te...t_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] ") args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (int | tuple[str, ...], BeartypeConf(), "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.te...t_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] ") args_flat = (int | tuple[str, ...], BeartypeConf(), "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.te...t_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] ") args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] " hint = int | tuple[str, ...] hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] " hint = int | tuple[str, ...] kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] " hint = int | tuple[str, ...] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = int | tuple[str, ...], is_str_valid = True exception_cls = exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] " def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] type hint int | tuple[str, ...] either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation.forest_unknown() return ['Sunbirds leave their dark recesses.', 'Shadows glide the archways.'] " hint = int | tuple[str, ...] is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ______________ test_get_func_pith_violation_conf_violation_types _______________ def test_get_func_pith_violation_conf_violation_types() -> None: ''' Test the :func:`beartype._check.error.errorget.get_func_pith_violation` getter with respect to the :attr:`beartype.BeartypeConf.violation_param_type` and :attr:`beartype.BeartypeConf.violation_return_type` options. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype import BeartypeConf from beartype.typing import ( List, Tuple, Union, ) from beartype._data.func.datafuncarg import ARG_NAME_RETURN from beartype._check.error.errorget import get_func_pith_violation # ..................{ CLASSES }.................. class InvolvedAndSwallowed(Exception): ''' Arbitrary exception subclass. ''' pass # ..................{ LOCALS }.................. def now_blackness( veiled_his: List[str], dizzy_eyes) -> Union[int, Tuple[str, ...]]: ''' Arbitrary callable exercised below. ''' return dizzy_eyes # Keyword arguments to be unconditionally passed to *ALL* calls of the # get_func_pith_violation() getter below. kwargs = dict(func=now_blackness) # ..................{ PASS }.................. # Parameter violation configured to be a non-default exception subclass. param_violation = get_func_pith_violation( conf=BeartypeConf(violation_param_type=InvolvedAndSwallowed), pith_name='veiled_his', pith_value=( 'Now blackness veiled his dizzy eyes, and night', 'Involved and swallowed up the vision; sleep,', ), **kwargs ) # Assert that this violation is the expected non-default exception subclass. assert type(param_violation) is InvolvedAndSwallowed # Return violation configured to be a non-default exception subclass. > return_violation = get_func_pith_violation( conf=BeartypeConf(violation_return_type=InvolvedAndSwallowed), pith_name=ARG_NAME_RETURN, pith_value=[ 'Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.', ], **kwargs ) ARG_NAME_RETURN = 'return' BeartypeConf = InvolvedAndSwallowed = .InvolvedAndSwallowed'> List = Tuple = Union = get_func_pith_violation = kwargs = {'func': .now_blackness at 0x7f3ccce98670>} now_blackness = .now_blackness at 0x7f3ccce98670> param_violation = InvolvedAndSwallowed("Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_vi...'Now blackness veiled his dizzy eyes, and night', 'Involved and swallowed up the vision; ...,') not instance of list.") beartype_test/a00_unit/a70_decor/a20_error/a90_main/test_errorget.py:269: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_check/error/errorget.py:224: in get_func_pith_violation return get_hint_object_violation( conf = BeartypeConf(violation_return_type=.InvolvedAndSwallowed'>) func = .now_blackness at 0x7f3ccce98670> hint = int | tuple[str, ...] kwargs = {} pith_name = 'return' pith_value = ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] beartype/_check/error/errorget.py:449: in get_hint_object_violation violation_cause = ViolationCause( cls_stack = None conf = BeartypeConf(violation_return_type=.InvolvedAndSwallowed'>) exception_cls = .InvolvedAndSwallowed'> exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation_conf_violatio....now_blackness() return ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] " func = .now_blackness at 0x7f3ccce98670> hint = int | tuple[str, ...] obj = ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] pith_name = 'return' random_int = None beartype/_check/error/_errorcause.py:254: in __init__ self.hint = sanify_hint_child_if_unignorable_or_none( cause_indent = '' cause_str_or_none = None cls_stack = None conf = BeartypeConf(violation_return_type=.InvolvedAndSwallowed'>) exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation_conf_violatio....now_blackness() return ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] " func = .now_blackness at 0x7f3ccce98670> hint = int | tuple[str, ...] pith = ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] pith_name = 'return' random_int = None self = beartype/_check/convert/convsanify.py:306: in sanify_hint_child_if_unignorable_or_none hint_child = sanify_hint_child(*args, **kwargs) args = () kwargs = {'cls_stack': None, 'conf': BeartypeConf(violation_return_type=.InvolvedAndSwallowed'>) exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation_conf_violatio....now_blackness() return ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] " hint = int | tuple[str, ...] pith_name = 'return' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf(violation_return_type=.InvolvedAndSwallowed'>) exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation_conf_violatio....now_blackness() return ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] " hint = int | tuple[str, ...] hint_prev = pith_name = 'return' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (int | tuple[str, ...], BeartypeConf(violation_return_type=, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (int | tuple[str, ...], BeartypeConf(violation_return_type=, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf(violation_return_type=.InvolvedAndSwallowed'>) exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation_conf_violatio....now_blackness() return ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] " hint = int | tuple[str, ...] hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf(violation_return_type=.InvolvedAndSwallowed'>) exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation_conf_violatio....now_blackness() return ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] " hint = int | tuple[str, ...] kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation_conf_violatio....now_blackness() return ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] " hint = int | tuple[str, ...] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = int | tuple[str, ...], is_str_valid = True exception_cls = exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation_conf_violatio....now_blackness() return ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] " def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation_conf_violation_types.now_blackness() return ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] type hint int | tuple[str, ...] either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = "Function beartype_test.a00_unit.a70_decor.a20_error.a90_main.test_errorget.test_get_func_pith_violation_conf_violatio....now_blackness() return ['Like a dark flood suspended in its course', 'Rolled back its impulse on his vacant brain.'] " hint = int | tuple[str, ...] is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException _____________________ test_decor_contextlib_contextmanager _____________________ @skip_if_python_version_less_than('3.11.0') def test_decor_contextlib_contextmanager() -> None: ''' Test the :func:`beartype.beartype` decorator on :func:`contextlib.contextmanager`-based **context managers** (i.e., generator factory functions decorated by that standard decorator) if the active Python interpreter targets Python >= 3.11 and thus defines the ``co_qualname`` attribute on code objects required to implement this functionality *or* skip this test otherwise. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeCallHintParamViolation from beartype.typing import ( Iterator, Union, ) from contextlib import contextmanager from pytest import raises # ....................{ CONTEXTS }.................... @contextmanager > @beartype BeartypeCallHintParamViolation = Iterator = Union = beartype = contextmanager = raises = beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_contextlib.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .and_motions_of at 0x7f3ccce999b0> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .and_motions_of at 0x7f3ccce999b0> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .and_motions_of at 0x7f3ccce999b0> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .and_motions_of at 0x7f3ccce999b0> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .and_motions_of at 0x7f3ccce999b0> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'the_forests_and_the_sea', ) arg_name = 'the_forests_and_the_sea' bear_call = func_wrapper_code = '' hint = None hint_insane = int | float is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Generator factory function a00_module.test_decor_contextlib.test_decor_contextlib_co...ameter "the_forests_and_the_sea" type hint int | float either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Generator factory function a00_module.test_decor_contextlib.test_decor_contextlib_contextmanager.and_motions_of() parameter "the_forests_and_the_sea" type hint int | float either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'generator factory function a00_module.test_decor_contextlib.test_decor_contextlib_contextmanager.and_motions_of() parameter "the_forests_and_the_sea" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'the_forests_and_the_sea', ) arg_name = 'the_forests_and_the_sea' bear_call = func_wrapper_code = '' hint = None hint_insane = int | float is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | float pith_name = 'the_forests_and_the_sea' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | float hint_prev = pith_name = 'the_forests_and_the_sea' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (int | float, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (int | float, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (int | float, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (int | float, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | float hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | float kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | float _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = int | float, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Generator factory function a00_module.test_decor_contextlib.test_decor_contextlib_contextmanager.and_motions_of() parameter "the_forests_and_the_sea" type hint int | float either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | float is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ________________________ test_decor_mypy_notimplemented ________________________ def test_decor_mypy_notimplemented() -> None: ''' Test the :func:`beartype.beartype` decorator against :mod:`mypy` compliant usage of the :data:`NotImplemented` singleton, which is contextually permissible *only* as an unsubscripted return annotation of binary dunder methods. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeCallHintReturnViolation from beartype_test._util.pytroar import raises_uncached # ..................{ LOCALS }.................. # Without this, the forward reference in the return type of # TheCloud.__add__ (below) will fail because bear desperately yearns to # find it at the module level. And who are we to be so cruel as to hide the # object of her desires any more deeply than that? global TheCloud # ..................{ CLASSES }.................. > class TheCloud: BeartypeCallHintReturnViolation = beartype = raises_uncached = beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_mypy.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_mypy.py:49: in TheCloud @beartype __doc__ = '\nArbitrary class declaring a method exercising this test.\n' __firstlineno__ = 44 __module__ = 'a00_module.test_decor_mypy' __qualname__ = 'TheCloud' beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:122: in generate_code code_check_return = _code_check_return(bear_call) bear_call = code_check_params = '' beartype/_decor/wrap/_wrapreturn.py:237: in code_check_return reraise_exception_placeholder( bear_call = func_scope = None func_wrapper_code = '' hint = hint_insane = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Method a00_module.test_decor_mypy.TheCloud.__eq__() return type hint bool | NotImplementedType either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Method a00_module.test_decor_mypy.TheCloud.__eq__() return type hint bool | NotImplementedType either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'method a00_module.test_decor_mypy.TheCloud.__eq__() return ' beartype/_decor/wrap/_wrapreturn.py:122: in code_check_return hint = sanify_hint_root_func( bear_call = func_scope = None func_wrapper_code = '' hint = hint_insane = warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | NotImplementedType pith_name = 'return' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | NotImplementedType hint_prev = pith_name = 'return' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (bool | NotImplementedType, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (bool | NotImplementedType, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (bool | NotImplementedType, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (bool | NotImplementedType, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | NotImplementedType hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | NotImplementedType kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | NotImplementedType _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = bool | NotImplementedType, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Method a00_module.test_decor_mypy.TheCloud.__eq__() return type hint bool | NotImplementedType either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | NotImplementedType is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException _________________________ test_nonpep_pass_param_tuple _________________________ args = ((, 'builtins.int'),) args_flat = (, 'builtins.int') return_value = @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: raise exception # pyright: ignore[reportGeneralTypeIssues] # Else, this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception. # Value returned by a prior call to the decorated callable when # passed these parameters *OR* a sentinel placeholder otherwise # (i.e., if this callable has yet to be passed these parameters). return_value = args_flat_to_return_value_get( args_flat, SENTINEL) # If this callable has already been called with these parameters, # return the value returned by that prior call. if return_value is not SENTINEL: return return_value # Else, this callable has yet to be called with these parameters. # Attempt to... try: # Call this parameter with these parameters and cache the value # returned by this call to these parameters. return_value = args_flat_to_return_value[args_flat] = func( *args) # If this call raised an exception... except Exception as exception: # Cache this exception to these parameters. args_flat_to_exception[args_flat] = exception # Re-raise this exception. > raise exception args = ((, 'builtins.int'),) args_flat = (, 'builtins.int') args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...'str'>, 'builtins.int'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = ((, 'builtins.int'),) args_flat = (, 'builtins.int') args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...'str'>, 'builtins.int'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, 'builtins.int') @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, 'builtins.int') beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: def test_nonpep_pass_param_tuple() -> None: ''' Test type-checking for a function call successfully passed a parameter annotated with a PEP-noncompliant tuple union. ''' # Import this decorator. from beartype import beartype # Function to be type-checked. For completeness, test both an actual class # *AND* a forward reference to an actual class in this tuple annotation. > @beartype beartype = beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py:112: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .genestealer at 0x7f3ccce9b690> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .genestealer at 0x7f3ccce9b690> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .genestealer at 0x7f3ccce9b690> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .genestealer at 0x7f3ccce9b690> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .genestealer at 0x7f3ccce9b690> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( ARG_LOCALIZE_TEMPLATE = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' arg_default = arg_index = 1 arg_kind = arg_meta = (, 'hive_fleet', ) arg_name = 'hive_fleet' bear_call = cls_stack = None code_arg_check = "\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...ame='tyranid',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation" code_arg_check_pith = '\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...H_ROOT_NAME`^,\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' code_arg_localize = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' func_scope = {'__beartype_conf': BeartypeConf(), '__beartype_get_violation': } func_wrapper_code = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti...e=\'tyranid\',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' hint = hint_insane = (, 'builtins.int') hint_refs_type_basename = () is_args_positional = True warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") exception_message = "descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'" source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function a80_nonpep.test_codenonpep.test_nonpep_pass_param_tuple.genestealer() parameter "hive_fleet" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( ARG_LOCALIZE_TEMPLATE = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' arg_default = arg_index = 1 arg_kind = arg_meta = (, 'hive_fleet', ) arg_name = 'hive_fleet' bear_call = cls_stack = None code_arg_check = "\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...ame='tyranid',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation" code_arg_check_pith = '\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...H_ROOT_NAME`^,\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' code_arg_localize = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' func_scope = {'__beartype_conf': BeartypeConf(), '__beartype_get_violation': } func_wrapper_code = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti...e=\'tyranid\',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' hint = hint_insane = (, 'builtins.int') hint_refs_type_basename = () is_args_positional = True warnings_issued = [] beartype/_check/convert/convsanify.py:130: in sanify_hint_root_func coerce_func_hint_root( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = (, 'builtins.int') pith_name = 'hive_fleet' beartype/_check/convert/convcoerce.py:205: in coerce_func_hint_root return coerce_hint_root(hint=hint, exception_prefix=exception_prefix) bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = (, 'builtins.int') pith_name = 'hive_fleet' beartype/_check/convert/convcoerce.py:263: in coerce_hint_root return make_hint_pep484_union(hint) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = (, 'builtins.int') beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, 'builtins.int'),) args_flat = (, 'builtins.int') args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...'str'>, 'builtins.int'): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, 'builtins.int') @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, 'builtins.int') beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError ______________________ test_nonpep_fail_param_call_tuple _______________________ args = ((, ),) args_flat = (, ) return_value = @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: raise exception # pyright: ignore[reportGeneralTypeIssues] # Else, this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception. # Value returned by a prior call to the decorated callable when # passed these parameters *OR* a sentinel placeholder otherwise # (i.e., if this callable has yet to be passed these parameters). return_value = args_flat_to_return_value_get( args_flat, SENTINEL) # If this callable has already been called with these parameters, # return the value returned by that prior call. if return_value is not SENTINEL: return return_value # Else, this callable has yet to be called with these parameters. # Attempt to... try: # Call this parameter with these parameters and cache the value # returned by this call to these parameters. return_value = args_flat_to_return_value[args_flat] = func( *args) # If this call raised an exception... except Exception as exception: # Cache this exception to these parameters. args_flat_to_exception[args_flat] = exception # Re-raise this exception. > raise exception args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a... 'str'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a... 'str'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: def test_nonpep_fail_param_call_tuple() -> None: ''' Test type-checking for a function call unsuccessfully passed a parameter annotated with a PEP-noncompliant tuple union. ''' # Import this decorator. from beartype import beartype from beartype.roar import BeartypeCallHintParamViolation from pytest import raises # Annotated function to be type-checked. > @beartype BeartypeCallHintParamViolation = beartype = raises = beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py:157: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .eldar at 0x7f3ccce9bd70> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .eldar at 0x7f3ccce9bd70> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .eldar at 0x7f3ccce9bd70> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .eldar at 0x7f3ccce9bd70> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .eldar at 0x7f3ccce9bd70> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( ARG_LOCALIZE_TEMPLATE = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' arg_default = arg_index = 1 arg_kind = arg_meta = (, 'asuryan', ) arg_name = 'asuryan' bear_call = cls_stack = None code_arg_check = "\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...h_name='isha',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation" code_arg_check_pith = '\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...H_ROOT_NAME`^,\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' code_arg_localize = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' func_scope = {'__beartype_conf': BeartypeConf(), '__beartype_get_violation': } func_wrapper_code = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti...name=\'isha\',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' hint = hint_insane = (, ) hint_refs_type_basename = () is_args_positional = True warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") exception_message = "descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'" source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function a80_nonpep.test_codenonpep.test_nonpep_fail_param_call_tuple.eldar() parameter "asuryan" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( ARG_LOCALIZE_TEMPLATE = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' arg_default = arg_index = 1 arg_kind = arg_meta = (, 'asuryan', ) arg_name = 'asuryan' bear_call = cls_stack = None code_arg_check = "\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...h_name='isha',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation" code_arg_check_pith = '\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...H_ROOT_NAME`^,\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' code_arg_localize = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' func_scope = {'__beartype_conf': BeartypeConf(), '__beartype_get_violation': } func_wrapper_code = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti...name=\'isha\',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' hint = hint_insane = (, ) hint_refs_type_basename = () is_args_positional = True warnings_issued = [] beartype/_check/convert/convsanify.py:130: in sanify_hint_root_func coerce_func_hint_root( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = (, ) pith_name = 'asuryan' beartype/_check/convert/convcoerce.py:205: in coerce_func_hint_root return coerce_hint_root(hint=hint, exception_prefix=exception_prefix) bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = (, ) pith_name = 'asuryan' beartype/_check/convert/convcoerce.py:263: in coerce_hint_root return make_hint_pep484_union(hint) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = (, ) beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, ),) args_flat = (, ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a... 'str'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError _______________________ test_decor_pep484_hint_noreturn ________________________ def test_decor_pep484_hint_noreturn() -> None: ''' Test the :func:`beartype.beartype` decorator on synchronous callables against all edge cases of the :pep:`484`-compliant :attr:`typing.NoReturn` type hint, which is valid *only* as an unsubscripted return annotation. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype import beartype from beartype.roar import ( BeartypeCallHintViolation, BeartypeDecorHintPep484Exception, ) from beartype.typing import ( NoReturn, Union, ) from beartype_test._util.pytroar import raises_uncached # ..................{ LOCALS }.................. # Exception guaranteed to be raised *ONLY* by the mending_wall() function. class BeforeIBuiltAWallIdAskToKnow(Exception): pass # Synchronous callable unconditionally raising an exception correctly # annotating its return as "NoReturn". @beartype def mending_wall() -> NoReturn: raise BeforeIBuiltAWallIdAskToKnow( "Something there is that doesn't love a wall,") # Callable explicitly returning a value incorrectly annotating its return # as "NoReturn". @beartype def frozen_ground_swell() -> NoReturn: return 'That sends the frozen-ground-swell under it,' # Callable implicitly returning a value incorrectly annotating its return # as "NoReturn". @beartype def we_do_not_need_the_wall() -> NoReturn: 'There where it is we do not need the wall:' # ..................{ PASS }.................. # Assert this callable raises the expected exception when called. with raises_uncached(BeforeIBuiltAWallIdAskToKnow): mending_wall() # Assert this callable raises the expected exception when called. with raises_uncached(BeartypeCallHintViolation): frozen_ground_swell() # Assert this callable raises the expected exception when called. with raises_uncached(BeartypeCallHintViolation): we_do_not_need_the_wall() # ..................{ FAIL }.................. # Assert this decorator raises the expected exception when decorating a # synchronous callable returning a value incorrectly annotating its return # as "NoReturn". with raises_uncached(BeartypeDecorHintPep484Exception): @beartype def upper_boulders(in_the_sun: NoReturn): return 'And spills the upper boulders in the sun;' # Assert this decorator raises the expected exception when decorating a # synchronous callable returning a value annotating a parameter as a # supported PEP 484-compliant type hint incorrectly subscripted by # "NoReturn". with raises_uncached(BeartypeDecorHintPep484Exception): > @beartype BeartypeCallHintViolation = BeartypeDecorHintPep484Exception = BeforeIBuiltAWallIdAskToKnow = .BeforeIBuiltAWallIdAskToKnow'> NoReturn = typing.NoReturn Union = beartype = frozen_ground_swell = .frozen_ground_swell at 0x7f3cccb31590> mending_wall = .mending_wall at 0x7f3cccb31380> raises_uncached = we_do_not_need_the_wall = .we_do_not_need_the_wall at 0x7f3cccb317a0> beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py:117: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .makes_gaps at 0x7f3cccb31b10> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .makes_gaps at 0x7f3cccb31b10> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .makes_gaps at 0x7f3cccb31b10> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .makes_gaps at 0x7f3cccb31b10> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .makes_gaps at 0x7f3cccb31b10> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'abreast', ) arg_name = 'abreast' bear_call = func_wrapper_code = '' hint = None hint_insane = str | typing.NoReturn is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_noreturn.makes_gaps() parameter "abreast" type hint str | typing.NoReturn either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_noreturn.makes_gaps() parameter "abreast" type hint str | typing.NoReturn either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function a90_pep.pep484.test_pep484.test_decor_pep484_hint_noreturn.makes_gaps() parameter "abreast" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'abreast', ) arg_name = 'abreast' bear_call = func_wrapper_code = '' hint = None hint_insane = str | typing.NoReturn is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | typing.NoReturn pith_name = 'abreast' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | typing.NoReturn hint_prev = pith_name = 'abreast' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (str | typing.NoReturn, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | typing.NoReturn, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (str | typing.NoReturn, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | typing.NoReturn, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | typing.NoReturn hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | typing.NoReturn kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | typing.NoReturn _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = str | typing.NoReturn, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_noreturn.makes_gaps() parameter "abreast" type hint str | typing.NoReturn either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | typing.NoReturn is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ____________________ test_decor_pep484_hint_noreturn_async _____________________ args = (), kwargs = {} @wraps(test_func) def test_func_synchronous(*args, **kwargs): ''' Closure synchronously calling the current asynchronous test coroutine function under a new event loop uniquely isolated to this coroutine. ''' # With a warning context manager... with catch_warnings(): # Ignore *ALL* deprecating warnings emitted by the # get_event_loop() function called below. For unknown reasons, # CPython 3.11 devs thought that emitting a "There is no current # event loop" warning (erroneously classified as a # "deprecation") was a wonderful idea. "asyncio" is arduous # enough to portably support as it is. Work with me here, guys! simplefilter('ignore', DeprecationWarning) # Current event loop for the current threading context if any # *OR* create a new event loop otherwise. Note that the # higher-level asyncio.get_event_loop() getter is intentionally # *NOT* called here, as Python 3.10 broke backward compatibility # by refactoring that getter to be an alias for the wildly # different asyncio.get_running_loop() getter, which *MUST* be # called only from within either an asynchronous callable or # running event loop. In either case, asyncio.get_running_loop() # and thus asyncio.get_event_loop() is useless in this context. # Instead, we call the lower-level # get_event_loop_policy().get_event_loop() getter -- which # asyncio.get_event_loop() used to wrap. *facepalm* # # This getter should ideally return "None" rather than creating # a new event loop without our permission if no loop has been # set. This getter instead does the latter, implying that this # closure will typically instantiate two event loops per # asynchronous coroutine test function: # * The first useless event loop implicitly created by this # get_event_loop() call. # * The second useful event loop explicitly created by the # subsequent new_event_loop() call. # # Since there exists *NO* other means of querying the current # event loop, we reluctantly bite the bullet and pay the piper. > event_loop_old = get_event_loop_policy().get_event_loop() args = () kwargs = {} test_func = beartype_test/conftest.py:128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. self = /usr/lib64/python3.14/asyncio/events.py:718: RuntimeError _________________________ test_decor_pep484_namedtuple _________________________ def test_decor_pep484_namedtuple() -> None: ''' Test the :func:`beartype.beartype` decorator against all edge cases of instances of user-defined subclasses of the :pep:`484`-compliant :attr:`typing.NamedTuple` superclass, which are instances rather than types and thus invalid as actual type hints. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeCallHintParamViolation from typing import ( NamedTuple, Optional, ) from pytest import raises # ..................{ LOCALS }.................. > @beartype BeartypeCallHintParamViolation = NamedTuple = Optional = typing.Optional beartype = raises = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py:159: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .WindsContend'> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .WindsContend'> beartype/_decor/decorcore.py:132: in _beartype_object_fatal beartype_type(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .WindsContend'> beartype/_decor/_decortype.py:265: in beartype_type attr_value_beartyped = beartype_object( attr_name = '__new__' attr_value = )> beartype_object = cls = .WindsContend'> cls_sizeof_old = cls_stack = (.WindsContend'>,) conf = BeartypeConf() is_attr_beartypeable = True is_cls_beartyped = None beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {'cls_stack': (.WindsContend'>,)} obj = )> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (.WindsContend'>,), 'conf': BeartypeConf()} obj = )> beartype/_decor/_decornontype.py:117: in beartype_nontype return beartype_descriptor_decorator_builtin(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (.WindsContend'>,), 'conf': BeartypeConf()} obj = )> obj_type = beartype/_decor/_decornontype.py:513: in beartype_descriptor_decorator_builtin func_checked = beartype_func(descriptor_wrappee, **kwargs) # type: ignore[union-attr] descriptor = )> descriptor_type = descriptor_wrappee = kwargs = {'cls_stack': (.WindsContend'>,), 'conf': BeartypeConf()} beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {'cls_stack': (.WindsContend'>,)} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'starbeams', ) arg_name = 'starbeams' bear_call = func_wrapper_code = '' hint = None hint_insane = str | None is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" type hint str | None either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" type hint str | None either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'starbeams', ) arg_name = 'starbeams' bear_call = func_wrapper_code = '' hint = None hint_insane = str | None is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None pith_name = 'starbeams' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = (.WindsContend'>,) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None hint_prev = pith_name = 'starbeams' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (str | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (str | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = str | None, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" type hint str | None either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ________________ test_decor_pep484_hint_sequence_args_1_cached _________________ def test_decor_pep484_hint_sequence_args_1_cached() -> None: ''' Test that a `subtle issue `__ of the :func:`beartype.beartype` decorator with respect to metadata describing **PEP-compliant standard sequence hints** (e.g., :attr:`typing.List`) cached via memoization across calls to that decorator has been resolved and *not* regressed. Note that more general-purpose :pep:`484` unit tests *should* already exercise this issue, but that this issue was sufficiently dire to warrant special-purposed testing exercising this exact issue. .. _issue #5: https://github.com/beartype/beartype/issues/5 ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype import beartype from beartype.typing import Union # ....................{ CALLABLES }.................... # Callable annotated by an arbitrary PEP 484 standard sequence type hint. > @beartype Union = beartype = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .fern_hill at 0x7f3cccb32770> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .fern_hill at 0x7f3cccb32770> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .fern_hill at 0x7f3cccb32770> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .fern_hill at 0x7f3cccb32770> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .fern_hill at 0x7f3cccb32770> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'prince_of_the_apple_towns', ) arg_name = 'prince_of_the_apple_towns' bear_call = func_wrapper_code = '' hint = None hint_insane = int | str is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fe...ameter "prince_of_the_apple_towns" type hint int | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fern_hill() parameter "prince_of_the_apple_towns" type hint int | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fern_hill() parameter "prince_of_the_apple_towns" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'prince_of_the_apple_towns', ) arg_name = 'prince_of_the_apple_towns' bear_call = func_wrapper_code = '' hint = None hint_insane = int | str is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str pith_name = 'prince_of_the_apple_towns' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str hint_prev = pith_name = 'prince_of_the_apple_towns' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (int | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (int | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (int | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (int | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = int | str, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fern_hill() parameter "prince_of_the_apple_towns" type hint int | str either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException _____________________________ test_pep484_ref_data _____________________________ def test_pep484_ref_data() -> None: ''' Test successful usage of the :func:`beartype.beartype` decorator with respect to both PEP-compliant and -noncompliant forward references by importing an external data module declaring these references *before* the user-defined classes referred to by these references. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype.roar import BeartypeCallHintReturnViolation > from beartype_test.a00_unit.data.hint.data_hintref import ( BeforeTheHurricane, TheDarkestEveningOfTheYear, WithSluggishSurge, a_little_shallop, but_i_have_promises, its_fields_of_snow, of_easy_wind, stopping_by_woods_on, the_dry_leaf, the_woods_are_lovely, winding_among_the_springs, # between_the_woods_and_frozen_lake, ) BeartypeCallHintReturnViolation = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484ref.py:33: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype_test/a00_unit/data/hint/data_hintref.py:80: in @beartype Generic = LikeATornCloud = ~LikeATornCloud List = Optional = typing.Optional Sequence = T = ~T TheDarkestForwardRefOfTheYear = 'beartype_test.a00_unit.data.hint.data_hintref.TheDarkestEveningOfTheYear' TheDarkestUnionOfTheYear = complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes Tuple = Type = TypeVar = Union = __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/hint/__pycache__/data_hintref.cpython-314.pyc' __doc__ = '\nProject-wide **forward reference data submodule.**\n\nThis submodule exercises **forward reference type hints** (i...ce type hints, and both declared and called at module\n scope before their referents exercise this deferred nature.\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/hint/data_hintref.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3ccc8ad730> __name__ = 'beartype_test.a00_unit.data.hint.data_hintref' __package__ = 'beartype_test.a00_unit.data.hint' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.hint.data_hintref', loader=<_frozen_importlib_external.SourceFileLoader o...='/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/hint/data_hintref.py') beartype = stopping_by_woods_on = the_woods_are_lovely = beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'to_keep', ) arg_name = 'to_keep' bear_call = func_wrapper_code = '' hint = None hint_insane = complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function beartype_test.a00_unit.data.hint.data_hintref.but_i_have_promises() paramet...x | ForwardRef(\'TheDarkestEveningOfTheYear\') | bytes either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function beartype_test.a00_unit.data.hint.data_hintref.but_i_have_promises() parameter "to_keep" type hint complex | ForwardRef(\'TheDarkestEveningOfTheYear\') | bytes either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function beartype_test.a00_unit.data.hint.data_hintref.but_i_have_promises() parameter "to_keep" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'to_keep', ) arg_name = 'to_keep' bear_call = func_wrapper_code = '' hint = None hint_insane = complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes pith_name = 'to_keep' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes hint_prev = pith_name = 'to_keep' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function beartype_test.a00_unit.data.hint.data_hintref.but_i_have_promises() parameter "to_keep" type hint complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = complex | ForwardRef('TheDarkestEveningOfTheYear') | bytes is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException __________________________ test_pep484_ref_call_fail ___________________________ args = ((, 'beartype_test.TwoRoadsDivergedInAYellowWood', ),) args_flat = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) return_value = @wraps(func) def _callable_cached(*args): f''' Memoized variant of the {func.__name__}() callable. See Also -------- :func:`callable_cached` Further details. ''' # Object representing all passed positional arguments to be used as the # key of various memoized dictionaries, defined as either... args_flat = ( # If passed only one positional argument, minimize space consumption # by flattening this tuple of only that argument into that argument. # Since tuple items are necessarily hashable, this argument is # necessarily hashable and thus permissible as a dictionary key; args[0] if len(args) == 1 else # Else, one or more positional arguments are passed. In this case, # reuse this tuple as is. args ) # Attempt to... try: # Exception raised by a prior call to the decorated callable when # passed these parameters *OR* the sentinel placeholder otherwise # (i.e., if this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception). # # Note that: # * This statement raises a "TypeError" exception if any item of # this flattened tuple is unhashable. # * A sentinel placeholder (e.g., "SENTINEL") is *NOT* needed here. # The values of the "args_flat_to_exception" dictionary are # guaranteed to *ALL* be exceptions. Since "None" is *NOT* an # exception, disambiguation between "None" and valid dictionary # values is *NOT* needed here. Although a sentinel placeholder # could still be employed, doing so would slightly reduce # efficiency for *NO* real-world gain. exception = args_flat_to_exception_get(args_flat) # If this callable previously raised an exception when called with # these parameters, re-raise the same exception. if exception: raise exception # pyright: ignore[reportGeneralTypeIssues] # Else, this callable either has yet to be called with these # parameters *OR* has but failed to raise an exception. # Value returned by a prior call to the decorated callable when # passed these parameters *OR* a sentinel placeholder otherwise # (i.e., if this callable has yet to be passed these parameters). return_value = args_flat_to_return_value_get( args_flat, SENTINEL) # If this callable has already been called with these parameters, # return the value returned by that prior call. if return_value is not SENTINEL: return return_value # Else, this callable has yet to be called with these parameters. # Attempt to... try: # Call this parameter with these parameters and cache the value # returned by this call to these parameters. return_value = args_flat_to_return_value[args_flat] = func( *args) # If this call raised an exception... except Exception as exception: # Cache this exception to these parameters. args_flat_to_exception[args_flat] = exception # Re-raise this exception. > raise exception args = ((, 'beartype_test.TwoRoadsDivergedInAYellowWood', ),) args_flat = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), ...} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = ((, 'beartype_test.TwoRoadsDivergedInAYellowWood', ),) args_flat = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), ...} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError During handling of the above exception, another exception occurred: def test_pep484_ref_call_fail() -> None: ''' Test unsuccessful call-time usage of the :func:`beartype.beartype` decorator with respect to both PEP-compliant and -noncompliant forward references. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeCallHintForwardRefException from beartype.typing import Union from beartype_test._util.pytroar import raises_uncached # ..................{ FAIL }.................. # Decorated callable annotated by a PEP-noncompliant fully-qualified # forward reference referring to a non-existent type. TwoForwardRefsDivergedInAYellowWood = ( 'beartype_test.TwoRoadsDivergedInAYellowWood') @beartype def the_road(not_taken: TwoForwardRefsDivergedInAYellowWood) -> ( TwoForwardRefsDivergedInAYellowWood): return not_taken # Assert calling this callable raises the expected exception. with raises_uncached(BeartypeCallHintForwardRefException): the_road('Two roads diverged in a wood, and I—') # Decorated callable annotated by a PEP-noncompliant tuple containing # standard types and a fully-qualified forward reference referring to a # non-existent type. AndBothForwardRefsThatMorningEquallyLay = ( complex, TwoForwardRefsDivergedInAYellowWood, bool) > @beartype AndBothForwardRefsThatMorningEquallyLay = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) BeartypeCallHintForwardRefException = TwoForwardRefsDivergedInAYellowWood = 'beartype_test.TwoRoadsDivergedInAYellowWood' Union = beartype = raises_uncached = the_road = .the_road at 0x7f3ccc9097a0> beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484ref.py:219: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .in_leaves_no_step at 0x7f3ccc909900> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .in_leaves_no_step at 0x7f3ccc909900> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .in_leaves_no_step at 0x7f3ccc909900> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .in_leaves_no_step at 0x7f3ccc909900> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .in_leaves_no_step at 0x7f3ccc909900> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'had_trodden_black', ) arg_name = 'had_trodden_black' bear_call = func_wrapper_code = '' hint = None hint_insane = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'") exception_message = "descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'" source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function a90_pep.pep484.test_pep484ref.test_pep484_ref_call_fail.in_leaves_no_step() parameter "had_trodden_black" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'had_trodden_black', ) arg_name = 'had_trodden_black' bear_call = func_wrapper_code = '' hint = None hint_insane = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:130: in sanify_hint_root_func coerce_func_hint_root( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) pith_name = 'had_trodden_black' beartype/_check/convert/convcoerce.py:205: in coerce_func_hint_root return coerce_hint_root(hint=hint, exception_prefix=exception_prefix) bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) pith_name = 'had_trodden_black' beartype/_check/convert/convcoerce.py:263: in coerce_hint_root return make_hint_pep484_union(hint) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) beartype/_util/cache/utilcachecall.py:258: in _callable_cached return func(*args) args = ((, 'beartype_test.TwoRoadsDivergedInAYellowWood', ),) args_flat = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) args_flat_to_exception = {(, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a...'>, ): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'"), ...} args_flat_to_exception_get = args_flat_to_return_value = {} args_flat_to_return_value_get = func = return_value = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hints = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) @callable_cached def make_hint_pep484_union(hints: tuple) -> object: ''' :pep:`484`-compliant **union type hint** (:attr:`typing.Union` subscription) synthesized from the passed tuple of two or more PEP-compliant type hints if this tuple contains two or more items, the one PEP-compliant type hint in this tuple if this tuple contains only one item, *or* raise an exception otherwise (i.e., if this tuple is empty). This factory is memoized for efficiency. Technically, the :attr:`typing.Union` type hint factory already caches its subscripted arguments. Pragmatically, that caching is slow and thus worth optimizing with trivial optimization on our end. Moreover, this factory is called by the performance-sensitive :func:`beartype._check.convert.convcoerce.coerce_hint_any` coercer in an early-time code path of the :func:`beartype.beartype` decorator. Optimizing this factory thus optimizes :func:`beartype.beartype` itself. Parameters ---------- hint : object Type hint to be inspected. Returns ------- object Either: * If this tuple contains two or more items, the union type hint synthesized from these items. * If this tuple contains only one item, this item as is. Raises ------ TypeError If this tuple is empty. ''' assert isinstance(hints, tuple), f'{repr(hints)} not tuple.' # These are the one-liners of our lives. > return Union.__getitem__(hints) # pyright: ignore E TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' hints = (, 'beartype_test.TwoRoadsDivergedInAYellowWood', ) beartype/_util/hint/pep/proposal/pep484/utilpep484union.py:59: TypeError __________________________ test_decor_async_coroutine __________________________ args = (), kwargs = {} @wraps(test_func) def test_func_synchronous(*args, **kwargs): ''' Closure synchronously calling the current asynchronous test coroutine function under a new event loop uniquely isolated to this coroutine. ''' # With a warning context manager... with catch_warnings(): # Ignore *ALL* deprecating warnings emitted by the # get_event_loop() function called below. For unknown reasons, # CPython 3.11 devs thought that emitting a "There is no current # event loop" warning (erroneously classified as a # "deprecation") was a wonderful idea. "asyncio" is arduous # enough to portably support as it is. Work with me here, guys! simplefilter('ignore', DeprecationWarning) # Current event loop for the current threading context if any # *OR* create a new event loop otherwise. Note that the # higher-level asyncio.get_event_loop() getter is intentionally # *NOT* called here, as Python 3.10 broke backward compatibility # by refactoring that getter to be an alias for the wildly # different asyncio.get_running_loop() getter, which *MUST* be # called only from within either an asynchronous callable or # running event loop. In either case, asyncio.get_running_loop() # and thus asyncio.get_event_loop() is useless in this context. # Instead, we call the lower-level # get_event_loop_policy().get_event_loop() getter -- which # asyncio.get_event_loop() used to wrap. *facepalm* # # This getter should ideally return "None" rather than creating # a new event loop without our permission if no loop has been # set. This getter instead does the latter, implying that this # closure will typically instantiate two event loops per # asynchronous coroutine test function: # * The first useless event loop implicitly created by this # get_event_loop() call. # * The second useful event loop explicitly created by the # subsequent new_event_loop() call. # # Since there exists *NO* other means of querying the current # event loop, we reluctantly bite the bullet and pay the piper. > event_loop_old = get_event_loop_policy().get_event_loop() args = () kwargs = {} test_func = beartype_test/conftest.py:128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. self = /usr/lib64/python3.14/asyncio/events.py:718: RuntimeError __________________________ test_decor_async_generator __________________________ args = (), kwargs = {} @wraps(test_func) def test_func_synchronous(*args, **kwargs): ''' Closure synchronously calling the current asynchronous test coroutine function under a new event loop uniquely isolated to this coroutine. ''' # With a warning context manager... with catch_warnings(): # Ignore *ALL* deprecating warnings emitted by the # get_event_loop() function called below. For unknown reasons, # CPython 3.11 devs thought that emitting a "There is no current # event loop" warning (erroneously classified as a # "deprecation") was a wonderful idea. "asyncio" is arduous # enough to portably support as it is. Work with me here, guys! simplefilter('ignore', DeprecationWarning) # Current event loop for the current threading context if any # *OR* create a new event loop otherwise. Note that the # higher-level asyncio.get_event_loop() getter is intentionally # *NOT* called here, as Python 3.10 broke backward compatibility # by refactoring that getter to be an alias for the wildly # different asyncio.get_running_loop() getter, which *MUST* be # called only from within either an asynchronous callable or # running event loop. In either case, asyncio.get_running_loop() # and thus asyncio.get_event_loop() is useless in this context. # Instead, we call the lower-level # get_event_loop_policy().get_event_loop() getter -- which # asyncio.get_event_loop() used to wrap. *facepalm* # # This getter should ideally return "None" rather than creating # a new event loop without our permission if no loop has been # set. This getter instead does the latter, implying that this # closure will typically instantiate two event loops per # asynchronous coroutine test function: # * The first useless event loop implicitly created by this # get_event_loop() call. # * The second useful event loop explicitly created by the # subsequent new_event_loop() call. # # Since there exists *NO* other means of querying the current # event loop, we reluctantly bite the bullet and pay the piper. > event_loop_old = get_event_loop_policy().get_event_loop() args = () kwargs = {} test_func = beartype_test/conftest.py:128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. self = /usr/lib64/python3.14/asyncio/events.py:718: RuntimeError __________________________ test_decor_sync_generator ___________________________ @ignore_warnings(BeartypeDecorHintPep585DeprecationWarning) def test_decor_sync_generator() -> None: ''' Test decorating synchronous generators with the :func:`beartype.beartype` decorator. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeDecorHintPep484585Exception from beartype._util.py.utilpyversion import IS_PYTHON_AT_LEAST_3_9 from beartype_test._util.pytroar import raises_uncached from beartype.typing import ( Generator as GeneratorUnsubscripted, ) from collections.abc import ( Generator as Pep585Generator, Iterable as Pep585Iterable, Iterator as Pep585Iterator, ) from typing import ( Union, Generator as Pep484Generator, Iterable as Pep484Iterable, Iterator as Pep484Iterator, ) # ....................{ LOCALS }.................... #FIXME: Refactor this unwieldy and unmaintainable DRY violation by iterating #over a tuple of all return type hints to be tested: e.g., # RETURN_HINTS = ( # GeneratorUnsubscripted, # Pep484Generator[Union[str, float], None], # ) # # for return_hint in RETURN_HINTS: # @beartype # def western_logocentric_stuff( # said_the: Union[str, int], # bigger_greener_bat: Union[str, float] # ) -> return_hint: # await sleep(0) # yield said_the + bigger_greener_bat # Decorated synchronous generators whose returns are annotated with PEP # 484-compliant "Generator[...]", "Iterable[...]", and "Iterator[...]" type # hints (respectively). > @beartype BeartypeDecorHintPep484585Exception = GeneratorUnsubscripted = IS_PYTHON_AT_LEAST_3_9 = True Pep484Generator = typing.Generator Pep484Iterable = typing.Iterable Pep484Iterator = typing.Iterator Pep585Generator = Pep585Iterable = Pep585Iterator = Union = beartype = raises_uncached = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep484585.py:345: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .western_logocentric_stuff at 0x7f3ccc90b480> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .western_logocentric_stuff at 0x7f3ccc90b480> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .western_logocentric_stuff at 0x7f3ccc90b480> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .western_logocentric_stuff at 0x7f3ccc90b480> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .western_logocentric_stuff at 0x7f3ccc90b480> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'said_the', ) arg_name = 'said_the' bear_call = func_wrapper_code = '' hint = None hint_insane = str | int is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fe...ameter "prince_of_the_apple_towns" type hint int | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fern_hill() parameter "prince_of_the_apple_towns" type hint int | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'generator factory function a90_pep.test_decorpep484585.test_decor_sync_generator.western_logocentric_stuff() parameter "said_the" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'said_the', ) arg_name = 'said_the' bear_call = func_wrapper_code = '' hint = None hint_insane = str | int is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | int pith_name = 'said_the' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | int hint_prev = pith_name = 'said_the' beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (str | int, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | int, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException('Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fe...ameter "prince_of_the_apple_towns" type hint int | str either PEP-noncompliant or currently unsupported by @beartype.') func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.0003888510000251699 excinfo = func = . at 0x7f3cccb32820> precise_start = 1505.069803355 precise_stop = 1505.070192206 reraise = (, ) result = None start = 1747420677.4344096 stop = 1747420677.4347994 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3ccc815bb0> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3ccc815c10> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {} pyfuncitem = testargs = {} testfunction = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py:210: in test_decor_pep484_hint_sequence_args_1_cached @beartype Union = beartype = beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .fern_hill at 0x7f3cccb32770> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .fern_hill at 0x7f3cccb32770> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .fern_hill at 0x7f3cccb32770> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .fern_hill at 0x7f3cccb32770> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .fern_hill at 0x7f3cccb32770> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'prince_of_the_apple_towns', ) arg_name = 'prince_of_the_apple_towns' bear_call = func_wrapper_code = '' hint = None hint_insane = int | str is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fe...ameter "prince_of_the_apple_towns" type hint int | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fern_hill() parameter "prince_of_the_apple_towns" type hint int | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fern_hill() parameter "prince_of_the_apple_towns" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'prince_of_the_apple_towns', ) arg_name = 'prince_of_the_apple_towns' bear_call = func_wrapper_code = '' hint = None hint_insane = int | str is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str pith_name = 'prince_of_the_apple_towns' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str hint_prev = pith_name = 'prince_of_the_apple_towns' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (int | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (int | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (int | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (int | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = int | str, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function a90_pep.pep484.test_pep484.test_decor_pep484_hint_sequence_args_1_cached.fern_hill() parameter "prince_of_the_apple_towns" type hint int | str either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | str is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ______________________________ test_decor_pep577 _______________________________ def test_decor_pep577() -> None: ''' Test :pep:`557` support implemented in the :func:`beartype.beartype` decorator if the active Python interpreter targets Python >= 3.8 *or* skip otherwise. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeCallHintParamViolation from beartype.typing import ( ClassVar, Optional, ) from dataclasses import ( InitVar, dataclass, field, ) from pytest import raises # ..................{ LOCALS }.................. > @beartype BeartypeCallHintParamViolation = ClassVar = typing.ClassVar InitVar = Optional = typing.Optional beartype = dataclass = field = raises = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep557.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .SoSolemnSoSerene'> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .SoSolemnSoSerene'> beartype/_decor/decorcore.py:132: in _beartype_object_fatal beartype_type(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .SoSolemnSoSerene'> beartype/_decor/_decortype.py:265: in beartype_type attr_value_beartyped = beartype_object( attr_name = '__init__' attr_value = .SoSolemnSoSerene.__init__ at 0x7f3ccc8ce2a0> attr_value_beartyped = beartype_object = cls = .SoSolemnSoSerene'> cls_sizeof_old = cls_stack = (.SoSolemnSoSerene'>,) conf = BeartypeConf() is_attr_beartypeable = True is_cls_beartyped = None beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {'cls_stack': (.SoSolemnSoSerene'>,)} obj = .SoSolemnSoSerene.__init__ at 0x7f3ccc8ce2a0> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (.SoSolemnSoSerene'>,), 'conf': BeartypeConf()} obj = .SoSolemnSoSerene.__init__ at 0x7f3ccc8ce2a0> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (.SoSolemnSoSerene'>,), 'conf': BeartypeConf()} obj = .SoSolemnSoSerene.__init__ at 0x7f3ccc8ce2a0> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .SoSolemnSoSerene.__init__ at 0x7f3ccc8ce2a0> kwargs = {'cls_stack': (.SoSolemnSoSerene'>,)} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( ARG_LOCALIZE_TEMPLATE = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' arg_default = None arg_index = 2 arg_kind = arg_meta = (, 'that_man_may_be', None) arg_name = 'that_man_may_be' bear_call = cls_stack = None code_arg_check = "\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...r_such_faith',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation" code_arg_check_pith = '\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...H_ROOT_NAME`^,\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' code_arg_localize = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' func_scope = {'__beartype_conf': BeartypeConf(), '__beartype_get_violation': } func_wrapper_code = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._such_faith\',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' hint = hint_insane = str | None hint_refs_type_basename = () is_args_positional = True warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" type hint str | None either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" type hint str | None either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'method a90_pep.test_decorpep557.test_decor_pep577.SoSolemnSoSerene.__init__() parameter "that_man_may_be" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( ARG_LOCALIZE_TEMPLATE = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' arg_default = None arg_index = 2 arg_kind = arg_meta = (, 'that_man_may_be', None) arg_name = 'that_man_may_be' bear_call = cls_stack = None code_arg_check = "\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...r_such_faith',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation" code_arg_check_pith = '\n # Type-check this parameter or return against this type hint.\n if not isinstance(__beartype_pith_0,...H_ROOT_NAME`^,\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' code_arg_localize = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._violation)\n )\n\n # If this parameter was passed...\n if __beartype_pith_0 is not __beartype_get_violation:' func_scope = {'__beartype_conf': BeartypeConf(), '__beartype_get_violation': } func_wrapper_code = '\n # Localize this positional or keyword parameter if passed *OR* to the\n # sentinel "__beartype_raise_excepti..._such_faith\',\n pith_value=__beartype_pith_0,\n )\n\n raise __beartype_violation' hint = hint_insane = str | None hint_refs_type_basename = () is_args_positional = True warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None pith_name = 'that_man_may_be' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = (.SoSolemnSoSerene'>,) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None hint_prev = pith_name = 'that_man_may_be' beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (str | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException('Function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" type hint str | None either PEP-noncompliant or currently unsupported by @beartype.') func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.0006995160001679324 excinfo = func = . at 0x7f3cccb31fe0> precise_start = 1505.043680311 precise_stop = 1505.044379827 reraise = (, ) result = None start = 1747420677.4082868 stop = 1747420677.4089868 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3ccc817a10> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3ccc817b30> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {} pyfuncitem = testargs = {} testfunction = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py:159: in test_decor_pep484_namedtuple @beartype BeartypeCallHintParamViolation = NamedTuple = Optional = typing.Optional beartype = raises = beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .WindsContend'> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .WindsContend'> beartype/_decor/decorcore.py:132: in _beartype_object_fatal beartype_type(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .WindsContend'> beartype/_decor/_decortype.py:265: in beartype_type attr_value_beartyped = beartype_object( attr_name = '__new__' attr_value = )> beartype_object = cls = .WindsContend'> cls_sizeof_old = cls_stack = (.WindsContend'>,) conf = BeartypeConf() is_attr_beartypeable = True is_cls_beartyped = None beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {'cls_stack': (.WindsContend'>,)} obj = )> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (.WindsContend'>,), 'conf': BeartypeConf()} obj = )> beartype/_decor/_decornontype.py:117: in beartype_nontype return beartype_descriptor_decorator_builtin(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (.WindsContend'>,), 'conf': BeartypeConf()} obj = )> obj_type = beartype/_decor/_decornontype.py:513: in beartype_descriptor_decorator_builtin func_checked = beartype_func(descriptor_wrappee, **kwargs) # type: ignore[union-attr] descriptor = )> descriptor_type = descriptor_wrappee = kwargs = {'cls_stack': (.WindsContend'>,), 'conf': BeartypeConf()} beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {'cls_stack': (.WindsContend'>,)} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'starbeams', ) arg_name = 'starbeams' bear_call = func_wrapper_code = '' hint = None hint_insane = str | None is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" type hint str | None either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" type hint str | None either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'starbeams', ) arg_name = 'starbeams' bear_call = func_wrapper_code = '' hint = None hint_insane = str | None is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None pith_name = 'starbeams' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = (.WindsContend'>,) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None hint_prev = pith_name = 'starbeams' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (str | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (str | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = str | None, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function namedtuple_WindsContend.WindsContend.__new__() parameter "starbeams" type hint str | None either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | None is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException __________________ test_pep563_class_self_reference_reloaded ___________________ def test_pep563_class_self_reference_reloaded() -> None: ''' Test module-scoped :pep:`563` support implemented in the :func:`beartype.beartype` decorator. This test exercises multiple issues, including: * `An issue `__ concerning a :pep:`563`-postponed circular reference to a class currently being declared from a method of that class decorated by :func:`beartype.beartype`. See the :meth:`beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.like_a_dream` docstring for further details. * `An issue `__ concerning a :pep:`563`-postponed circular reference to a class currently being declared embedded in a parent type hint of a method of that class decorated by :func:`beartype.beartype`. See the :meth:`beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_cling` docstring for further details. .. _issue #49: https://github.com/beartype/beartype/issues/49 .. _issue #152: https://github.com/beartype/beartype/issues/152 ''' # .....................{ IMPORTS }.................... # Defer test-specific imports. # # Note that the "data_pep563_club" submodule is intentionally imported as an # attribute rather than importing the requisite attributes from that # submodule. Why? Because the entire intention of this test is to exercise # reloading of @beartype-decorated callables annotated with circular # references under PEP 563. > from beartype_test.a00_unit.data.pep.pep563 import data_pep563_club beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:69: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype_test/a00_unit/data/pep/pep563/data_pep563_club.py:64: in @beartype CLING = 'our love is strong' COLORS = 'red, gold, and green' DREAMS = 'Loving would be easy' HeWouldLingerLong = Karma = 'you come and go' NoReturn = typing.NoReturn Union = __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/__pycache__/data_pep563_club.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` **cultural data submodule.**\n\nThis submodule exercises edge-case :pep:`563` support imple...t.data.pep.pep563.data_pep563_poem`\nsubmodule.\n\n.. _issue #49:\n https://github.com/beartype/beartype/issues/49\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_club.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3ccc8e7a70> __name__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_club' __package__ = 'beartype_test.a00_unit.data.pep.pep563' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.data_pep563_club', loader=<_frozen_importlib_external.SourceFi...r/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_club.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:132: in _beartype_object_fatal beartype_type(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decortype.py:265: in beartype_type attr_value_beartyped = beartype_object( attr_name = 'when_we_cling' attr_value = )> attr_value_beartyped = )> beartype_object = cls = cls_sizeof_old = cls_stack = (,) conf = BeartypeConf() is_attr_beartypeable = True is_cls_beartyped = None beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {'cls_stack': (,)} obj = )> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} obj = )> beartype/_decor/_decornontype.py:117: in beartype_nontype return beartype_descriptor_decorator_builtin(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} obj = )> obj_type = beartype/_decor/_decornontype.py:513: in beartype_descriptor_decorator_builtin func_checked = beartype_func(descriptor_wrappee, **kwargs) # type: ignore[union-attr] descriptor = )> descriptor_type = descriptor_wrappee = kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {'cls_stack': (,)} beartype/_decor/wrap/wrapmain.py:122: in generate_code code_check_return = _code_check_return(bear_call) bear_call = code_check_params = '' beartype/_decor/wrap/_wrapreturn.py:237: in code_check_return reraise_exception_placeholder( bear_call = func_scope = None func_wrapper_code = '' hint = 'Union[Chameleon, complex]' hint_insane = 'Union[Chameleon, complex]' warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_c...t.data.pep.pep563.data_pep563_club.Chameleon | complex either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_cling() return type hint beartype_...it.data.pep.pep563.data_pep563_club.Chameleon | complex either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_cling() return ' beartype/_decor/wrap/_wrapreturn.py:122: in code_check_return hint = sanify_hint_root_func( bear_call = func_scope = None func_wrapper_code = '' hint = 'Union[Chameleon, complex]' hint_insane = 'Union[Chameleon, complex]' warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex pith_name = 'return' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = (,) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex hint_prev = pith_name = 'return' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_cling() return type hint beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException __________________ test_pep563_class_self_reference_override ___________________ def test_pep563_class_self_reference_override() -> None: ''' Test module-scoped :pep:`563` support implemented in the :func:`beartype.beartype` decorator. This test exercises an edge case in which a :pep:`563`-postponed circular reference to a class currently being declared from a method of that class decorated by :func:`beartype.beartype` overrides and thus conflicts with a previously declared global with the same name as that class in the module declaring that class. ''' # Defer test-specific imports. > from beartype_test.a00_unit.data.pep.pep563.data_pep563_club import ( DREAMS, Karma) beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype_test/a00_unit/data/pep/pep563/data_pep563_club.py:64: in @beartype CLING = 'our love is strong' COLORS = 'red, gold, and green' DREAMS = 'Loving would be easy' HeWouldLingerLong = Karma = 'you come and go' NoReturn = typing.NoReturn Union = __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/__pycache__/data_pep563_club.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` **cultural data submodule.**\n\nThis submodule exercises edge-case :pep:`563` support imple...t.data.pep.pep563.data_pep563_poem`\nsubmodule.\n\n.. _issue #49:\n https://github.com/beartype/beartype/issues/49\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_club.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3cccd5ac90> __name__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_club' __package__ = 'beartype_test.a00_unit.data.pep.pep563' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.data_pep563_club', loader=<_frozen_importlib_external.SourceFi...r/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_club.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:132: in _beartype_object_fatal beartype_type(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decortype.py:265: in beartype_type attr_value_beartyped = beartype_object( attr_name = 'when_we_cling' attr_value = )> attr_value_beartyped = )> beartype_object = cls = cls_sizeof_old = cls_stack = (,) conf = BeartypeConf() is_attr_beartypeable = True is_cls_beartyped = None beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {'cls_stack': (,)} obj = )> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} obj = )> beartype/_decor/_decornontype.py:117: in beartype_nontype return beartype_descriptor_decorator_builtin(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} obj = )> obj_type = beartype/_decor/_decornontype.py:513: in beartype_descriptor_decorator_builtin func_checked = beartype_func(descriptor_wrappee, **kwargs) # type: ignore[union-attr] descriptor = )> descriptor_type = descriptor_wrappee = kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {'cls_stack': (,)} beartype/_decor/wrap/wrapmain.py:122: in generate_code code_check_return = _code_check_return(bear_call) bear_call = code_check_params = '' beartype/_decor/wrap/_wrapreturn.py:237: in code_check_return reraise_exception_placeholder( bear_call = func_scope = None func_wrapper_code = '' hint = 'Union[Chameleon, complex]' hint_insane = 'Union[Chameleon, complex]' warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_c...t.data.pep.pep563.data_pep563_club.Chameleon | complex either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_cling() return type hint beartype_...it.data.pep.pep563.data_pep563_club.Chameleon | complex either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_cling() return ' beartype/_decor/wrap/_wrapreturn.py:122: in code_check_return hint = sanify_hint_root_func( bear_call = func_scope = None func_wrapper_code = '' hint = 'Union[Chameleon, complex]' hint_insane = 'Union[Chameleon, complex]' warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex pith_name = 'return' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = (,) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex hint_prev = pith_name = 'return' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_cling() return type hint beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ______________________________ test_pep563_module ______________________________ def test_pep563_module() -> None: ''' Test module-scoped :pep:`563` support implemented in the :func:`beartype.beartype` decorator. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeDecorHintPep604Exception from beartype._util.py.utilpyversion import IS_PYTHON_AT_LEAST_3_10 > from beartype_test.a00_unit.data.pep.pep563.data_pep563_poem import ( get_minecraft_end_txt, get_minecraft_end_txt_pep604, get_minecraft_end_txt_stanza, ) BeartypeDecorHintPep604Exception = IS_PYTHON_AT_LEAST_3_10 = True beartype = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:142: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:263: in class MinecraftEndTxtUnscrambler(object): Callable = IntType = List = Union = _MINECRAFT_END_TXT_STANZAS = ('I see the player you mean.', '{player_name}?', 'Yes. Take care. It has reached a higher level now. It can read our t...player. It played well. It did not give up.', 'It is reading our thoughts as though they were words on a screen.', ...) __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/__pycache__/data_pep563_poem.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` **poetic data submodule.**\n\nThis submodule exercises :pep:`563` support implemented in th...decorated by that decorator. External unit tests are expected to import this\nsubmodule and then call that callable.\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3cccdf2810> __name__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __package__ = 'beartype_test.a00_unit.data.pep.pep563' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.data_pep563_poem', loader=<_frozen_importlib_external.SourceFi...r/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = decorator = get_minecraft_end_txt = get_minecraft_end_txt_closure = get_minecraft_end_txt_closure_factory = get_minecraft_end_txt_pep604 = get_minecraft_end_txt_stanza = beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:274: in MinecraftEndTxtUnscrambler @beartype NoneIsh = None TextIsh = str | bytes __doc__ = '\nArbitrary class declaring a method decorated by :func:`beartype.beartype`\nannotated by type hints accessible only as class variables.\n' __firstlineno__ = 263 __module__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __qualname__ = 'MinecraftEndTxtUnscrambler' beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscra...nit__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes pith_name = 'unscrambling' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes hint_prev = pith_name = 'unscrambling' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = str | bytes, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ______________________________ test_pep563_class _______________________________ def test_pep563_class() -> None: ''' Test class-scoped :pep:`563` support implemented in the :func:`beartype.beartype` decorator. ''' # Defer test-specific imports. > from beartype_test.a00_unit.data.pep.pep563.data_pep563_poem import ( MinecraftEndTxtUnscrambler) beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:219: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:263: in class MinecraftEndTxtUnscrambler(object): Callable = IntType = List = Union = _MINECRAFT_END_TXT_STANZAS = ('I see the player you mean.', '{player_name}?', 'Yes. Take care. It has reached a higher level now. It can read our t...player. It played well. It did not give up.', 'It is reading our thoughts as though they were words on a screen.', ...) __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/__pycache__/data_pep563_poem.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` **poetic data submodule.**\n\nThis submodule exercises :pep:`563` support implemented in th...decorated by that decorator. External unit tests are expected to import this\nsubmodule and then call that callable.\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3cccde5730> __name__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __package__ = 'beartype_test.a00_unit.data.pep.pep563' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.data_pep563_poem', loader=<_frozen_importlib_external.SourceFi...r/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = decorator = get_minecraft_end_txt = get_minecraft_end_txt_closure = get_minecraft_end_txt_closure_factory = get_minecraft_end_txt_pep604 = get_minecraft_end_txt_stanza = beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:274: in MinecraftEndTxtUnscrambler @beartype NoneIsh = None TextIsh = str | bytes __doc__ = '\nArbitrary class declaring a method decorated by :func:`beartype.beartype`\nannotated by type hints accessible only as class variables.\n' __firstlineno__ = 263 __module__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __qualname__ = 'MinecraftEndTxtUnscrambler' beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscra...nit__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes pith_name = 'unscrambling' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes hint_prev = pith_name = 'unscrambling' beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException('Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscra...nit__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.') func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.0029300510000211943 excinfo = func = . at 0x7f3cccd780f0> precise_start = 1505.475843622 precise_stop = 1505.478773673 reraise = (, ) result = None start = 1747420677.84045 stop = 1747420677.843381 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3cccdf2f90> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3cccdf2c30> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {} pyfuncitem = testargs = {} testfunction = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:142: in test_pep563_module from beartype_test.a00_unit.data.pep.pep563.data_pep563_poem import ( BeartypeDecorHintPep604Exception = IS_PYTHON_AT_LEAST_3_10 = True beartype = beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:263: in class MinecraftEndTxtUnscrambler(object): Callable = IntType = List = Union = _MINECRAFT_END_TXT_STANZAS = ('I see the player you mean.', '{player_name}?', 'Yes. Take care. It has reached a higher level now. It can read our t...player. It played well. It did not give up.', 'It is reading our thoughts as though they were words on a screen.', ...) __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/__pycache__/data_pep563_poem.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` **poetic data submodule.**\n\nThis submodule exercises :pep:`563` support implemented in th...decorated by that decorator. External unit tests are expected to import this\nsubmodule and then call that callable.\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3cccdf2810> __name__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __package__ = 'beartype_test.a00_unit.data.pep.pep563' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.data_pep563_poem', loader=<_frozen_importlib_external.SourceFi...r/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = decorator = get_minecraft_end_txt = get_minecraft_end_txt_closure = get_minecraft_end_txt_closure_factory = get_minecraft_end_txt_pep604 = get_minecraft_end_txt_stanza = beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:274: in MinecraftEndTxtUnscrambler @beartype NoneIsh = None TextIsh = str | bytes __doc__ = '\nArbitrary class declaring a method decorated by :func:`beartype.beartype`\nannotated by type hints accessible only as class variables.\n' __firstlineno__ = 263 __module__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __qualname__ = 'MinecraftEndTxtUnscrambler' beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscra...nit__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes pith_name = 'unscrambling' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes hint_prev = pith_name = 'unscrambling' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = str | bytes, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ________________________ test_pep563_closure_nonnested _________________________ def test_pep563_closure_nonnested() -> None: ''' Test non-nested closure-scoped :pep:`563` support implemented in the :func:`beartype.beartype` decorator. ''' # Defer test-specific imports. > from beartype_test.a00_unit.data.pep.pep563.data_pep563_poem import ( get_minecraft_end_txt_closure) beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:247: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:263: in class MinecraftEndTxtUnscrambler(object): Callable = IntType = List = Union = _MINECRAFT_END_TXT_STANZAS = ('I see the player you mean.', '{player_name}?', 'Yes. Take care. It has reached a higher level now. It can read our t...player. It played well. It did not give up.', 'It is reading our thoughts as though they were words on a screen.', ...) __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/__pycache__/data_pep563_poem.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` **poetic data submodule.**\n\nThis submodule exercises :pep:`563` support implemented in th...decorated by that decorator. External unit tests are expected to import this\nsubmodule and then call that callable.\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3cccde7410> __name__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __package__ = 'beartype_test.a00_unit.data.pep.pep563' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.data_pep563_poem', loader=<_frozen_importlib_external.SourceFi...r/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = decorator = get_minecraft_end_txt = get_minecraft_end_txt_closure = get_minecraft_end_txt_closure_factory = get_minecraft_end_txt_pep604 = get_minecraft_end_txt_stanza = beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:274: in MinecraftEndTxtUnscrambler @beartype NoneIsh = None TextIsh = str | bytes __doc__ = '\nArbitrary class declaring a method decorated by :func:`beartype.beartype`\nannotated by type hints accessible only as class variables.\n' __firstlineno__ = 263 __module__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __qualname__ = 'MinecraftEndTxtUnscrambler' beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscra...nit__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes pith_name = 'unscrambling' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes hint_prev = pith_name = 'unscrambling' beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException('Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscra...nit__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.') func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.002742128999898341 excinfo = func = . at 0x7f3cccd79d20> precise_start = 1505.50396292 precise_stop = 1505.506705049 reraise = (, ) result = None start = 1747420677.8685694 stop = 1747420677.871312 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3cccde6cf0> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3cccde5bb0> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {} pyfuncitem = testargs = {} testfunction = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:219: in test_pep563_class from beartype_test.a00_unit.data.pep.pep563.data_pep563_poem import ( beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:263: in class MinecraftEndTxtUnscrambler(object): Callable = IntType = List = Union = _MINECRAFT_END_TXT_STANZAS = ('I see the player you mean.', '{player_name}?', 'Yes. Take care. It has reached a higher level now. It can read our t...player. It played well. It did not give up.', 'It is reading our thoughts as though they were words on a screen.', ...) __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/__pycache__/data_pep563_poem.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` **poetic data submodule.**\n\nThis submodule exercises :pep:`563` support implemented in th...decorated by that decorator. External unit tests are expected to import this\nsubmodule and then call that callable.\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3cccde5730> __name__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __package__ = 'beartype_test.a00_unit.data.pep.pep563' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.data_pep563_poem', loader=<_frozen_importlib_external.SourceFi...r/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = decorator = get_minecraft_end_txt = get_minecraft_end_txt_closure = get_minecraft_end_txt_closure_factory = get_minecraft_end_txt_pep604 = get_minecraft_end_txt_stanza = beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:274: in MinecraftEndTxtUnscrambler @beartype NoneIsh = None TextIsh = str | bytes __doc__ = '\nArbitrary class declaring a method decorated by :func:`beartype.beartype`\nannotated by type hints accessible only as class variables.\n' __firstlineno__ = 263 __module__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __qualname__ = 'MinecraftEndTxtUnscrambler' beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscra...nit__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes pith_name = 'unscrambling' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes hint_prev = pith_name = 'unscrambling' beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException('Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscra...nit__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.') func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.0029300510000211943 excinfo = func = . at 0x7f3cccd780f0> precise_start = 1505.475843622 precise_stop = 1505.478773673 reraise = (, ) result = None start = 1747420677.84045 stop = 1747420677.843381 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3cccdf2f90> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3cccdf2c30> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {} pyfuncitem = testargs = {} testfunction = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:142: in test_pep563_module from beartype_test.a00_unit.data.pep.pep563.data_pep563_poem import ( BeartypeDecorHintPep604Exception = IS_PYTHON_AT_LEAST_3_10 = True beartype = beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:263: in class MinecraftEndTxtUnscrambler(object): Callable = IntType = List = Union = _MINECRAFT_END_TXT_STANZAS = ('I see the player you mean.', '{player_name}?', 'Yes. Take care. It has reached a higher level now. It can read our t...player. It played well. It did not give up.', 'It is reading our thoughts as though they were words on a screen.', ...) __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/__pycache__/data_pep563_poem.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` **poetic data submodule.**\n\nThis submodule exercises :pep:`563` support implemented in th...decorated by that decorator. External unit tests are expected to import this\nsubmodule and then call that callable.\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3cccdf2810> __name__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __package__ = 'beartype_test.a00_unit.data.pep.pep563' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.data_pep563_poem', loader=<_frozen_importlib_external.SourceFi...r/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = decorator = get_minecraft_end_txt = get_minecraft_end_txt_closure = get_minecraft_end_txt_closure_factory = get_minecraft_end_txt_pep604 = get_minecraft_end_txt_stanza = beartype_test/a00_unit/data/pep/pep563/data_pep563_poem.py:274: in MinecraftEndTxtUnscrambler @beartype NoneIsh = None TextIsh = str | bytes __doc__ = '\nArbitrary class declaring a method decorated by :func:`beartype.beartype`\nannotated by type hints accessible only as class variables.\n' __firstlineno__ = 263 __module__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_poem' __qualname__ = 'MinecraftEndTxtUnscrambler' beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscra...nit__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'unscrambling', ) arg_name = 'unscrambling' bear_call = func_wrapper_code = '' hint = None hint_insane = 'TextIsh' is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes pith_name = 'unscrambling' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes hint_prev = pith_name = 'unscrambling' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (str | bytes, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = str | bytes, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Method beartype_test.a00_unit.data.pep.pep563.data_pep563_poem.MinecraftEndTxtUnscrambler.__init__() parameter "unscrambling" type hint str | bytes either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = str | bytes is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ______________________ test_pep563_hint_pep484_namedtuple ______________________ def test_pep563_hint_pep484_namedtuple() -> None: ''' Test module-scoped :pep:`563` support implemented in the :func:`beartype.beartype` decorator with respect to :pep:`484`-compliant :obj:`typing.NamedTuple` subclasses decorated by this decorator. ''' # .....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.roar import BeartypeCallHintParamViolation > from beartype_test.a00_unit.data.pep.pep563.pep484.data_pep563_pep484 import ( LeadOnlyTo) BeartypeCallHintParamViolation = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:341: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype_test/a00_unit/data/pep/pep563/pep484/data_pep563_pep484.py:20: in @beartype NamedTuple = __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/pep484/__pycache__/data_pep563_pep484.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` + :pep:`484` **integration data submodule.**\n\nThis submodule exercises edge cases when co...import annotations`` pragma with :pep:`484`-compliant type\nhints known to interact problematically with :pep:`563`.\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/pep484/data_pep563_pep484.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3cccd1c470> __name__ = 'beartype_test.a00_unit.data.pep.pep563.pep484.data_pep563_pep484' __package__ = 'beartype_test.a00_unit.data.pep.pep563.pep484' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.pep484.data_pep563_pep484', loader=<_frozen_importlib_external...UILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/pep484/data_pep563_pep484.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:132: in _beartype_object_fatal beartype_type(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decortype.py:265: in beartype_type attr_value_beartyped = beartype_object( attr_name = '__new__' attr_value = )> beartype_object = cls = cls_sizeof_old = cls_stack = (,) conf = BeartypeConf() is_attr_beartypeable = True is_cls_beartyped = None beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {'cls_stack': (,)} obj = )> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} obj = )> beartype/_decor/_decornontype.py:117: in beartype_nontype return beartype_descriptor_decorator_builtin(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} obj = )> obj_type = beartype/_decor/_decornontype.py:513: in beartype_descriptor_decorator_builtin func_checked = beartype_func(descriptor_wrappee, **kwargs) # type: ignore[union-attr] descriptor = )> descriptor_type = descriptor_wrappee = kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {'cls_stack': (,)} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'a_black_and_watery_depth', ) arg_name = 'a_black_and_watery_depth' bear_call = func_wrapper_code = '' hint = None hint_insane = ForwardRef('int') is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function namedtuple_LeadOnlyTo.LeadOnlyTo.__new__() parameter "a_black_and_watery_depth" type hint ForwardRef(\'int\') either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function namedtuple_LeadOnlyTo.LeadOnlyTo.__new__() parameter "a_black_and_watery_depth" type hint ForwardRef(\'int\') either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function namedtuple_LeadOnlyTo.LeadOnlyTo.__new__() parameter "a_black_and_watery_depth" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'a_black_and_watery_depth', ) arg_name = 'a_black_and_watery_depth' bear_call = func_wrapper_code = '' hint = None hint_insane = ForwardRef('int') is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('int') pith_name = 'a_black_and_watery_depth' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = (,) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('int') hint_prev = pith_name = 'a_black_and_watery_depth' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (ForwardRef('int'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('int'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (ForwardRef('int'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('int'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('int') hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('int') kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('int') _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = ForwardRef('int'), is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function namedtuple_LeadOnlyTo.LeadOnlyTo.__new__() parameter "a_black_and_watery_depth" type hint ForwardRef('int') either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('int') is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException _______________________ test_pep563_hint_pep484_noreturn _______________________ def test_pep563_hint_pep484_noreturn() -> None: ''' Test module-scoped :pep:`563` support implemented in the :func:`beartype.beartype` decorator with respect to callables with returns annotated by the :pep:`484`-compliant :obj:`typing.NoReturn` type hint. ''' # Defer test-specific imports. > from beartype_test.a00_unit.data.pep.pep563.data_pep563_club import ( HeWouldLingerLong, to_love_and_wonder, ) beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:366: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype_test/a00_unit/data/pep/pep563/data_pep563_club.py:64: in @beartype CLING = 'our love is strong' COLORS = 'red, gold, and green' DREAMS = 'Loving would be easy' HeWouldLingerLong = Karma = 'you come and go' NoReturn = typing.NoReturn Union = __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/__pycache__/data_pep563_club.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` **cultural data submodule.**\n\nThis submodule exercises edge-case :pep:`563` support imple...t.data.pep.pep563.data_pep563_poem`\nsubmodule.\n\n.. _issue #49:\n https://github.com/beartype/beartype/issues/49\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_club.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3cccd19310> __name__ = 'beartype_test.a00_unit.data.pep.pep563.data_pep563_club' __package__ = 'beartype_test.a00_unit.data.pep.pep563' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.data_pep563_club', loader=<_frozen_importlib_external.SourceFi...r/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/data_pep563_club.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:132: in _beartype_object_fatal beartype_type(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decortype.py:265: in beartype_type attr_value_beartyped = beartype_object( attr_name = 'when_we_cling' attr_value = )> attr_value_beartyped = )> beartype_object = cls = cls_sizeof_old = cls_stack = (,) conf = BeartypeConf() is_attr_beartypeable = True is_cls_beartyped = None beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {'cls_stack': (,)} obj = )> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} obj = )> beartype/_decor/_decornontype.py:117: in beartype_nontype return beartype_descriptor_decorator_builtin(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} obj = )> obj_type = beartype/_decor/_decornontype.py:513: in beartype_descriptor_decorator_builtin func_checked = beartype_func(descriptor_wrappee, **kwargs) # type: ignore[union-attr] descriptor = )> descriptor_type = descriptor_wrappee = kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {'cls_stack': (,)} beartype/_decor/wrap/wrapmain.py:122: in generate_code code_check_return = _code_check_return(bear_call) bear_call = code_check_params = '' beartype/_decor/wrap/_wrapreturn.py:237: in code_check_return reraise_exception_placeholder( bear_call = func_scope = None func_wrapper_code = '' hint = 'Union[Chameleon, complex]' hint_insane = 'Union[Chameleon, complex]' warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_c...t.data.pep.pep563.data_pep563_club.Chameleon | complex either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_cling() return type hint beartype_...it.data.pep.pep563.data_pep563_club.Chameleon | complex either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_cling() return ' beartype/_decor/wrap/_wrapreturn.py:122: in code_check_return hint = sanify_hint_root_func( bear_call = func_scope = None func_wrapper_code = '' hint = 'Union[Chameleon, complex]' hint_insane = 'Union[Chameleon, complex]' warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex pith_name = 'return' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = (,) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex hint_prev = pith_name = 'return' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon.when_we_cling() return type hint beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.data_pep563_club.Chameleon | complex is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ___________________________ test_pep563_hint_pep604 ____________________________ @skip_if_python_version_less_than('3.10.0') def test_pep563_hint_pep604() -> None: ''' Test module-scoped :pep:`563` support implemented in the :func:`beartype.beartype` decorator with respect to :pep:`604`-compliant unions annotating :pep:`557`-compliant :obj:`dataclasses.dataclass`-decorated subclasses also decorated by this decorator if the active Python interpreter targets Python >= 3.10 and thus supports :pep:`604`. ''' # .....................{ IMPORTS }.................... # Defer test-specific imports. from beartype.roar import BeartypeCallHintParamViolation > from beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604 import ( FrameMoreAttuned, WithVoiceFarSweeter, ) BeartypeCallHintParamViolation = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:393: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype_test/a00_unit/data/pep/pep563/pep604/data_pep563_pep604.py:50: in @beartype FrameMoreAttuned = SpiritMoreVast = __builtins__ = __cached__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/pep604/__pycache__/data_pep563_pep604.cpython-314.pyc' __doc__ = '\nProject-wide :pep:`563` + :pep:`604` **integration data submodule.**\n\nThis submodule exercises edge cases when co...e__ import annotations`` pragma with :pep:`604`-compliant unions\nknown to interact problematically with :pep:`563`.\n' __file__ = '/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/pep604/data_pep563_pep604.py' __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7f3ccc353b90> __name__ = 'beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604' __package__ = 'beartype_test.a00_unit.data.pep.pep563.pep604' __spec__ = ModuleSpec(name='beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604', loader=<_frozen_importlib_external...UILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/pep/pep563/pep604/data_pep563_pep604.py') annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) beartype = dataclass = beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:132: in _beartype_object_fatal beartype_type(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decortype.py:265: in beartype_type attr_value_beartyped = beartype_object( attr_name = '__init__' attr_value = attr_value_beartyped = beartype_object = cls = cls_sizeof_old = cls_stack = (,) conf = BeartypeConf() is_attr_beartypeable = True is_cls_beartyped = None beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {'cls_stack': (,)} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (,), 'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {'cls_stack': (,)} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'than_thy_dying_notes', ) arg_name = 'than_thy_dying_notes' bear_call = func_wrapper_code = '' hint = None hint_insane = 'SpiritMoreVastOrFrameMoreAttuned | None' is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Method beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.WithVoiceFar..._pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Method beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.WithVoiceFarSweeter.__init__() parameter "tha...a_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'method beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.WithVoiceFarSweeter.__init__() parameter "than_thy_dying_notes" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 1 arg_kind = arg_meta = (, 'than_thy_dying_notes', ) arg_name = 'than_thy_dying_notes' bear_call = func_wrapper_code = '' hint = None hint_insane = 'SpiritMoreVastOrFrameMoreAttuned | None' is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None pith_name = 'than_thy_dying_notes' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = (,) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None hint_prev = pith_name = 'than_thy_dying_notes' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Method beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.WithVoiceFarSweeter.__init__() parameter "than_thy_dying_notes" type hint beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = beartype_test.a00_unit.data.pep.pep563.pep604.data_pep563_pep604.SpiritMoreVastOrFrameMoreAttuned | None is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ______________________________ test_decor_pep673 _______________________________ @skip_if_python_version_less_than('3.11.0') def test_decor_pep673() -> None: ''' Test :pep:`673` support implemented in the :func:`beartype.beartype` decorator if the active Python interpreter targets Python >= 3.11 *or* skip otherwise. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype import beartype from beartype.door import ( die_if_unbearable, is_bearable, ) from beartype.roar import ( BeartypeCallHintReturnViolation, BeartypeDecorHintPep673Exception, ) from beartype.typing import ( List, Self, ) from pytest import raises # ....................{ CLASSES }.................... > @beartype BeartypeCallHintReturnViolation = BeartypeDecorHintPep673Exception = List = Self = typing.Self beartype = die_if_unbearable = is_bearable = raises = beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep673.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .GoodClassIsGood'> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .GoodClassIsGood'> beartype/_decor/decorcore.py:132: in _beartype_object_fatal beartype_type(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .GoodClassIsGood'> beartype/_decor/_decortype.py:265: in beartype_type attr_value_beartyped = beartype_object( attr_name = '__add__' attr_value = .GoodClassIsGood.__add__ at 0x7f3cccd154e0> beartype_object = cls = .GoodClassIsGood'> cls_sizeof_old = cls_stack = (.GoodClassIsGood'>,) conf = BeartypeConf() is_attr_beartypeable = True is_cls_beartyped = None beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {'cls_stack': (.GoodClassIsGood'>,)} obj = .GoodClassIsGood.__add__ at 0x7f3cccd154e0> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (.GoodClassIsGood'>,), 'conf': BeartypeConf()} obj = .GoodClassIsGood.__add__ at 0x7f3cccd154e0> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'cls_stack': (.GoodClassIsGood'>,), 'conf': BeartypeConf()} obj = .GoodClassIsGood.__add__ at 0x7f3cccd154e0> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .GoodClassIsGood.__add__ at 0x7f3cccd154e0> kwargs = {'cls_stack': (.GoodClassIsGood'>,)} beartype/_decor/wrap/wrapmain.py:122: in generate_code code_check_return = _code_check_return(bear_call) bear_call = code_check_params = '\n # Localize the number of passed positional arguments for efficiency.\n __beartype_args_len = len(args)\n ...type_pith_0,\n cls_stack=__beartype_cls_stack,\n )\n\n raise __beartype_violation' beartype/_decor/wrap/_wrapreturn.py:237: in code_check_return reraise_exception_placeholder( bear_call = func_scope = None func_wrapper_code = '' hint = 'Self' hint_insane = 'Self' warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Method a90_pep.test_decorpep673.test_decor_pep673.GoodClassIsGood.__add__() return type hint typing.Self | NotImplementedType either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Method a90_pep.test_decorpep673.test_decor_pep673.GoodClassIsGood.__add__() return type hint typing.Self | NotImplementedType either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'method a90_pep.test_decorpep673.test_decor_pep673.GoodClassIsGood.__add__() return ' beartype/_decor/wrap/_wrapreturn.py:122: in code_check_return hint = sanify_hint_root_func( bear_call = func_scope = None func_wrapper_code = '' hint = 'Self' hint_insane = 'Self' warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Self | NotImplementedType pith_name = 'return' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = (.GoodClassIsGood'>,) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Self | NotImplementedType hint_prev = pith_name = 'return' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (typing.Self | NotImplementedType, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (typing.Self | NotImplementedType, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (typing.Self | NotImplementedType, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (typing.Self | NotImplementedType, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Self | NotImplementedType hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Self | NotImplementedType kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Self | NotImplementedType _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = typing.Self | NotImplementedType, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Method a90_pep.test_decorpep673.test_decor_pep673.GoodClassIsGood.__add__() return type hint typing.Self | NotImplementedType either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Self | NotImplementedType is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ___________________________ test_decor_arg_kind_flex ___________________________ def test_decor_arg_kind_flex() -> None: ''' Test the :func:`beartype.beartype` decorator on a callable passed two **flexible parameters** (i.e., non-variadic positional or keyword parameters) annotated with PEP-compliant type hints. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype import beartype from typing import Union # ....................{ CALLABLES }.................... > @beartype Union = beartype = beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .special_plan at 0x7f3cccd15fe0> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .special_plan at 0x7f3cccd15fe0> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .special_plan at 0x7f3cccd15fe0> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .special_plan at 0x7f3cccd15fe0> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .special_plan at 0x7f3cccd15fe0> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'finally_gone', ) arg_name = 'finally_gone' bear_call = func_wrapper_code = '' hint = None hint_insane = list | str is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function test_codeargkind.test_decor_arg_kind_flex.special_plan() parameter "finally_gone" type hint list | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function test_codeargkind.test_decor_arg_kind_flex.special_plan() parameter "finally_gone" type hint list | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function test_codeargkind.test_decor_arg_kind_flex.special_plan() parameter "finally_gone" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'finally_gone', ) arg_name = 'finally_gone' bear_call = func_wrapper_code = '' hint = None hint_insane = list | str is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = list | str pith_name = 'finally_gone' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = list | str hint_prev = pith_name = 'finally_gone' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (list | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (list | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (list | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (list | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = list | str hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = list | str kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = list | str _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = list | str, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function test_codeargkind.test_decor_arg_kind_flex.special_plan() parameter "finally_gone" type hint list | str either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = list | str is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ________________________ test_decor_arg_kind_flex_varkw ________________________ def test_decor_arg_kind_flex_varkw() -> None: ''' Test the :func:`beartype.beartype` decorator on a callable passed a mandatory flexible parameter, an optional flexible parameter, and a variadic keyword parameter, all annotated with PEP-compliant type hints. This test exercises a recent failure in our pre-0.10.0 release cycle: https://github.com/beartype/beartype/issues/78 ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype import beartype from typing import Union # ....................{ CALLABLES }.................... > @beartype Union = beartype = beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py:194: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .one_needs_to_have_a_plan at 0x7f3cccd16610> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .one_needs_to_have_a_plan at 0x7f3cccd16610> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .one_needs_to_have_a_plan at 0x7f3cccd16610> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .one_needs_to_have_a_plan at 0x7f3cccd16610> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .one_needs_to_have_a_plan at 0x7f3cccd16610> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'someone_said_who_was_turned', ) arg_name = 'someone_said_who_was_turned' bear_call = func_wrapper_code = '' hint = None hint_insane = bool | str is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function test_codeargkind.test_decor_arg_kind_flex_varkw.one_needs_to_have_a_plan() ...ter "someone_said_who_was_turned" type hint bool | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function test_codeargkind.test_decor_arg_kind_flex_varkw.one_needs_to_have_a_plan() parameter "someone_said_who_was_turned" type hint bool | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function test_codeargkind.test_decor_arg_kind_flex_varkw.one_needs_to_have_a_plan() parameter "someone_said_who_was_turned" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'someone_said_who_was_turned', ) arg_name = 'someone_said_who_was_turned' bear_call = func_wrapper_code = '' hint = None hint_insane = bool | str is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | str pith_name = 'someone_said_who_was_turned' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | str hint_prev = pith_name = 'someone_said_who_was_turned' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (bool | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (bool | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (bool | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (bool | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | str hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | str kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | str _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = bool | str, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function test_codeargkind.test_decor_arg_kind_flex_varkw.one_needs_to_have_a_plan() parameter "someone_said_who_was_turned" type hint bool | str either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bool | str is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException _______________________ test_decor_arg_kind_kwonly_mixed _______________________ def test_decor_arg_kind_kwonly_mixed() -> None: ''' Test the :func:`beartype.beartype` decorator on a callable passed one optional keyword-only parameter and one mandatory keyword-only parameter (in that non-standard and quite counter-intuitive order), each annotated with PEP-compliant type hints. ''' # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeCallHintViolation from beartype.typing import Union from beartype_test._util.pytroar import raises_uncached # Decorated callable to be exercised. > @beartype BeartypeCallHintViolation = Union = beartype = raises_uncached = beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py:268: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .my_own_special_plan at 0x7f3cccd16f00> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .my_own_special_plan at 0x7f3cccd16f00> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .my_own_special_plan at 0x7f3cccd16f00> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .my_own_special_plan at 0x7f3cccd16f00> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .my_own_special_plan at 0x7f3cccd16f00> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = 'and yet I did not wonder' arg_index = 0 arg_kind = arg_meta = (, 'i_listened_to_these_words', 'and yet I did not wonder') arg_name = 'i_listened_to_these_words' bear_call = func_wrapper_code = '' hint = None hint_insane = dict | str is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" type hint dict | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" type hint dict | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = 'and yet I did not wonder' arg_index = 0 arg_kind = arg_meta = (, 'i_listened_to_these_words', 'and yet I did not wonder') arg_name = 'i_listened_to_these_words' bear_call = func_wrapper_code = '' hint = None hint_insane = dict | str is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str pith_name = 'i_listened_to_these_words' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str hint_prev = pith_name = 'i_listened_to_these_words' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (dict | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (dict | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (dict | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (dict | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = dict | str, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" type hint dict | str either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ____________________ test_decor_arg_kind_flex_varpos_kwonly ____________________ def test_decor_arg_kind_flex_varpos_kwonly() -> None: ''' Test the :func:`beartype.beartype` decorator on a callable passed a flexible parameter, a variadic positional parameter, and a keyword-only parameter, all annotated with PEP-compliant type hints. ''' # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeCallHintViolation from beartype.typing import Union from beartype_test._util.pytroar import raises_uncached # Decorated callable to be exercised. > @beartype BeartypeCallHintViolation = Union = beartype = raises_uncached = beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .tongue_tasting_its_savour at 0x7f3cccd17270> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .tongue_tasting_its_savour at 0x7f3cccd17270> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .tongue_tasting_its_savour at 0x7f3cccd17270> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .tongue_tasting_its_savour at 0x7f3cccd17270> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .tongue_tasting_its_savour at 0x7f3cccd17270> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'turned_away_into_the_shadows', ) arg_name = 'turned_away_into_the_shadows' bear_call = func_wrapper_code = '' hint = None hint_insane = dict | str is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" type hint dict | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" type hint dict | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function test_codeargkind.test_decor_arg_kind_flex_varpos_kwonly.tongue_tasting_its_savour() parameter "turned_away_into_the_shadows" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'turned_away_into_the_shadows', ) arg_name = 'turned_away_into_the_shadows' bear_call = func_wrapper_code = '' hint = None hint_insane = dict | str is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str pith_name = 'turned_away_into_the_shadows' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str hint_prev = pith_name = 'turned_away_into_the_shadows' beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (dict | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (dict | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException('Function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" type hint dict | str either PEP-noncompliant or currently unsupported by @beartype.') func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.00032190499996431754 excinfo = func = . at 0x7f3cccd16fb0> precise_start = 1506.008160789 precise_stop = 1506.008482694 reraise = (, ) result = None start = 1747420678.3727672 stop = 1747420678.3730898 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3cccd83d10> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3cccd83fb0> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {} pyfuncitem = testargs = {} testfunction = beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py:268: in test_decor_arg_kind_kwonly_mixed @beartype BeartypeCallHintViolation = Union = beartype = raises_uncached = beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .my_own_special_plan at 0x7f3cccd16f00> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .my_own_special_plan at 0x7f3cccd16f00> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .my_own_special_plan at 0x7f3cccd16f00> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .my_own_special_plan at 0x7f3cccd16f00> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .my_own_special_plan at 0x7f3cccd16f00> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = 'and yet I did not wonder' arg_index = 0 arg_kind = arg_meta = (, 'i_listened_to_these_words', 'and yet I did not wonder') arg_name = 'i_listened_to_these_words' bear_call = func_wrapper_code = '' hint = None hint_insane = dict | str is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" type hint dict | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" type hint dict | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = 'and yet I did not wonder' arg_index = 0 arg_kind = arg_meta = (, 'i_listened_to_these_words', 'and yet I did not wonder') arg_name = 'i_listened_to_these_words' bear_call = func_wrapper_code = '' hint = None hint_insane = dict | str is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str pith_name = 'i_listened_to_these_words' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str hint_prev = pith_name = 'i_listened_to_these_words' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (dict | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (dict | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (dict | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (dict | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = dict | str, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function test_codeargkind.test_decor_arg_kind_kwonly_mixed.my_own_special_plan() parameter "i_listened_to_these_words" type hint dict | str either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = dict | str is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException _________________________ test_decor_arg_kind_posonly __________________________ def test_decor_arg_kind_posonly() -> None: ''' Test the :func:`beartype.beartype` decorator on a callable passed two positional-only parameters annotated with PEP-compliant type hints. ''' # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeCallHintViolation from beartype_test.a00_unit.data.pep.data_pep570 import pep570_posonly from beartype_test._util.pytroar import raises_uncached # Wrapper function type-checking this unchecked function. > the_taste_and_the_hunger = beartype(pep570_posonly) BeartypeCallHintViolation = beartype = pep570_posonly = raises_uncached = beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py:362: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'now_take_away_that_flesh', ) arg_name = 'now_take_away_that_flesh' bear_call = func_wrapper_code = '' hint = None hint_insane = bytearray | str is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" type hint bytearray | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" type hint bytearray | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'now_take_away_that_flesh', ) arg_name = 'now_take_away_that_flesh' bear_call = func_wrapper_code = '' hint = None hint_insane = bytearray | str is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str pith_name = 'now_take_away_that_flesh' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str hint_prev = pith_name = 'now_take_away_that_flesh' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (bytearray | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (bytearray | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (bytearray | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (bytearray | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = bytearray | str, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" type hint bytearray | str either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ________________ test_decor_arg_kind_posonly_flex_varpos_kwonly ________________ def test_decor_arg_kind_posonly_flex_varpos_kwonly() -> None: ''' Test the :func:`beartype.beartype` decorator on a callable passed a mandatory positional-only parameter, optional positional-only parameter, flexible parameter, variadic positional parameter, and keyword-only parameter, all annotated with PEP-compliant type hints. ''' # Defer test-specific imports. from beartype import beartype from beartype_test.a00_unit.data.pep.data_pep570 import ( pep570_posonly_flex_varpos_kwonly) # Wrapper function type-checking this unchecked function. > shining_brainless_beacon = beartype(pep570_posonly_flex_varpos_kwonly) beartype = pep570_posonly_flex_varpos_kwonly = beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py:389: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'all_of_your_nightmares', ) arg_name = 'all_of_your_nightmares' bear_call = func_wrapper_code = '' hint = None hint_insane = bytearray | str is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" type hint bytearray | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" type hint bytearray | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly_flex_varpos_kwonly() parameter "all_of_your_nightmares" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'all_of_your_nightmares', ) arg_name = 'all_of_your_nightmares' bear_call = func_wrapper_code = '' hint = None hint_insane = bytearray | str is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str pith_name = 'all_of_your_nightmares' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str hint_prev = pith_name = 'all_of_your_nightmares' beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (bytearray | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (bytearray | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException('Function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" type hint bytearray | str either PEP-noncompliant or currently unsupported by @beartype.') func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.0010533320000831736 excinfo = func = . at 0x7f3cccd17a00> precise_start = 1506.150319229 precise_stop = 1506.151372561 reraise = (, ) result = None start = 1747420678.5149255 stop = 1747420678.5159795 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3ccce0bad0> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3ccce0bb30> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {} pyfuncitem = testargs = {} testfunction = beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py:362: in test_decor_arg_kind_posonly the_taste_and_the_hunger = beartype(pep570_posonly) BeartypeCallHintViolation = beartype = pep570_posonly = raises_uncached = beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'now_take_away_that_flesh', ) arg_name = 'now_take_away_that_flesh' bear_call = func_wrapper_code = '' hint = None hint_insane = bytearray | str is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" type hint bytearray | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" type hint bytearray | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'now_take_away_that_flesh', ) arg_name = 'now_take_away_that_flesh' bear_call = func_wrapper_code = '' hint = None hint_insane = bytearray | str is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str pith_name = 'now_take_away_that_flesh' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str hint_prev = pith_name = 'now_take_away_that_flesh' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (bytearray | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (bytearray | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (bytearray | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (bytearray | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = bytearray | str, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function beartype_test.a00_unit.data.pep.data_pep570.pep570_posonly() parameter "now_take_away_that_flesh" type hint bytearray | str either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = bytearray | str is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ________________________ test_decor_noop_unhinted_async ________________________ args = (), kwargs = {} @wraps(test_func) def test_func_synchronous(*args, **kwargs): ''' Closure synchronously calling the current asynchronous test coroutine function under a new event loop uniquely isolated to this coroutine. ''' # With a warning context manager... with catch_warnings(): # Ignore *ALL* deprecating warnings emitted by the # get_event_loop() function called below. For unknown reasons, # CPython 3.11 devs thought that emitting a "There is no current # event loop" warning (erroneously classified as a # "deprecation") was a wonderful idea. "asyncio" is arduous # enough to portably support as it is. Work with me here, guys! simplefilter('ignore', DeprecationWarning) # Current event loop for the current threading context if any # *OR* create a new event loop otherwise. Note that the # higher-level asyncio.get_event_loop() getter is intentionally # *NOT* called here, as Python 3.10 broke backward compatibility # by refactoring that getter to be an alias for the wildly # different asyncio.get_running_loop() getter, which *MUST* be # called only from within either an asynchronous callable or # running event loop. In either case, asyncio.get_running_loop() # and thus asyncio.get_event_loop() is useless in this context. # Instead, we call the lower-level # get_event_loop_policy().get_event_loop() getter -- which # asyncio.get_event_loop() used to wrap. *facepalm* # # This getter should ideally return "None" rather than creating # a new event loop without our permission if no loop has been # set. This getter instead does the latter, implying that this # closure will typically instantiate two event loops per # asynchronous coroutine test function: # * The first useless event loop implicitly created by this # get_event_loop() call. # * The second useful event loop explicitly created by the # subsequent new_event_loop() call. # # Since there exists *NO* other means of querying the current # event loop, we reluctantly bite the bullet and pay the piper. > event_loop_old = get_event_loop_policy().get_event_loop() args = () kwargs = {} test_func = beartype_test/conftest.py:128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. self = /usr/lib64/python3.14/asyncio/events.py:718: RuntimeError ______________________ test_decor_noop_redecorated_async _______________________ args = (), kwargs = {} @wraps(test_func) def test_func_synchronous(*args, **kwargs): ''' Closure synchronously calling the current asynchronous test coroutine function under a new event loop uniquely isolated to this coroutine. ''' # With a warning context manager... with catch_warnings(): # Ignore *ALL* deprecating warnings emitted by the # get_event_loop() function called below. For unknown reasons, # CPython 3.11 devs thought that emitting a "There is no current # event loop" warning (erroneously classified as a # "deprecation") was a wonderful idea. "asyncio" is arduous # enough to portably support as it is. Work with me here, guys! simplefilter('ignore', DeprecationWarning) # Current event loop for the current threading context if any # *OR* create a new event loop otherwise. Note that the # higher-level asyncio.get_event_loop() getter is intentionally # *NOT* called here, as Python 3.10 broke backward compatibility # by refactoring that getter to be an alias for the wildly # different asyncio.get_running_loop() getter, which *MUST* be # called only from within either an asynchronous callable or # running event loop. In either case, asyncio.get_running_loop() # and thus asyncio.get_event_loop() is useless in this context. # Instead, we call the lower-level # get_event_loop_policy().get_event_loop() getter -- which # asyncio.get_event_loop() used to wrap. *facepalm* # # This getter should ideally return "None" rather than creating # a new event loop without our permission if no loop has been # set. This getter instead does the latter, implying that this # closure will typically instantiate two event loops per # asynchronous coroutine test function: # * The first useless event loop implicitly created by this # get_event_loop() call. # * The second useful event loop explicitly created by the # subsequent new_event_loop() call. # # Since there exists *NO* other means of querying the current # event loop, we reluctantly bite the bullet and pay the piper. > event_loop_old = get_event_loop_policy().get_event_loop() args = () kwargs = {} test_func = beartype_test/conftest.py:128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. self = /usr/lib64/python3.14/asyncio/events.py:718: RuntimeError _____________________ test_decor_noop_hint_ignorable_iter ______________________ hints_ignorable = frozenset({, typing.Annotated[object, ], typing.Annotated[typing.Any | ...est.a00_unit.data.hint.pep.proposal.data_pep484.TotallyNotObject, typing.Annotated[object, ] | None, ...}) def test_decor_noop_hint_ignorable_iter(hints_ignorable) -> None: ''' Test that the :func:`beartype.beartype` decorator efficiently reduces to a noop on callables annotated with only ignorable type hints in a manner generically exercising non-trivial edge cases with iteration. Parameters ---------- hints_ignorable : frozenset Frozen set of ignorable PEP-agnostic type hints. ''' # Defer test-specific imports. from beartype import beartype # Assert that @beartype efficiently reduces to a noop when passed only type # hints known to be ignorable. for hint_ignorable in hints_ignorable: def revenant_scout_titan( antecedent: hint_ignorable, preposition: hint_ignorable, succedent: hint_ignorable, ) -> hint_ignorable: return antecedent + preposition + succedent # Decorated annotated functions with ignorable type hints. > revenant_scout_titan_typed = beartype(revenant_scout_titan) beartype = hint_ignorable = typing.Annotated[typing.Any | float | str, ] hints_ignorable = frozenset({, typing.Annotated[object, ], typing.Annotated[typing.Any | ...est.a00_unit.data.hint.pep.proposal.data_pep484.TotallyNotObject, typing.Annotated[object, ] | None, ...}) revenant_scout_titan = .revenant_scout_titan at 0x7f3ccc65d900> revenant_scout_titan_typed = .revenant_scout_titan at 0x7f3ccc65d2d0> beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:77: in beartype return beartype_object(obj, conf) conf = BeartypeConf() obj = .revenant_scout_titan at 0x7f3ccc65d900> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .revenant_scout_titan at 0x7f3ccc65d900> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .revenant_scout_titan at 0x7f3ccc65d900> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .revenant_scout_titan at 0x7f3ccc65d900> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .revenant_scout_titan at 0x7f3ccc65d900> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'antecedent', ) arg_name = 'antecedent' bear_call = func_wrapper_code = '' hint = None hint_insane = typing.Annotated[typing.Any | float | str, ] is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function test_codenoop.test_decor_noop_hint_ignorable_iter.revenant_scout_titan() parameter "antecedent" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'antecedent', ) arg_name = 'antecedent' bear_call = func_wrapper_code = '' hint = None hint_insane = typing.Annotated[typing.Any | float | str, ] is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Annotated[typing.Any | float | str, ] pith_name = 'antecedent' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str hint_prev = typing.Any | float | str pith_name = 'antecedent' beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (typing.Any | float | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (typing.Any | float | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.') func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.00037130800001250464 excinfo = func = . at 0x7f3cccf69fe0> precise_start = 1504.760705203 precise_stop = 1504.761076511 reraise = (, ) result = None start = 1747420677.1253114 stop = 1747420677.1256838 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3ccc84f290> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3ccc84ec30> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {'hints_ignorable': frozenset({, typing.Annotated[object, ], typing.Ann...bject, ] | None, typing.Annotated[typing.Any | float | str, ], typing.Any | None, ...}), ...} pyfuncitem = testargs = {'hints_ignorable': frozenset({, typing.Annotated[object, ], typing.Ann...] | None, ...}), 'iter_hints_piths_meta': .hints_piths_meta at 0x7f3ccd075430>} testfunction = beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py:324: in test_door_is_bearable assert is_bearable(pith, hint_ignorable) is True BeartypeConfException = BeartypeDecorHintForwardRefException = BeartypeDecorHintNonpepException = HintPithUnsatisfiedMetadata = hint_ignorable = typing.Annotated[typing.Any | float | str, ] hints_ignorable = frozenset({, typing.Annotated[object, ], typing.Annotated[typing.Any | ...est.a00_unit.data.hint.pep.proposal.data_pep484.TotallyNotObject, typing.Annotated[object, ] | None, ...}) is_bearable = iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> pith = 'The breath and blood of distant lands, for ever' raises = simplefilter = beartype/door/_doorcheck.py:300: in is_bearable func_tester = make_func_tester(hint, conf) conf = BeartypeConf() hint = typing.Annotated[typing.Any | float | str, ] obj = 'The breath and blood of distant lands, for ever' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (typing.Annotated[typing.Any | float | str, ], BeartypeConf()) args_flat = (typing.Annotated[typing.Any | float | str, ], BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...AnyStr, BeartypeConf()): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):...90c0>, (, BeartypeConf()): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (typing.Annotated[typing.Any | float | str, ], BeartypeConf()) args_flat = (typing.Annotated[typing.Any | float | str, ], BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...AnyStr, BeartypeConf()): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):...90c0>, (, BeartypeConf()): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:180: in make_func_tester return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = typing.Annotated[typing.Any | float | str, ] beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = typing.Annotated[typing.Any | float | str, ] make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'is_bearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = typing.Annotated[typing.Any | float | str, ] make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Annotated[typing.Any | float | str, ] beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str hint_prev = typing.Any | float | str pith_name = None beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (typing.Any | float | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (typing.Any | float | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (typing.Any | float | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (typing.Any | float | str, BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = typing.Any | float | str, is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = typing.Any | float | str is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException ________________________________ test_beartype _________________________________ iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> @ignore_warnings(DeprecationWarning) def test_beartype(iter_hints_piths_meta) -> None: ''' Test the :func:`beartype.beartype` decorator with respect to type-checking code dynamically generated by the :mod:`beartype._decor.wrap.wrapmain` submodule. This unit test effectively acts as a functional test and is thus the core test exercising decorator functionality from the end user perspective -- the only perspective that matters in the end. Unsurprisingly, this test is mildly more involved than most. *Whatevah.* This test additionally attempts to avoid similar issues to a `prior issue `__ of this decorator induced by repeated :func:`beartype.beartype` decorations of different callables annotated by one or more of the same PEP-compliant type hints. .. _issue #5: https://github.com/beartype/beartype/issues/5 Parameters ---------- iter_hints_piths_meta : Callable[[], Iterable[beartype_test.a00_unit.data.hint.util.data_hintmetautil.HintPithMetadata]] Factory function creating and returning a generator iteratively yielding ``HintPithMetadata`` instances, each describing a sample type hint exercising an edge case in the :mod:`beartype` codebase paired with a related object either satisfying or violating that hint. ''' # ....................{ IMPORTS }.................... # Defer test-specific imports. from beartype import beartype from beartype.roar import BeartypeCallHintViolation from beartype._util.text.utiltextansi import strip_str_ansi from beartype_test.a00_unit.data.hint.util.data_hintmetacls import ( # HintPepMetadata, HintPithUnsatisfiedMetadata, ) from beartype_test._util.pytroar import raises_uncached # from pytest import warns # from pytest import deprecated_call from re import search # from warnings import simplefilter # ....................{ MAIN }.................... # Force pytest to temporarily allow deprecation warnings to be caught by the # warns() context manager for the duration of this test. By default, pytest # simply "passes through" all deprecation warnings for subsequent reporting # if tests otherwise successfully pass. Deprecation warnings include: # * "DeprecationWarning". # * "FutureWarning". # * "PendingDeprecationWarning". # simplefilter('always') # For each predefined type hint and associated metadata... for hint_pith_meta in iter_hints_piths_meta(): # ....................{ LOCALS }.................... # Metadata describing this hint. hint_meta = hint_pith_meta.hint_meta # Type hint to be type-checked. hint = hint_meta.hint # Object to type-check against this hint. pith = hint_pith_meta.pith # Metadata describing this pith. pith_meta = hint_pith_meta.pith_meta # print(f'Type-checking PEP type hint {repr(hint_meta.hint)}...') # Beartype decorator configured specifically for this hint. beartype_confed = beartype(conf=hint_meta.conf) def func_untyped(hint_param: hint) -> hint: ''' Undecorated function both accepting a single parameter and returning a value annotated by this hint whose implementation trivially reduces to the identity function. ''' return hint_param #FIXME: For unknown and probably uninteresting reasons, the #pytest.warns() context manager appears to be broken on our #local machine. We have no recourse but to unconditionally #ignore this warning at the module level. So much rage! #FIXME: It's likely this has something to do with the fact that #Python filters deprecation warnings by default. This is almost #certainly a pytest issue. Since this has become fairly #unctuous, we should probably submit a pytest issue report. #FIXME: Actually, pytest now appears to have explicit support for #testing that a code block emits a deprecation warning: # with pytest.deprecated_call(): # myfunction(17) #See also: https://docs.pytest.org/en/6.2.x/warnings.html#ensuring-code-triggers-a-deprecation-warning #FIXME: Fascinatingly, warns() still refuses to capture warnings. #Although we certainly could call deprecated_call(), doing so is #stymied by the fact that #"BeartypeDecorHintPep585DeprecationWarning" does *NOT* subclass the #standard "DeprecationWarning" class. *sigh* #FIXME: *NONSENSE*! It's 2024 and we *STILL* can't get this to work. #It's been bloody years. It just doesn't work and there's *NO* #reasonable means for us to debug why. We've tried literally everything: #pytest.deprecated_call(), pytest.warns(), warnings.simplefilter(). #Nuthin'. Pytest simply refuses to catch deprecation warnings. Kinda fed #up with the whole thing, honestly. #FIXME: *FASCINATING*. The comparable test_decor_pep613() unit test #successfully tests deprecation warnings emitted by the @beartype #decorator with the trivial pytest.warns() + warnings.simplefilter() #combo. So... why does doing so here fail? Some combination of iteration #and closures would seem to be the likely culprit. Notably, "pylint" #complains this about the above definition of func_untyped(): # cell-var-from-loop: Cell variable "hint" defined in loop # #It seems likely a similar issue is obstructing testing here. #FIXME: ...huh. This is Bizarro World stuff. We tried extricating this #logic into the comparable test_door_is_bearable() test, which also #iterates but *WITHOUT* defining closures. That test still fails to #capture deprecation warnings. So... it's iteration? Really? *OH*. The #iter_hints_piths_meta() iterator is itself defined as a closure of a #session-scoped fixture. Welp, that's almost certainly it. Something #about that fundamentally obstructs capturing of deprecation warnings. #Our only recourse now is to try: #* Defining a new test_hint_warnings() unit test. #* Manually iterating over type hints in that test *WITHOUT* calling # iter_hints_piths_meta(). Instead, extricate the import aspects of # iter_hints_piths_meta() into a simple "for" loop. Avoid anything # extraneous (e.g., repetition, context managers). #FIXME: *THAT WAS IT*. Our new test_hint_warnings() unit test #successfully captures deprecation warnings. So. It's our session-scoped #iter_hints_piths_meta() fixture closure, huh? Well, at least that sorta #makes sense. This is *DEFINITELY* a pytest issue -- but good luck #reducing that one to a minimal-length reproducible working example. # # @beartype-generated wrapper function type-checking that function. # func_typed = None # # # If this beartype decorator emits a warning for this hint... # if hint_meta.warning_type is not None: # with deprecated_call(): # # Decorate that function under a context manager asserting this # # decoration to emit the expected warning. # # with warns(hint_meta.warning_type): # func_typed = beartype_confed(func_untyped) # # Else, this beartype decorator emits *NO* warning for this hint. In # # this case, decorate this callable as is. # else: # func_typed = beartype_confed(func_untyped) > func_typed = beartype_confed(func_untyped) BeartypeCallHintViolation = HintPithUnsatisfiedMetadata = beartype = beartype_confed = .beartype_confed at 0x7f3ccc614d50> culprit_pith = "'Empirical Ṗath after‐mathematically harvesting agro‐'" exception = BeartypeCallHintParamViolation('Function test_beartype.test_beartype.func_untyped() parameter hint_param=\'Empirical Ṗ...ath after‐mathematically harvesting agro‐\' not instance of .') exception_culprits = ("'Empirical Ṗath after‐mathematically harvesting agro‐'",) exception_info = .') tblen=3> exception_str = 'Function test_beartype.test_beartype.func_untyped() parameter hint_param=\'Empirical Ṗath after‐mathematically harves...Ṗath after‐mathematically harvesting agro‐\' not instance of .' exception_str_match_regex = '\\btype hint\\b' exception_type = func_typed = .func_untyped at 0x7f3ccc616a30> func_untyped = .func_untyped at 0x7f3ccc616980> hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hint_pith_meta = iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> pith = pith_meta = HintPithSatisfiedMetadata( pith=, is_context_manager=False, is_pith_factory=False, ) raises_uncached = search = strip_str_ansi = beartype_test/a00_unit/a70_decor/a60_main/test_beartype.py:174: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:130: in beartype_confed return beartype_object(obj, conf) conf = BeartypeConf() obj = .func_untyped at 0x7f3ccc616980> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf() kwargs = {} obj = .func_untyped at 0x7f3ccc616980> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .func_untyped at 0x7f3ccc616980> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf()} obj = .func_untyped at 0x7f3ccc616980> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf() func = .func_untyped at 0x7f3ccc616980> kwargs = {} beartype/_decor/wrap/wrapmain.py:118: in generate_code code_check_params = _code_check_args(bear_call) bear_call = beartype/_decor/wrap/_wrapargs.py:334: in code_check_args reraise_exception_placeholder( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'hint_param', ) arg_name = 'hint_param' bear_call = func_wrapper_code = '' hint = None hint_insane = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') is_args_positional = False warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException("Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.") exception_message = "Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype." source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function test_beartype.test_beartype.func_untyped() parameter "hint_param" ' beartype/_decor/wrap/_wrapargs.py:189: in code_check_args hint = sanify_hint_root_func( arg_default = arg_index = 0 arg_kind = arg_meta = (, 'hint_param', ) arg_name = 'hint_param' bear_call = func_wrapper_code = '' hint = None hint_insane = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') is_args_positional = False warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') pith_name = 'hint_param' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_prev = pith_name = 'hint_param' beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException("Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.") func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.0019069560000843921 excinfo = func = . at 0x7f3cccf69170> precise_start = 1504.585426869 precise_stop = 1504.587333825 reraise = (, ) result = None start = 1747420676.9500332 stop = 1747420676.9519408 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3cccfe64b0> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3cccfe6450> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {'hints_meta': (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typeh...(), )), ), ...), 'iter_hints_piths_meta': .hints_piths_meta at 0x7f3ccd075430>} pyfuncitem = testargs = {'iter_hints_piths_meta': .hints_piths_meta at 0x7f3ccd075430>} testfunction = beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py:193: in test_door_die_if_unbearable die_if_unbearable(pith, hint, conf=conf) BeartypeConfException = BeartypeDecorHintNonpepException = BeartypeDoorHintViolation = HintPithUnsatisfiedMetadata = conf = BeartypeConf() die_if_unbearable = exception_info = .') tblen=3> exception_message = 'Die_if_unbearable() value \'Empirical Ṗath after‐mathematically harvesting agro‐\' violates type hint \'beartype_test...Ṗath after‐mathematically harvesting agro‐\' not instance of .' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_pith_meta = iter_hints_piths_meta = .hints_piths_meta at 0x7f3ccd075430> pith = pith_repr = "'Empirical Ṗath after‐mathematically harvesting agro‐'" raises = represent_object = beartype/door/_doorcheck.py:102: in die_if_unbearable func_raiser = make_func_raiser(hint, conf, exception_prefix) conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') obj = beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() ') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() ') args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() '): BeartypeDecor...ference into an absolute forward reference (e.g., replace "OfPearl" with "{your_package}.{your_submodule}.OfPearl").')} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf(), 'die_if_unbearable() '): , (typing..., (, BeartypeConf(), 'die_if_unbearable() '): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() ') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() ') args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), 'die_if_unbearable() '): BeartypeDecor...ference into an absolute forward reference (e.g., replace "OfPearl" with "{your_package}.{your_submodule}.OfPearl").')} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf(), 'die_if_unbearable() '): , (typing..., (, BeartypeConf(), 'die_if_unbearable() '): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:128: in make_func_raiser return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException("Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.") exception_message = "Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype." source_str = '$%ROOT_PITH_LABEL/~' target_str = 'die_if_unbearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'die_if_unbearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_prev = pith_name = None beartype/_util/cache/utilcachecall.py:222: in _callable_cached raise exception # pyright: ignore[reportGeneralTypeIssues] args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = exception = BeartypeDecorHintNonpepException("Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.") func = /usr/lib/python3.14/site-packages/_pytest/runner.py:341: in from_call result: TResult | None = func() cls = duration = 0.0011295140000129322 excinfo = func = . at 0x7f3cccf68d50> precise_start = 1504.562183201 precise_stop = 1504.563312715 reraise = (, ) result = None start = 1747420676.9267895 stop = 1747420676.92792 when = 'call' /usr/lib/python3.14/site-packages/_pytest/runner.py:242: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise item = kwds = {} runtest_hook = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = False kwargs = {'item': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_call' kwargs = {'item': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call yield from thread_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook yield cm = <_pytest.threadexception.catch_threading_exception object at 0x7f3cccf72ed0> /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call yield from unraisable_exception_runtest_hook() /usr/lib/python3.14/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook yield cm = <_pytest.unraisableexception.catch_unraisable_exception object at 0x7f3cccfb6cf0> /usr/lib/python3.14/site-packages/_pytest/logging.py:846: in pytest_runtest_call yield from self._runtest_for(item, "call") item = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> /usr/lib/python3.14/site-packages/_pytest/logging.py:829: in _runtest_for yield caplog_handler = item = log = '' report_handler = self = <_pytest.logging.LoggingPlugin object at 0x7f3ccf0aae40> when = 'call' /usr/lib/python3.14/site-packages/_pytest/capture.py:898: in pytest_runtest_call return (yield) item = self = > _state='suspended' _in_suspended=False> _capture_fixture=None> /usr/lib/python3.14/site-packages/_pytest/skipping.py:257: in pytest_runtest_call return (yield) item = xfailed = None /usr/lib/python3.14/site-packages/_pytest/runner.py:174: in pytest_runtest_call item.runtest() item = /usr/lib/python3.14/site-packages/_pytest/python.py:1627: in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) self = /usr/lib/python3.14/site-packages/pluggy/_hooks.py:513: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) firstresult = True kwargs = {'pyfuncitem': } self = /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = True hook_name = 'pytest_pyfunc_call' kwargs = {'pyfuncitem': } methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f3ccff7ef90> /usr/lib/python3.14/site-packages/_pytest/python.py:159: in pytest_pyfunc_call result = testfunction(**testargs) funcargs = {'hints_meta': (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typeh...ctory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...)} pyfuncitem = testargs = {'hints_meta': (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typeh...ctory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...)} testfunction = beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py:123: in test_door_is_bearable_warnings is_bearable(pith, hint, conf=conf) conf = BeartypeConf() hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_meta = HintPepMetadata( hint=ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), conf=BeartypeConf(), p...pith_factory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ) hints_meta = (HintPepMetadata( hint=typing.Any, conf=BeartypeConf(), pep_sign=HintSign('Any'), typehint_cls=None, ...actory=False, exception_str_match_regexes=('\\btype hint\\b',), exception_str_not_match_regexes=(), )), ), ...) is_bearable = pith = HintPithSatisfiedMetadata( pith=, is_context_manager=False, is_pith_factory=False, ) simplefilter = warns = beartype/door/_doorcheck.py:300: in is_bearable func_tester = make_func_tester(hint, conf) conf = BeartypeConf() hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') obj = HintPithSatisfiedMetadata( pith=, is_context_manager=False, is_pith_factory=False, ) beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...AnyStr, BeartypeConf()): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):...90c0>, (, BeartypeConf()): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()) args_flat_to_exception = {(ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf()): BeartypeDecorHintNonpepException("Is_...AnyStr, BeartypeConf()): TypeError("descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple'")} args_flat_to_exception_get = args_flat_to_return_value = {(typing.Hashable, BeartypeConf()): , (typing.Sized, BeartypeConf()):...90c0>, (, BeartypeConf()): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/checkmake.py:180: in make_func_tester return _make_func_checker( # type: ignore[return-value] conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_check/checkmake.py:766: in _make_func_checker reraise_exception_placeholder( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') make_code_check = warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException("Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype.") exception_message = "Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype." source_str = '$%ROOT_PITH_LABEL/~' target_str = 'is_bearable() ' beartype/_check/checkmake.py:627: in _make_func_checker hint = sanify_hint_root_statement( conf = BeartypeConf() exception_prefix = 'is_bearable() ' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') make_code_check = warnings_issued = [] beartype/_check/convert/convsanify.py:261: in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_prev = pith_name = None beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat = (ForwardRef('beartype_test.a00_unit.data.data_type.Subclass'), BeartypeConf(), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf() exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Is_bearable() type hint ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = ForwardRef('beartype_test.a00_unit.data.data_type.Subclass') is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException __________________________ test_decor_violation_types __________________________ def test_decor_violation_types() -> None: ''' Test the :func:`beartype.beartype` decorator with respect to the :attr:`beartype.BeartypeConf.violation_param_type` and :attr:`beartype.BeartypeConf.violation_return_type` configuration parameters. ''' # ..................{ IMPORTS }.................. # Defer test-specific imports. from beartype import ( BeartypeConf, beartype, ) from beartype.typing import ( List, Tuple, Union, ) from pytest import ( raises, warns, ) # ..................{ CLASSES }.................. class TheVacantWoods(Exception): ''' Arbitrary exception subclass. ''' pass class SpreadRoundHim(Exception): ''' Arbitrary exception subclass. ''' pass class LowInTheWest(UserWarning): ''' Arbitrary warning subclass. ''' pass class WhereHeStood(UserWarning): ''' Arbitrary warning subclass. ''' pass # ..................{ CALLABLES }.................. def the_clear_and( garish_hills: List[str], the_distinct_valley) -> ( Union[int, Tuple[str, ...]]): ''' Arbitrary callable to be decorated by the :func:`beartype.beartype` decorator, configured in various ways below. ''' return the_distinct_valley # Beartype decorator configured to raise different types of user-defined # exceptions on invalid parameters and returns. beartype_raise = beartype(conf=BeartypeConf( violation_param_type=TheVacantWoods, violation_return_type=SpreadRoundHim, )) # Beartype decorator configured to emit different types of user-defined # warnings on invalid parameters and returns. beartype_warn = beartype(conf=BeartypeConf( violation_param_type=LowInTheWest, violation_return_type=WhereHeStood, # is_debug=True, )) # Above callable decorated with type-checking raising custom exceptions. > the_clear_and_raise = beartype_raise(the_clear_and) BeartypeConf = List = LowInTheWest = .LowInTheWest'> SpreadRoundHim = .SpreadRoundHim'> TheVacantWoods = .TheVacantWoods'> Tuple = Union = WhereHeStood = .WhereHeStood'> beartype = beartype_raise = .beartype_confed at 0x7f3ccc6e4670> beartype_warn = .beartype_confed at 0x7f3ccc6e47d0> raises = the_clear_and = .the_clear_and at 0x7f3ccc6e43b0> warns = beartype_test/a00_unit/a70_decor/a90_roar/test_beartype_roar.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ beartype/_decor/decorcache.py:130: in beartype_confed return beartype_object(obj, conf) conf = BeartypeConf(violation_param_type=.SpreadRoundHim'>) obj = .the_clear_and at 0x7f3ccc6e43b0> beartype/_decor/decorcore.py:87: in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) conf = BeartypeConf(violation_param_type=.SpreadRoundHim'>) kwargs = {} obj = .the_clear_and at 0x7f3ccc6e43b0> beartype/_decor/decorcore.py:136: in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf(violation_param_type=.SpreadRoundHim'>)} obj = .the_clear_and at 0x7f3ccc6e43b0> beartype/_decor/_decornontype.py:182: in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] kwargs = {'conf': BeartypeConf(violation_param_type=.SpreadRoundHim'>)} obj = .the_clear_and at 0x7f3ccc6e43b0> obj_type = beartype/_decor/_decornontype.py:247: in beartype_func func_wrapper_code = generate_code(bear_call) bear_call = conf = BeartypeConf(violation_param_type=.SpreadRoundHim'>) func = .the_clear_and at 0x7f3ccc6e43b0> kwargs = {} beartype/_decor/wrap/wrapmain.py:122: in generate_code code_check_return = _code_check_return(bear_call) bear_call = code_check_params = '\n # Localize the number of passed positional arguments for efficiency.\n __beartype_args_len = len(args)\n ...pe_pith_0,\n random_int=__beartype_random_int,\n )\n\n raise __beartype_violation' beartype/_decor/wrap/_wrapreturn.py:237: in code_check_return reraise_exception_placeholder( bear_call = func_scope = None func_wrapper_code = '' hint = int | tuple[str, ...] hint_insane = int | tuple[str, ...] warnings_issued = [] beartype/_util/error/utilerrraise.py:138: in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) exception = BeartypeDecorHintNonpepException('Function beartype_test.a00_unit.a70_decor.a90_roar.test_beartype_roar.test_decor_vio...the_clear_and() return type hint int | tuple[str, ...] either PEP-noncompliant or currently unsupported by @beartype.') exception_message = 'Function beartype_test.a00_unit.a70_decor.a90_roar.test_beartype_roar.test_decor_violation_types.the_clear_and() return type hint int | tuple[str, ...] either PEP-noncompliant or currently unsupported by @beartype.' source_str = '$%ROOT_PITH_LABEL/~' target_str = 'function beartype_test.a00_unit.a70_decor.a90_roar.test_beartype_roar.test_decor_violation_types.the_clear_and() return ' beartype/_decor/wrap/_wrapreturn.py:122: in code_check_return hint = sanify_hint_root_func( bear_call = func_scope = None func_wrapper_code = '' hint = int | tuple[str, ...] hint_insane = int | tuple[str, ...] warnings_issued = [] beartype/_check/convert/convsanify.py:178: in sanify_hint_root_func hint = reduce_hint( bear_call = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | tuple[str, ...] pith_name = 'return' beartype/_check/convert/convreduce.py:210: in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) cls_stack = None conf = BeartypeConf(violation_param_type=.SpreadRoundHim'>) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | tuple[str, ...] hint_prev = pith_name = 'return' beartype/_util/cache/utilcachecall.py:250: in _callable_cached raise exception args = (int | tuple[str, ...], BeartypeConf(violation_param_type=.SpreadRoundHim'>), '$%ROOT_PITH_LABEL/~') args_flat = (int | tuple[str, ...], BeartypeConf(violation_param_type=.SpreadRoundHim'>), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_util/cache/utilcachecall.py:242: in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( args = (int | tuple[str, ...], BeartypeConf(violation_param_type=.SpreadRoundHim'>), '$%ROOT_PITH_LABEL/~') args_flat = (int | tuple[str, ...], BeartypeConf(violation_param_type=.SpreadRoundHim'>), '$%ROOT_PITH_LABEL/~') args_flat_to_exception = {(, BeartypeConf(hint_overrides=BeartypeHintOverrides({: float | int, :...Is_bearable() type hint typing.Any | float | str either PEP-noncompliant or currently unsupported by @beartype.'), ...} args_flat_to_exception_get = args_flat_to_return_value = {(, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , (, (, BeartypeConf(), '$%ROOT_PITH_LABEL/~'): , ...} args_flat_to_return_value_get = func = return_value = beartype/_check/convert/convreduce.py:367: in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] conf = BeartypeConf(violation_param_type=.SpreadRoundHim'>) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | tuple[str, ...] hint_reducer = hint_sign = None beartype/_util/hint/pep/utilpepreduce.py:96: in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) conf = BeartypeConf(violation_param_type=.SpreadRoundHim'>) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | tuple[str, ...] kwargs = {} beartype/_util/hint/utilhinttest.py:99: in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | tuple[str, ...] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hint = int | tuple[str, ...], is_str_valid = True exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' def die_unless_hint_nonpep( # Mandatory parameters. hint: object, # Optional parameters. is_str_valid: bool = True, exception_cls: TypeException = BeartypeDecorHintNonpepException, exception_prefix: str = '', ) -> None: ''' Raise an exception unless the passed object is a **PEP-noncompliant type hint** (i.e., :mod:`beartype`-specific annotation *not* compliant with annotation-centric PEPs). This validator is effectively (but technically *not*) memoized. See the :func:`beartype._util.hint.utilhinttest.die_unless_hint` validator. Parameters ---------- hint : object Object to be validated. is_str_valid : bool, optional :data:`True` only if this function permits this tuple to contain strings. Defaults to :data:`False`. If this boolean is: * :data:`True`, this tuple is valid only when containing classes and/or classnames. * :data:`False`, this object is valid only when containing classes. exception_cls : type[Exception], optional Type of the exception to be raised by this function. Defaults to :class:`BeartypeDecorHintNonpepException`. exception_prefix : str, optional Human-readable label prefixing the representation of this object in the exception message. Defaults to the empty string. Raises ------ exception_cls If this object is neither: * An **isinstanceable type** (i.e., standard class passable as the second parameter to the :func:`isinstance` builtin and thus typically *not* compliant with annotation-centric PEPs). * A **non-empty tuple** (i.e., semantic union of types) containing one or more: * Non-:mod:`typing` types. * If ``is_str_valid``, **strings** (i.e., forward references specified as either fully-qualified or unqualified classnames). ''' # If this object is a PEP-noncompliant type hint, reduce to a noop. # # Note that this memoized call is intentionally passed positional rather # than keyword parameters to maximize efficiency. if is_hint_nonpep(hint, is_str_valid): return # Else, this object is *NOT* a PEP-noncompliant type hint. In this case, # subsequent logic raises an exception specific to the passed parameters. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # BEGIN: Synchronize changes here with the is_hint_nonpep() tester below. #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! assert isinstance(exception_cls, type), ( f'{repr(exception_cls)} not type.') assert isinstance(exception_prefix, str), ( f'{repr(exception_prefix)} not string.') # If this object is a class... if isinstance(hint, type): # If this class is *NOT* PEP-noncompliant, raise an exception. die_unless_hint_nonpep_type( hint=hint, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this class is isinstanceable. In this case, silently accept # this class as is. return # Else, this object is *NOT* a class. # # If this object is a tuple, raise a tuple-specific exception. elif isinstance(hint, tuple): die_unless_hint_nonpep_tuple( hint=hint, is_str_valid=is_str_valid, exception_prefix=exception_prefix, exception_cls=exception_cls, ) # Else, this object is neither a type nor type tuple. # Raise a generic exception. > raise exception_cls( f'{exception_prefix}type hint {repr(hint)} either ' f'PEP-noncompliant or currently unsupported by @beartype.' ) E beartype.roar.BeartypeDecorHintNonpepException: Function beartype_test.a00_unit.a70_decor.a90_roar.test_beartype_roar.test_decor_violation_types.the_clear_and() return type hint int | tuple[str, ...] either PEP-noncompliant or currently unsupported by @beartype. exception_cls = exception_prefix = '$%ROOT_PITH_LABEL/~' hint = int | tuple[str, ...] is_str_valid = True beartype/_util/hint/nonpep/utilnonpeptest.py:203: BeartypeDecorHintNonpepException _________________ test_claw_intraprocess_beartype_this_package _________________ Test "test_claw_intraprocess_beartype_this_package" failed in isolated subprocess with: ----------------------------- Captured stderr call ----------------------------- Process Process-1: Traceback (most recent call last): File "/usr/lib64/python3.14/multiprocessing/process.py", line 320, in _bootstrap self.run() ~~~~~~~~^^ File "/usr/lib64/python3.14/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/conftest.py", line 199, in _test_func_in_subprocess return test_func() File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py", line 37, in test_claw_intraprocess_beartype_this_package from beartype_test.a00_unit.data.claw.intraprocess.hookable_package.beartype_this_package import ( ...<5 lines>... ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/beartype_this_package/this_submodule.py", line 60, in loves_philosophy: float = len('The fountains mingle with the river') File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/door/_doorcheck.py", line 102, in die_if_unbearable func_raiser = make_func_raiser(hint, conf, exception_prefix) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 250, in _callable_cached raise exception File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 242, in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( ~~~~^ *args) ^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/checkmake.py", line 128, in make_func_raiser return _make_func_checker( # type: ignore[return-value] hint=hint, ...<2 lines>... exception_prefix=exception_prefix, ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/checkmake.py", line 766, in _make_func_checker reraise_exception_placeholder( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ exception=exception, target_str=exception_prefix) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/error/utilerrraise.py", line 138, in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/checkmake.py", line 627, in _make_func_checker hint = sanify_hint_root_statement( hint=hint, conf=conf, exception_prefix=EXCEPTION_PLACEHOLDER) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convsanify.py", line 261, in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convreduce.py", line 210, in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 250, in _callable_cached raise exception File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 242, in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( ~~~~^ *args) ^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convreduce.py", line 367, in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] hint=hint, # pyright: ignore[reportGeneralTypeIssues] conf=conf, exception_prefix=exception_prefix, ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/pep/utilpepreduce.py", line 96, in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/utilhinttest.py", line 99, in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/nonpep/utilnonpeptest.py", line 203, in die_unless_hint_nonpep raise exception_cls( ...<2 lines>... ) beartype.roar.BeartypeDecorHintNonpepException: Global variable "beartype_test.a00_unit.data.claw.intraprocess.hookable_package.beartype_this_package.this_submodule.loves_philosophy" type hint float | int either PEP-noncompliant or currently unsupported by @beartype. ___________________ test_claw_intraprocess_beartype_package ____________________ Test "test_claw_intraprocess_beartype_package" failed in isolated subprocess with: ----------------------------- Captured stderr call ----------------------------- Process Process-2: Traceback (most recent call last): File "/usr/lib64/python3.14/multiprocessing/process.py", line 320, in _bootstrap self.run() ~~~~~~~~^^ File "/usr/lib64/python3.14/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/conftest.py", line 199, in _test_func_in_subprocess return test_func() File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py", line 76, in test_claw_intraprocess_beartype_package from beartype_test.a00_unit.data.claw.intraprocess.hookable_package import ( kind, pep) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/kind/__init__.py", line 14, in from beartype_test.a00_unit.data.claw.intraprocess.hookable_package.kind import ( ...<2 lines>... ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/kind/data_claw_type.py", line 41, in class HerFirstSweetKisses(object): ...<58 lines>... return but_still_loved File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/kind/data_claw_type.py", line 88, in HerFirstSweetKisses @beartype # <-- prefer the default beartype configuration yet again ^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/decorcache.py", line 77, in beartype return beartype_object(obj, conf) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/decorcore.py", line 87, in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/decorcore.py", line 136, in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/_decornontype.py", line 182, in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/_decornontype.py", line 247, in beartype_func func_wrapper_code = generate_code(bear_call) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/wrap/wrapmain.py", line 118, in generate_code code_check_params = _code_check_args(bear_call) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/wrap/_wrapargs.py", line 334, in code_check_args reraise_exception_placeholder( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ exception=exception, ^^^^^^^^^^^^^^^^^^^^ ...<9 lines>... ), ^^ ) ^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/error/utilerrraise.py", line 138, in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/wrap/_wrapargs.py", line 189, in code_check_args hint = sanify_hint_root_func( hint=hint_insane, pith_name=arg_name, bear_call=bear_call) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convsanify.py", line 178, in sanify_hint_root_func hint = reduce_hint( hint=hint, ...<3 lines>... exception_prefix=exception_prefix, ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convreduce.py", line 210, in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 250, in _callable_cached raise exception File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 242, in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( ~~~~^ *args) ^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convreduce.py", line 367, in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] hint=hint, # pyright: ignore[reportGeneralTypeIssues] conf=conf, exception_prefix=exception_prefix, ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/pep/utilpepreduce.py", line 96, in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/utilhinttest.py", line 99, in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/nonpep/utilnonpeptest.py", line 203, in die_unless_hint_nonpep raise exception_cls( ...<2 lines>... ) beartype.roar.BeartypeDecorHintNonpepException: Method beartype_test.a00_unit.data.claw.intraprocess.hookable_package.kind.data_claw_type.HerFirstSweetKisses.i_consciously_have_injured() parameter "but_still_loved" type hint complex | bool either PEP-noncompliant or currently unsupported by @beartype. ___________________ test_claw_intraprocess_beartype_packages ___________________ Test "test_claw_intraprocess_beartype_packages" failed in isolated subprocess with: ----------------------------- Captured stderr call ----------------------------- Process Process-3: Traceback (most recent call last): File "/usr/lib64/python3.14/multiprocessing/process.py", line 320, in _bootstrap self.run() ~~~~~~~~^^ File "/usr/lib64/python3.14/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/conftest.py", line 199, in _test_func_in_subprocess return test_func() File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py", line 150, in test_claw_intraprocess_beartype_packages from beartype_test.a00_unit.data.claw.intraprocess.hookable_package import ( kind, pep) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/kind/__init__.py", line 14, in from beartype_test.a00_unit.data.claw.intraprocess.hookable_package.kind import ( ...<2 lines>... ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/kind/data_claw_type.py", line 41, in class HerFirstSweetKisses(object): ...<58 lines>... return but_still_loved File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/kind/data_claw_type.py", line 88, in HerFirstSweetKisses @beartype # <-- prefer the default beartype configuration yet again ^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/decorcache.py", line 77, in beartype return beartype_object(obj, conf) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/decorcore.py", line 87, in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/decorcore.py", line 136, in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/_decornontype.py", line 182, in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/_decornontype.py", line 247, in beartype_func func_wrapper_code = generate_code(bear_call) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/wrap/wrapmain.py", line 118, in generate_code code_check_params = _code_check_args(bear_call) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/wrap/_wrapargs.py", line 334, in code_check_args reraise_exception_placeholder( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ exception=exception, ^^^^^^^^^^^^^^^^^^^^ ...<9 lines>... ), ^^ ) ^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/error/utilerrraise.py", line 138, in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/wrap/_wrapargs.py", line 189, in code_check_args hint = sanify_hint_root_func( hint=hint_insane, pith_name=arg_name, bear_call=bear_call) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convsanify.py", line 178, in sanify_hint_root_func hint = reduce_hint( hint=hint, ...<3 lines>... exception_prefix=exception_prefix, ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convreduce.py", line 210, in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 250, in _callable_cached raise exception File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 242, in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( ~~~~^ *args) ^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convreduce.py", line 367, in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] hint=hint, # pyright: ignore[reportGeneralTypeIssues] conf=conf, exception_prefix=exception_prefix, ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/pep/utilpepreduce.py", line 96, in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/utilhinttest.py", line 99, in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/nonpep/utilnonpeptest.py", line 203, in die_unless_hint_nonpep raise exception_cls( ...<2 lines>... ) beartype.roar.BeartypeDecorHintNonpepException: Method beartype_test.a00_unit.data.claw.intraprocess.hookable_package.kind.data_claw_type.HerFirstSweetKisses.i_consciously_have_injured() parameter "but_still_loved" type hint complex | bool either PEP-noncompliant or currently unsupported by @beartype. _____________________ test_claw_intraprocess_beartype_all ______________________ Test "test_claw_intraprocess_beartype_all" failed in isolated subprocess with: ----------------------------- Captured stderr call ----------------------------- Process Process-4: Traceback (most recent call last): File "/usr/lib64/python3.14/multiprocessing/process.py", line 320, in _bootstrap self.run() ~~~~~~~~^^ File "/usr/lib64/python3.14/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/conftest.py", line 199, in _test_func_in_subprocess return test_func() File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py", line 227, in test_claw_intraprocess_beartype_all from beartype_test.a00_unit.data.claw.intraprocess.hookable_package import ( kind, pep) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/kind/__init__.py", line 14, in from beartype_test.a00_unit.data.claw.intraprocess.hookable_package.kind import ( ...<2 lines>... ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/kind/data_claw_type.py", line 41, in class HerFirstSweetKisses(object): ...<58 lines>... return but_still_loved File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/kind/data_claw_type.py", line 88, in HerFirstSweetKisses @beartype # <-- prefer the default beartype configuration yet again ^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/decorcache.py", line 77, in beartype return beartype_object(obj, conf) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/decorcore.py", line 87, in beartype_object _beartype_object_fatal(obj, conf=conf, **kwargs) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/decorcore.py", line 136, in _beartype_object_fatal beartype_nontype(obj, **kwargs) # type: ignore[return-value] ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/_decornontype.py", line 182, in beartype_nontype return beartype_func(obj, **kwargs) # type: ignore[return-value] File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/_decornontype.py", line 247, in beartype_func func_wrapper_code = generate_code(bear_call) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/wrap/wrapmain.py", line 118, in generate_code code_check_params = _code_check_args(bear_call) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/wrap/_wrapargs.py", line 334, in code_check_args reraise_exception_placeholder( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ exception=exception, ^^^^^^^^^^^^^^^^^^^^ ...<9 lines>... ), ^^ ) ^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/error/utilerrraise.py", line 138, in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_decor/wrap/_wrapargs.py", line 189, in code_check_args hint = sanify_hint_root_func( hint=hint_insane, pith_name=arg_name, bear_call=bear_call) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convsanify.py", line 178, in sanify_hint_root_func hint = reduce_hint( hint=hint, ...<3 lines>... exception_prefix=exception_prefix, ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convreduce.py", line 210, in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 250, in _callable_cached raise exception File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 242, in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( ~~~~^ *args) ^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convreduce.py", line 367, in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] hint=hint, # pyright: ignore[reportGeneralTypeIssues] conf=conf, exception_prefix=exception_prefix, ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/pep/utilpepreduce.py", line 96, in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/utilhinttest.py", line 99, in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/nonpep/utilnonpeptest.py", line 203, in die_unless_hint_nonpep raise exception_cls( ...<2 lines>... ) beartype.roar.BeartypeDecorHintNonpepException: Method beartype_test.a00_unit.data.claw.intraprocess.hookable_package.kind.data_claw_type.HerFirstSweetKisses.i_consciously_have_injured() parameter "but_still_loved" type hint complex | bool either PEP-noncompliant or currently unsupported by @beartype. ______________________ test_claw_intraprocess_beartyping _______________________ Test "test_claw_intraprocess_beartyping" failed in isolated subprocess with: ----------------------------- Captured stderr call ----------------------------- Process Process-5: Traceback (most recent call last): File "/usr/lib64/python3.14/multiprocessing/process.py", line 320, in _bootstrap self.run() ~~~~~~~~^^ File "/usr/lib64/python3.14/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/conftest.py", line 199, in _test_func_in_subprocess return test_func() File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py", line 283, in test_claw_intraprocess_beartyping from beartype_test.a00_unit.data.claw.intraprocess.hookable_package import ( pep) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/pep/__init__.py", line 14, in from beartype_test.a00_unit.data.claw.intraprocess.hookable_package.pep import ( ...<2 lines>... ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/pep/pep526/__init__.py", line 17, in from beartype_test.a00_unit.data.claw.intraprocess.hookable_package.pep.pep526 import ( data_claw_pep526_raise) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/pep/pep526/data_claw_pep526_raise.py", line 27, in from beartype_test.a00_unit.data.claw.intraprocess.hookable_package.beartype_this_package import ( this_submodule) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype_test/a00_unit/data/claw/intraprocess/hookable_package/beartype_this_package/this_submodule.py", line 60, in loves_philosophy: float = len('The fountains mingle with the river') File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/door/_doorcheck.py", line 102, in die_if_unbearable func_raiser = make_func_raiser(hint, conf, exception_prefix) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 250, in _callable_cached raise exception File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 242, in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( ~~~~^ *args) ^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/checkmake.py", line 128, in make_func_raiser return _make_func_checker( # type: ignore[return-value] hint=hint, ...<2 lines>... exception_prefix=exception_prefix, ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/checkmake.py", line 766, in _make_func_checker reraise_exception_placeholder( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ exception=exception, target_str=exception_prefix) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/error/utilerrraise.py", line 138, in reraise_exception_placeholder raise exception.with_traceback(exception.__traceback__) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/checkmake.py", line 627, in _make_func_checker hint = sanify_hint_root_statement( hint=hint, conf=conf, exception_prefix=EXCEPTION_PLACEHOLDER) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convsanify.py", line 261, in sanify_hint_root_statement hint = reduce_hint(hint=hint, conf=conf, exception_prefix=exception_prefix) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convreduce.py", line 210, in reduce_hint hint = _reduce_hint_cached(hint, conf, exception_prefix) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 250, in _callable_cached raise exception File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/cache/utilcachecall.py", line 242, in _callable_cached return_value = args_flat_to_return_value[args_flat] = func( ~~~~^ *args) ^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_check/convert/convreduce.py", line 367, in _reduce_hint_cached hint = hint_reducer( # type: ignore[call-arg] hint=hint, # pyright: ignore[reportGeneralTypeIssues] conf=conf, exception_prefix=exception_prefix, ) File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/pep/utilpepreduce.py", line 96, in reduce_hint_pep_unsigned die_unless_hint(hint=hint, exception_prefix=exception_prefix) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/utilhinttest.py", line 99, in die_unless_hint die_unless_hint_nonpep(hint=hint, exception_prefix=exception_prefix) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/python-beartype-0.18.5-build/beartype-0.18.5/beartype/_util/hint/nonpep/utilnonpeptest.py", line 203, in die_unless_hint_nonpep raise exception_cls( ...<2 lines>... ) beartype.roar.BeartypeDecorHintNonpepException: Global variable "beartype_test.a00_unit.data.claw.intraprocess.hookable_package.beartype_this_package.this_submodule.loves_philosophy" type hint float | int either PEP-noncompliant or currently unsupported by @beartype. =========================== short test summary info ============================ SKIPPED [1] beartype_test/a00_unit/a40_api/test_api_cave.py:707: could not import 'numpy': No module named 'numpy' SKIPPED [1] beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_nptyping.py:30: could not import 'nptyping': No module named 'nptyping' SKIPPED [1] beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_pandera.py:22: could not import 'pandera': No module named 'pandera' SKIPPED [1] beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py:298: Python 3.14.0 >= 3.10.0. SKIPPED [1] beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py:80: Currently broken due to known issues in decoration-time type-checking. SKIPPED [1] beartype_test/a00_unit/a70_decor/test_decorgodmode.py:28: User "mockbuild" lacks God-mode test privileges (i.e., is smart and knows what's good for them). SKIPPED [1] beartype_test/a00_unit/a70_decor/test_decortype.py:338: Python 3.14.0 >= 3.11.0. SKIPPED [1] beartype_test/a90_func/pep/test_pep561_static.py:53: could not import 'mypy': No module named 'mypy' SKIPPED [1] beartype_test/a90_func/pep/test_pep561_static.py:167: Command "pyright" not found. SKIPPED [1] beartype_test/a90_func/z90_lib/a00_sphinx/test_sphinx.py:123: Currently broken due to Sphinx breaking backward compatibility. SKIPPED [1] beartype_test/a90_func/z90_lib/a90_nuitka/test_nuitka.py:31: Command "gcc" not found. SKIPPED [1] beartype_test/a90_func/z90_lib/test_equinox.py:21: could not import 'equinox': No module named 'equinox' SKIPPED [1] beartype_test/a90_func/z90_lib/test_torch.py:21: could not import 'torch': No module named 'torch' ERROR beartype_test/a00_unit/a40_api/door/a90_func/test_door_func.py::test_door_is_subhint FAILED beartype_test/a00_unit/a00_core/test_a90_typing.py::test_api_typing - ... FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484/test_utilpep484typevar.py::test_get_hint_pep484_typevar_bound_or_none FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/pep484585/test_utilpep484585type.py::test_get_hint_pep484585_type_superclass FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep586.py::test_is_hint_pep586 FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/proposal/test_utilpep593.py::test_is_hint_pep593_beartype FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py::test_get_hint_pep_args FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py::test_get_hint_pep_typevars FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py::test_get_hint_pep_sign FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py::test_get_hint_pep_type_isinstanceable FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a00_utilpepget.py::test_get_hint_pep_type_isinstanceable_or_none FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep_typevars FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep_typing FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep_type_typing FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep_args FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_is_hint_pep_supported FAILED beartype_test/a00_unit/a20_util/hint/a00_pep/test_a90_utilpeptest.py::test_die_if_hint_pep_unsupported FAILED beartype_test/a00_unit/a20_util/hint/a10_nonpep/test_utilhintnonpeptest.py::test_die_unless_hint_nonpep FAILED beartype_test/a00_unit/a20_util/hint/a10_nonpep/test_utilhintnonpeptest.py::test_is_hint_nonpep FAILED beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhinttest.py::test_die_unless_hint FAILED beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhinttest.py::test_is_hint FAILED beartype_test/a00_unit/a20_util/hint/a90_core/test_utilhinttest.py::test_is_hint_ignorable FAILED beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_new FAILED beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_mapping FAILED beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_equals FAILED beartype_test/a00_unit/a40_api/door/a00_type/test_door_typehint.py::test_door_typehint_is_ignorable FAILED beartype_test/a00_unit/a60_check/a20_convert/test_convreduce.py::test_reduce_hint FAILED beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py::test_door_is_bearable_warnings FAILED beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py::test_door_die_if_unbearable FAILED beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py::test_door_typehint_die_if_unbearable FAILED beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py::test_door_is_bearable FAILED beartype_test/a00_unit/a60_check/a90_door/test_checkdoor.py::test_door_typehint_is_bearable FAILED beartype_test/a00_unit/a70_decor/a20_error/a90_main/test_errorget.py::test_get_func_pith_violation FAILED beartype_test/a00_unit/a70_decor/a20_error/a90_main/test_errorget.py::test_get_func_pith_violation_conf_violation_types FAILED beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_contextlib.py::test_decor_contextlib_contextmanager FAILED beartype_test/a00_unit/a70_decor/a40_code/a00_module/test_decor_mypy.py::test_decor_mypy_notimplemented FAILED beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_pass_param_tuple FAILED beartype_test/a00_unit/a70_decor/a40_code/a80_nonpep/test_codenonpep.py::test_nonpep_fail_param_call_tuple FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py::test_decor_pep484_hint_noreturn FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py::test_decor_pep484_hint_noreturn_async FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py::test_decor_pep484_namedtuple FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484.py::test_decor_pep484_hint_sequence_args_1_cached FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484ref.py::test_pep484_ref_data FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/pep484/test_pep484ref.py::test_pep484_ref_call_fail FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep484585.py::test_decor_async_coroutine FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep484585.py::test_decor_async_generator FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep484585.py::test_decor_sync_generator FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep557.py::test_decor_pep577 FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_class_self_reference_reloaded FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_class_self_reference_override FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_module FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_class FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_closure_nonnested FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_hint_pep484_namedtuple FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_hint_pep484_noreturn FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep563.py::test_pep563_hint_pep604 FAILED beartype_test/a00_unit/a70_decor/a40_code/a90_pep/test_decorpep673.py::test_decor_pep673 FAILED beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_flex FAILED beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_flex_varkw FAILED beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_kwonly_mixed FAILED beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_flex_varpos_kwonly FAILED beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_posonly FAILED beartype_test/a00_unit/a70_decor/a40_code/test_codeargkind.py::test_decor_arg_kind_posonly_flex_varpos_kwonly FAILED beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py::test_decor_noop_unhinted_async FAILED beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py::test_decor_noop_redecorated_async FAILED beartype_test/a00_unit/a70_decor/a40_code/test_codenoop.py::test_decor_noop_hint_ignorable_iter FAILED beartype_test/a00_unit/a70_decor/a60_main/test_beartype.py::test_beartype FAILED beartype_test/a00_unit/a70_decor/a90_roar/test_beartype_roar.py::test_decor_violation_types FAILED beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py::test_claw_intraprocess_beartype_this_package FAILED beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py::test_claw_intraprocess_beartype_package FAILED beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py::test_claw_intraprocess_beartype_packages FAILED beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py::test_claw_intraprocess_beartype_all FAILED beartype_test/a00_unit/a90_claw/a90_hook/test_claw_intraprocess.py::test_claw_intraprocess_beartyping ============= 73 failed, 262 passed, 13 skipped, 1 error in 7.42s ============== RPM build errors: error: Bad exit status from /var/tmp/rpm-tmp.RRhJoo (%check) Bad exit status from /var/tmp/rpm-tmp.RRhJoo (%check) Finish: rpmbuild python-beartype-0.18.5-3.fc43.src.rpm Finish: build phase for python-beartype-0.18.5-3.fc43.src.rpm INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1747420626.430272/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names ERROR: Exception(/var/lib/copr-rpmbuild/results/python-beartype-0.18.5-3.fc43.src.rpm) Config(fedora-rawhide-x86_64) 0 minutes 36 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_failure=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot ERROR: Command failed: # /usr/bin/systemd-nspawn -q -M cda69cdf01f34104b98d16d6b82bce5c -D /var/lib/mock/fedora-rawhide-x86_64-1747420626.430272/root -a -u mockbuild --capability=cap_ipc_lock --rlimit=RLIMIT_NOFILE=10240 --capability=cap_ipc_lock --bind=/tmp/mock-resolv.4_r1vvoj:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin '--setenv=PROMPT_COMMAND=printf "\033]0;\007"' '--setenv=PS1= \s-\v\$ ' --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c '/usr/bin/rpmbuild -ba --noprep --target x86_64 /builddir/build/originals/python-beartype.spec' Copr build error: Build failed