<86>Oct 29 17:34:45 userdel[1960947]: delete user 'rooter' <86>Oct 29 17:34:45 userdel[1960947]: removed group 'rooter' owned by 'rooter' <86>Oct 29 17:34:45 userdel[1960947]: removed shadow group 'rooter' owned by 'rooter' <86>Oct 29 17:34:45 groupadd[1960974]: group added to /etc/group: name=rooter, GID=1829 <86>Oct 29 17:34:45 groupadd[1960974]: group added to /etc/gshadow: name=rooter <86>Oct 29 17:34:45 groupadd[1960974]: new group: name=rooter, GID=1829 <86>Oct 29 17:34:45 useradd[1960998]: new user: name=rooter, UID=1829, GID=1829, home=/root, shell=/bin/bash, from=none <86>Oct 29 17:34:45 userdel[1961044]: delete user 'builder' <86>Oct 29 17:34:45 userdel[1961044]: removed group 'builder' owned by 'builder' <86>Oct 29 17:34:45 userdel[1961044]: removed shadow group 'builder' owned by 'builder' <86>Oct 29 17:34:45 groupadd[1961075]: group added to /etc/group: name=builder, GID=1830 <86>Oct 29 17:34:45 groupadd[1961075]: group added to /etc/gshadow: name=builder <86>Oct 29 17:34:45 groupadd[1961075]: new group: name=builder, GID=1830 <86>Oct 29 17:34:45 useradd[1961103]: new user: name=builder, UID=1830, GID=1830, home=/usr/src, shell=/bin/bash, from=none <13>Oct 29 17:34:49 rpmi: libmpdec3-2.5.1-alt3 sisyphus+314490.500.5.1 1675432004 installed <13>Oct 29 17:34:49 rpmi: libgdbm-1.8.3-alt10 sisyphus+346222.200.3.2 1716468404 installed <13>Oct 29 17:34:49 rpmi: libexpat-2.5.0-alt1 sisyphus+346180.200.2.1 1716349835 installed <13>Oct 29 17:34:49 rpmi: libb2-0.98.1-alt1_1 sisyphus+291614.100.1.1 1638962877 installed <13>Oct 29 17:34:49 rpmi: libp11-kit-1:0.25.5-alt1 sisyphus+352553.100.1.1 1720622573 installed <13>Oct 29 17:34:49 rpmi: libtasn1-4.19.0-alt3 sisyphus+327816.100.1.1 1692802615 installed <13>Oct 29 17:34:49 rpmi: rpm-macros-alternatives-0.5.2-alt2 sisyphus+315270.200.2.1 1676457367 installed <13>Oct 29 17:34:49 rpmi: alternatives-0.5.2-alt2 sisyphus+315270.200.2.1 1676457367 installed <13>Oct 29 17:34:49 rpmi: ca-certificates-2024.07.01-alt1 sisyphus+351897.100.1.1 1719826350 installed <13>Oct 29 17:34:49 rpmi: ca-trust-0.2.0-alt1 sisyphus+344843.100.1.1 1712743326 installed <13>Oct 29 17:34:49 rpmi: p11-kit-trust-1:0.25.5-alt1 sisyphus+352553.100.1.1 1720622573 installed <13>Oct 29 17:34:50 rpmi: libcrypto3-3.1.7-alt1 sisyphus+356755.100.1.1 1725388416 installed <13>Oct 29 17:34:50 rpmi: libssl3-3.1.7-alt1 sisyphus+356755.100.1.1 1725388416 installed <13>Oct 29 17:34:50 rpmi: python3-3.12.7-alt1 sisyphus+358796.100.1.1 1727844808 installed <13>Oct 29 17:34:50 rpmi: python3-base-3.12.7-alt1 sisyphus+358796.100.1.1 1727844808 installed <13>Oct 29 17:34:50 rpmi: python3-module-py3dephell-0.1.0-alt2 sisyphus+328191.600.5.1 1693609196 installed <13>Oct 29 17:34:50 rpmi: python3-module-pyproject-installer-0.5.4-alt1 sisyphus+352023.140.3.1 1720195943 installed <13>Oct 29 17:34:50 rpmi: rpm-macros-pyproject-0.0.8-alt1 sisyphus+358751.100.1.1 1727778017 installed <13>Oct 29 17:34:50 rpmi: tests-for-installed-python3-pkgs-0.1.25-alt1 sisyphus+344685.100.1.1 1712595070 installed <13>Oct 29 17:34:50 rpmi: rpm-build-python3-0.1.25-alt1 sisyphus+344685.100.1.1 1712595070 installed <13>Oct 29 17:34:50 rpmi: rpm-build-pyproject-0.0.8-alt1 sisyphus+358751.100.1.1 1727778017 installed <13>Oct 29 17:34:56 rpmi: qt5-base-common-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:34:56 rpmi: libjpeg-2:3.0.2-alt2.1 sisyphus+340135.100.1.1 1707449145 installed <13>Oct 29 17:34:56 rpmi: libpng16-1.6.42-alt2 sisyphus+339555.100.1.1 1706781682 installed <13>Oct 29 17:34:56 rpmi: qt5-declarative-common-5.15.15-alt1 sisyphus+359325.100.1.1 1728466779 installed <13>Oct 29 17:34:56 rpmi: libgomp1-14.2.1-alt1 icarus+359818.100.1.1 1729089654 installed <13>Oct 29 17:34:56 rpmi: libwayland-client-1.23.1-alt1.1 sisyphus+356019.140.3.1 1724572111 installed <13>Oct 29 17:34:56 rpmi: python3-module-docutils-0.20.1-alt1 sisyphus+323438.100.1.1 1687370718 installed <13>Oct 29 17:34:56 rpmi: libogg-1.3.5-alt1 sisyphus+278100.3400.1.1 1626058929 installed <13>Oct 29 17:34:56 rpmi: libvorbis-1.3.7-alt1 sisyphus+275738.100.1.1 1624751601 installed <13>Oct 29 17:34:56 rpmi: libxkbcommon-1.7.0-alt1.1 sisyphus+343672.100.1.1 1711490810 installed <13>Oct 29 17:34:56 rpmi: libusb-1.0.27-alt1 sisyphus+347412.100.1.1 1714739651 installed <13>Oct 29 17:34:56 rpmi: libraw1394-11-2.1.2-alt1 sisyphus+278262.100.1.1 1626081867 installed <13>Oct 29 17:34:56 rpmi: libgudev-1:238-alt1 sisyphus+324364.100.1.1 1688646144 installed <13>Oct 29 17:34:56 rpmi: liblcms2-2.16-alt1 sisyphus+335676.100.1.1 1701682597 installed <13>Oct 29 17:34:56 rpmi: libwebp7-1.4.0-alt1 sisyphus+345159.200.1.1 1713168663 installed <13>Oct 29 17:34:56 rpmi: libopus-1.5.2-alt1 sisyphus+347834.100.1.1 1715455356 installed <13>Oct 29 17:34:56 rpmi: libsuitesparseconfig7-7.7.0-alt2 sisyphus+348694.100.1.1 1716437881 installed <13>Oct 29 17:34:56 rpmi: python3-module-traitlets-5.14.3-alt1 sisyphus+345559.100.1.1 1713606266 installed <13>Oct 29 17:34:56 rpmi: python3-module-packaging-24.1-alt1 sisyphus+350717.100.2.1 1718268656 installed <13>Oct 29 17:34:56 rpmi: python3-module-zope.interface-7.1.0-alt1 sisyphus+359443.100.1.1 1728564441 installed <13>Oct 29 17:34:56 rpmi: python3-module-Pygments-2.18.0-alt1 sisyphus+347552.100.1.1 1714992955 installed <13>Oct 29 17:34:56 rpmi: libopenblas-0.3.28-alt1 sisyphus+356644.100.1.1 1725289674 installed <13>Oct 29 17:34:56 rpmi: liborc-0.4.40-alt1 sisyphus+357575.100.1.1 1726413203 installed <13>Oct 29 17:34:57 rpmi: libopenjpeg2.0-2.5.2-alt1 sisyphus+341637.100.1.1 1709150017 installed <13>Oct 29 17:34:57 rpmi: libtheora-2:1.1.1-alt6 sisyphus+277967.100.1.1 1625928129 installed <13>Oct 29 17:34:57 rpmi: libtcl-8.6.13-alt1 sisyphus+310696.100.1.1 1669548266 installed <13>Oct 29 17:34:57 rpmi: libsqlite3-3.46.0-alt1 sisyphus+352354.100.2.1 1721980422 installed <13>Oct 29 17:34:57 rpmi: perl-HTTP-Date-6.06-alt1 sisyphus+324527.100.1.1 1688834564 installed <13>Oct 29 17:34:57 rpmi: perl-XML-NamespaceSupport-1.12-alt1 1491296348 installed <13>Oct 29 17:34:57 rpmi: libSDL2-2.30.8-alt1 sisyphus+358811.100.1.1 1727865598 installed <13>Oct 29 17:34:57 rpmi: libdvdread8-6.1.3-alt1 sisyphus+302642.100.1.1 1656163148 installed <13>Oct 29 17:34:57 rpmi: libzeromq-4.3.4-alt3 sisyphus+326735.200.2.1 1691482840 installed <13>Oct 29 17:34:57 rpmi: libserd-0.32.2-alt1 sisyphus+341428.200.1.1 1708949158 installed <13>Oct 29 17:34:57 rpmi: libvpl2-2.13.0-alt1 sisyphus+357848.100.2.1 1726737480 installed <13>Oct 29 17:34:57 rpmi: libspeex-1.2.1-alt1 sisyphus+339763.100.1.1 1707113839 installed <13>Oct 29 17:34:57 rpmi: libfribidi-1.0.16-alt1 sisyphus+358393.100.1.1 1727333692 installed <13>Oct 29 17:34:57 rpmi: liblame-3.100-alt1 sisyphus+346342.200.2.2 1716474674 installed <13>Oct 29 17:34:57 rpmi: libgsm-1.0.17-alt1 sisyphus+275359.100.2.1 1624907612 installed <13>Oct 29 17:34:57 rpmi: libidn2-2.3.7-alt1 sisyphus+339505.100.1.2 1706718968 installed <13>Oct 29 17:34:57 rpmi: libnettle8-3.9.1-alt1 sisyphus+322548.100.1.2 1686176879 installed <13>Oct 29 17:34:57 rpmi: libkmod-32-alt1 sisyphus+357452.100.2.1 1727718007 installed <13>Oct 29 17:34:57 rpmi: python3-modules-sqlite3-3.12.7-alt1 sisyphus+358796.100.1.1 1727844808 installed <13>Oct 29 17:34:57 rpmi: libdc1394-22-2.2.5-alt1.1 sisyphus+311484.100.1.1 1670647146 installed <13>Oct 29 17:34:57 rpmi: libiec61883-1.2.0-alt1.qa1 sisyphus+275365.100.1.2 1624491850 installed <13>Oct 29 17:34:57 rpmi: libflac12-1.4.3-alt2 sisyphus+343354.100.1.1 1711118098 installed <13>Oct 29 17:34:57 rpmi: libwayland-cursor-1.23.1-alt1.1 sisyphus+356019.140.3.1 1724572111 installed <13>Oct 29 17:34:57 rpmi: libwayland-egl-4:18.1.0-alt1.1 sisyphus+356019.140.3.1 1724572111 installed <13>Oct 29 17:34:57 rpmi: libv4l-1.28.1-alt1 sisyphus+353586.100.1.1 1721897959 installed <13>Oct 29 17:34:57 rpmi: qt5-connectivity-common-5.15.15-alt1 sisyphus+357337.2300.3.1 1726210620 installed <13>Oct 29 17:34:57 rpmi: qt5-tools-common-5.15.15-alt1 sisyphus+359327.100.1.3 1728470812 installed <13>Oct 29 17:34:57 rpmi: qt5-location-common-5.15.15-alt1 sisyphus+357337.1000.3.1 1726209434 installed <13>Oct 29 17:34:57 rpmi: python3-module-urllib3-2:2.2.3-alt1 sisyphus+357427.100.2.1 1726567364 installed <13>Oct 29 17:34:57 rpmi: python3-module-wcwidth-0.2.13-alt1 sisyphus+341792.100.2.1 1709543329 installed <13>Oct 29 17:34:57 rpmi: python3-module-idna-3.10-alt1 sisyphus+358681.100.1.1 1727701241 installed <13>Oct 29 17:34:57 rpmi: python3-module-attrs-24.2.0-alt2 sisyphus+355603.200.1.1 1724160494 installed <13>Oct 29 17:34:57 rpmi: python3-module-typing_extensions-4.12.2-alt1 sisyphus+351501.100.1.2 1719296652 installed <13>Oct 29 17:34:57 rpmi: python3-module-decorator-5.1.1-alt1 sisyphus+350325.100.1.1 1717516085 installed <13>Oct 29 17:34:57 rpmi: python3-module-six-1.16.0-alt2 sisyphus+324249.100.1.1 1688484676 installed <13>Oct 29 17:34:57 rpmi: python3-module-dateutil-2.8.3-alt0.git0586f4a sisyphus+338928.600.2.1 1706746480 installed <13>Oct 29 17:34:57 rpmi: python3-module-zombie-imp-0.0.2-alt1 sisyphus+339293.100.1.1 1706537230 installed <13>Oct 29 17:34:57 rpmi: python3-module-pkg_resources-1:70.3.0-alt1 sisyphus+352532.100.2.1 1720689192 installed <13>Oct 29 17:34:57 rpmi: libts0-1.22-alt3 sisyphus+278442.100.1.2 1626216676 installed <13>Oct 29 17:34:57 rpmi: libpython3-3.12.7-alt1 sisyphus+358796.100.1.1 1727844808 installed <13>Oct 29 17:34:57 rpmi: libmtdev-1.1.6-alt1 sisyphus+278361.100.1.1 1626091644 installed <13>Oct 29 17:34:58 rpmi: libicu74-1:7.4.2-alt1 sisyphus+336372.200.1.1 1702423005 installed <13>Oct 29 17:34:58 rpmi: libevdev-1.13.3-alt1 sisyphus+356918.100.1.1 1725546440 installed <13>Oct 29 17:34:58 rpmi: libcares-1.34.1-alt1 sisyphus+359478.100.1.1 1728580443 installed <13>Oct 29 17:34:58 rpmi: libICE-1.1.1-alt1 sisyphus+311428.500.1.1 1670577555 installed <13>Oct 29 17:34:58 rpmi: libncurses6-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486705 installed <13>Oct 29 17:34:58 rpmi: libgflags-2.2.2-alt3 sisyphus+319790.100.1.1 1683117277 installed <13>Oct 29 17:34:58 rpmi: libopenal1-1.22.2-alt2 sisyphus+331513.100.1.2 1697028598 installed <13>Oct 29 17:34:58 rpmi: libdv-1.0.0-alt6 sisyphus+286805.100.2.1 1633968015 installed <13>Oct 29 17:34:58 rpmi: perl-LWP-MediaTypes-6.04-alt1 sisyphus+225468.100.1.1 1553186684 installed <13>Oct 29 17:34:58 rpmi: perl-Compress-Raw-Zlib-2.206-alt1 sisyphus+335067.600.1.1 1700901499 installed <13>Oct 29 17:34:58 rpmi: perl-libnet-1:3.15-alt1 sisyphus+317310.100.1.1 1679580208 installed <13>Oct 29 17:34:58 rpmi: perl-XML-SAX-Base-1.09-alt1 1494364363 installed <13>Oct 29 17:34:58 rpmi: libwebrtc-audio-processing-1.3-alt2 sisyphus+332026.100.1.1 1697579361 installed <13>Oct 29 17:34:58 rpmi: libsbc1-2.0-alt2 sisyphus+322708.100.1.1 1686327806 installed <13>Oct 29 17:34:58 rpmi: liblc3-1.1.1-alt1 sisyphus+347780.100.1.1 1715374023 installed <13>Oct 29 17:34:58 rpmi: libfreeaptx-0.1.1-alt1 sisyphus+282022.100.1.1 1628182661 installed <13>Oct 29 17:34:58 rpmi: libfdk-aac2-2.0.3-alt0.1 sisyphus+338863.100.1.1 1706094241 installed <13>Oct 29 17:34:58 rpmi: libimath29-3.1.6-alt4 sisyphus+347973.100.1.1 1715620450 installed <13>Oct 29 17:34:58 rpmi: libiex30-3.1.5-alt2.2 sisyphus+324124.100.1.1 1688379858 installed <13>Oct 29 17:34:58 rpmi: libwayland-server-1.23.1-alt1.1 sisyphus+356019.140.3.1 1724572111 installed <13>Oct 29 17:34:58 rpmi: libmpg123-1:1.32.7-alt1 sisyphus+354663.100.1.1 1723095997 installed <13>Oct 29 17:34:58 rpmi: libsndfile-1.1.0-alt1 sisyphus+339776.7300.6.2 1707350065 installed <13>Oct 29 17:34:58 rpmi: libunwind-1.7.0-alt2 sisyphus+335269.100.1.1 1701110934 installed <13>Oct 29 17:34:58 rpmi: libglog2-0.7.1-alt1 sisyphus+350246.140.8.1 1724736246 installed <13>Oct 29 17:34:58 rpmi: libspirv-tools0-1:2024.3-alt0.1 sisyphus+356274.200.1.1 1724862331 installed <13>Oct 29 17:34:58 rpmi: libzix-0.4.2-alt1 sisyphus+341428.100.1.1 1708949131 installed <13>Oct 29 17:34:58 rpmi: libsord-0.16.16-alt1 sisyphus+341428.300.1.1 1708949185 installed <13>Oct 29 17:34:58 rpmi: libbs2b-3.1.0-alt1.4 sisyphus+346078.200.2.1 1716241402 installed <13>Oct 29 17:34:58 rpmi: libx264-164-alt1.1 sisyphus+322210.100.1.1 1685494917 installed <13>Oct 29 17:34:58 rpmi: libvpx9-1.14.1-alt1 sisyphus+351742.40.3.1 1719836000 installed <13>Oct 29 17:34:58 rpmi: libglvnd-7:1.7.0-alt1 sisyphus+330949.100.1.1 1696424893 installed <13>Oct 29 17:34:58 rpmi: libtwolame-0.4.0-alt1 sisyphus+277783.100.1.1 1625798476 installed <13>Oct 29 17:34:58 rpmi: libdav1d_7-1.4.3-alt1 sisyphus+351889.100.1.1 1719823612 installed <13>Oct 29 17:34:58 rpmi: libaom3-3.9.1-alt2 sisyphus+354446.100.1.1 1722877371 installed <13>Oct 29 17:34:58 rpmi: gobject-introspection-1.82.0-alt1 sisyphus+357735.200.3.1 1726641712 installed <13>Oct 29 17:34:58 rpmi: libedit3-3.1.20230828-alt1 sisyphus+330914.200.3.1 1696922743 installed <13>Oct 29 17:34:58 rpmi: libatk-2.54.0-alt1 sisyphus+357735.600.3.1 1726642126 installed <13>Oct 29 17:34:58 rpmi: liblz4-1:1.9.4-alt1 sisyphus+309416.100.1.1 1667412981 installed <13>Oct 29 17:34:58 rpmi: libsystemd-1:255.13-alt1 sisyphus+359453.100.2.1 1728651180 installed <13>Oct 29 17:34:58 rpmi: libdbus-1.14.10-alt1 sisyphus+327286.5700.14.1 1711487401 installed <13>Oct 29 17:34:58 rpmi: libavahi-0.8-alt4 sisyphus+344258.100.1.1 1712133856 installed <13>Oct 29 17:34:58 rpmi: dbus-tools-1.14.10-alt1 sisyphus+327286.5700.14.1 1711487401 installed <86>Oct 29 17:34:58 groupadd[2021146]: group added to /etc/group: name=messagebus, GID=999 <86>Oct 29 17:34:58 groupadd[2021146]: group added to /etc/gshadow: name=messagebus <86>Oct 29 17:34:58 groupadd[2021146]: new group: name=messagebus, GID=999 <86>Oct 29 17:34:58 useradd[2021198]: new user: name=messagebus, UID=999, GID=999, home=/run/dbus, shell=/dev/null, from=none <13>Oct 29 17:34:58 rpmi: dbus-1.14.10-alt1 sisyphus+327286.5700.14.1 1711487401 installed <13>Oct 29 17:34:58 rpmi: libsratom-0.6.16-alt1 sisyphus+341428.400.1.1 1708949212 installed <13>Oct 29 17:34:58 rpmi: liblilv-0.24.24-alt2 sisyphus+341494.100.1.1 1709024102 installed <13>Oct 29 17:34:58 rpmi: libglslang14-1:14.3.0-alt1 sisyphus+356274.300.1.1 1724862437 installed <13>Oct 29 17:34:58 rpmi: libshaderc1-2024.1-alt0.1 sisyphus+351081.100.1.1 1718627214 installed <13>Oct 29 17:34:58 rpmi: libsamplerate-0.2.2-alt1 sisyphus+284642.100.1.1 1630906301 installed <13>Oct 29 17:34:58 rpmi: libinstpatch-1.1.6-alt1.1 sisyphus+279572.100.1.2 1626605094 installed <13>Oct 29 17:34:58 rpmi: libilmthread30-3.1.5-alt2.2 sisyphus+324124.100.1.1 1688379858 installed <13>Oct 29 17:34:58 rpmi: libopenexr30-3.1.5-alt2.2 sisyphus+324124.100.1.1 1688379858 installed <13>Oct 29 17:34:58 rpmi: libSM-1.2.4-alt1 sisyphus+312057.200.1.1 1671526916 installed <13>Oct 29 17:34:58 rpmi: tslib-1.22-alt3 sisyphus+278442.100.1.2 1626216676 installed <13>Oct 29 17:34:58 rpmi: python3-module-asttokens-2.4.1-alt1 sisyphus+338523.100.2.1 1706229862 installed <13>Oct 29 17:34:58 rpmi: python3-module-hyperlink-21.0.0-alt1.1 sisyphus+304836.100.1.1 1659710964 installed <13>Oct 29 17:34:58 rpmi: python3-module-coverage-7.3.2-alt1 sisyphus+340977.100.1.1 1708279274 installed <13>Oct 29 17:34:58 rpmi: kmod-32-alt1 sisyphus+357452.100.2.1 1727718007 installed <13>Oct 29 17:34:58 rpmi: libhogweed6-3.9.1-alt1 sisyphus+322548.100.1.2 1686176879 installed <13>Oct 29 17:34:59 rpmi: libgnutls30-3.8.4-alt1 sisyphus+343729.100.2.1 1711571288 installed <13>Oct 29 17:34:59 rpmi: libngtcp2.16-1.7.0-alt1 sisyphus+356415.200.1.1 1725031912 installed <13>Oct 29 17:34:59 rpmi: libngtcp2_crypto_gnutls8-1.7.0-alt1 sisyphus+356415.200.1.1 1725031912 installed <13>Oct 29 17:34:59 rpmi: libshout2-2.4.6-alt2 sisyphus+326035.1600.1.1 1690667383 installed <13>Oct 29 17:34:59 rpmi: libdvdnav-6.1.1-alt1 sisyphus+279367.100.1.1 1626478896 installed <13>Oct 29 17:34:59 rpmi: perl-File-Listing-6.16-alt1 sisyphus+325783.100.1.1 1690559356 installed <13>Oct 29 17:34:59 rpmi: tcl-8.6.13-alt1 sisyphus+310696.100.1.1 1669548266 installed <13>Oct 29 17:34:59 rpmi: python3-module-alabaster-0.7.16-alt1 sisyphus+349698.100.1.1 1716897815 installed <13>Oct 29 17:34:59 rpmi: libamd3-7.7.0-alt2 sisyphus+348694.100.1.1 1716437881 installed <13>Oct 29 17:34:59 rpmi: libcamd3-7.7.0-alt2 sisyphus+348694.100.1.1 1716437881 installed <13>Oct 29 17:34:59 rpmi: libcolamd3-7.7.0-alt2 sisyphus+348694.100.1.1 1716437881 installed <13>Oct 29 17:34:59 rpmi: libccolamd3-7.7.0-alt2 sisyphus+348694.100.1.1 1716437881 installed <13>Oct 29 17:34:59 rpmi: libavc1394-0.5.4-alt2 sisyphus+284572.100.1.1 1630712939 installed <13>Oct 29 17:34:59 rpmi: libhidapi-0.12.0-alt1_1 sisyphus+303213.100.1.1 1657034192 installed <13>Oct 29 17:34:59 rpmi: python3-module-cython-hidapi-0.14.0-alt1.1 sisyphus+333513.54340.73.1 1704651867 installed <13>Oct 29 17:34:59 rpmi: python3-module-serial-3.5-alt2 sisyphus+281995.100.1.1 1628172783 installed <13>Oct 29 17:34:59 rpmi: libvidstab-1.1.0-alt2.1 sisyphus+279558.100.1.2 1626596087 installed <13>Oct 29 17:34:59 rpmi: libsoundtouch-2.3.3-alt1 sisyphus+344043.100.1.1 1711799526 installed <13>Oct 29 17:34:59 rpmi: libimagequant-2.17.0-alt1_1 sisyphus+291138.100.1.1 1638394107 installed <13>Oct 29 17:34:59 rpmi: qt5-serialport-common-5.15.15-alt1 sisyphus+357337.700.3.1 1726209177 installed <13>Oct 29 17:34:59 rpmi: qt5-multimedia-common-5.15.15-alt1 sisyphus+357337.600.3.1 1726209102 installed <13>Oct 29 17:34:59 rpmi: qt5-remoteobjects-common-5.15.15-alt1 sisyphus+357337.4300.3.1 1726216524 installed <13>Oct 29 17:34:59 rpmi: qt5-sensors-common-5.15.15-alt1 sisyphus+357337.1100.3.1 1726209553 installed <13>Oct 29 17:34:59 rpmi: qt5-svg-common-5.15.15-alt1 sisyphus+357337.1700.3.1 1726210080 installed <13>Oct 29 17:34:59 rpmi: qt5-webchannel-common-5.15.15-alt1 sisyphus+357337.1300.3.1 1726209676 installed <13>Oct 29 17:34:59 rpmi: qt5-websockets-common-5.15.15-alt1 sisyphus+357337.500.3.1 1726208867 installed <13>Oct 29 17:34:59 rpmi: qt5-x11extras-common-5.15.15-alt1 sisyphus+357337.1600.3.1 1726210009 installed <13>Oct 29 17:34:59 rpmi: qt5-xmlpatterns-common-5.15.15-alt1 sisyphus+359326.100.1.1 1728466184 installed <13>Oct 29 17:34:59 rpmi: python3-module-pluggy-1.5.0-alt1 sisyphus+345632.100.2.1 1713864244 installed <13>Oct 29 17:34:59 rpmi: python3-module-mdurl-0.1.2-alt1 sisyphus+318894.1000.3.1 1682420700 installed <13>Oct 29 17:34:59 rpmi: python3-module-markdown-it-3.0.0-alt1 sisyphus+324665.100.1.1 1689081992 installed <13>Oct 29 17:34:59 rpmi: python3-module-pure-eval-0.2.3-alt1 sisyphus+353357.100.1.1 1721650016 installed <13>Oct 29 17:34:59 rpmi: python3-module-snowballstemmer-2.2.0-alt1 sisyphus+319215.100.1.1 1682346633 installed <13>Oct 29 17:34:59 rpmi: python3-module-pyperclip-1.9.0-alt1 sisyphus+353859.100.1.1 1722231798 installed <13>Oct 29 17:34:59 rpmi: python3-module-platformdirs-4.3.6-alt1 sisyphus+357787.200.1.1 1726664692 installed <13>Oct 29 17:34:59 rpmi: python3-module-jupyter_core-5.7.2-alt1 sisyphus+342603.200.2.1 1710317793 installed <13>Oct 29 17:34:59 rpmi: python3-module-pickleshare-0.7.5-alt3 sisyphus+339447.100.1.1 1706675898 installed <13>Oct 29 17:34:59 rpmi: python3-module-matplotlib-data-3.8.4-alt1 sisyphus+348763.100.1.1 1716481530 installed <13>Oct 29 17:34:59 rpmi: python3-module-railroad-diagrams-3.0.1-alt1 sisyphus+358318.100.1.1 1727257812 installed <13>Oct 29 17:34:59 rpmi: python3-module-markupsafe-1:3.0.1-alt1 sisyphus+359387.100.1.1 1728533857 installed <13>Oct 29 17:34:59 rpmi: python3-module-jinja2-3.1.4-alt1 sisyphus+348267.100.1.1 1715939549 installed <13>Oct 29 17:34:59 rpmi: python3-module-pyparsing-3.2.0-alt1 sisyphus+359723.100.2.1 1728989647 installed <13>Oct 29 17:34:59 rpmi: python3-module-kiwisolver-1.4.7-alt1 sisyphus+356846.100.1.1 1725504907 installed <13>Oct 29 17:34:59 rpmi: python3-module-iniconfig-2.0.0-alt1 sisyphus+314076.200.3.1 1674737275 installed <13>Oct 29 17:34:59 rpmi: python3-module-imagesize-1.4.1-alt1 sisyphus+318084.100.1.1 1680697673 installed <13>Oct 29 17:34:59 rpmi: python3-module-z3c-3.0.0-alt4 sisyphus+284857.200.1.1 1631109149 installed <13>Oct 29 17:34:59 rpmi: python3-module-zc-1.0.0-alt7 sisyphus+284857.100.1.1 1631109117 installed <13>Oct 29 17:34:59 rpmi: python3-module-zope-3.3.0-alt9 sisyphus+281937.200.4.1 1628175900 installed <13>Oct 29 17:34:59 rpmi: python3-module-zope.event-5.0-alt1.1 sisyphus+325755.140.2.1 1690991538 installed <13>Oct 29 17:34:59 rpmi: python3-module-psutil-5.9.8-alt1 sisyphus+341001.100.1.1 1708284056 installed <13>Oct 29 17:34:59 rpmi: python3-module-objgraph-3.6.2-alt1 sisyphus+359468.100.1.1 1728573508 installed <13>Oct 29 17:34:59 rpmi: python3-module-greenlet-3.1.1-alt1 sisyphus+358881.100.1.1 1727933137 installed <13>Oct 29 17:34:59 rpmi: python3-module-executing-2.1.0-alt1 sisyphus+356582.100.1.1 1725220187 installed <13>Oct 29 17:34:59 rpmi: python3-module-stack-data-0.6.3-alt1 sisyphus+348457.200.1.1 1716137744 installed <13>Oct 29 17:34:59 rpmi: python3-module-defusedxml-0.7.1-alt1 sisyphus+274841.2300.1.1 1624295691 installed <13>Oct 29 17:34:59 rpmi: python3-module-cycler-0.12.1-alt1 sisyphus+331222.100.1.1 1696668651 installed <13>Oct 29 17:34:59 rpmi: python3-module-charset-normalizer-3.2.0-alt1 sisyphus+347396.200.2.1 1714733155 installed <13>Oct 29 17:34:59 rpmi: python3-module-requests-2.32.3-alt1 sisyphus+349946.100.1.1 1717059877 installed <13>Oct 29 17:34:59 rpmi: python3-module-certifi-2024.8.30-alt1 sisyphus+356919.100.1.1 1725546651 installed <13>Oct 29 17:35:00 rpmi: python3-module-babel-1:2.15.0-alt1 sisyphus+353791.100.1.1 1722073848 installed <13>Oct 29 17:35:00 rpmi: python3-module-priority-2.0.0-alt3 sisyphus+338701.100.1.2 1705988383 installed <13>Oct 29 17:35:00 rpmi: python3-module-hpack-4.0.0-alt1 sisyphus+270376.200.1.1 1618956626 installed <13>Oct 29 17:35:00 rpmi: python3-module-hyperframe-6.0.1-alt1 sisyphus+270376.300.2.1 1618957001 installed <13>Oct 29 17:35:00 rpmi: python3-module-h2-4.1.0-alt1 sisyphus+325714.100.2.2 1690478873 installed <13>Oct 29 17:35:00 rpmi: python3-module-click-8.1.7-alt1 sisyphus+327424.100.2.1 1695395098 installed <13>Oct 29 17:35:00 rpmi: python3-module-incremental-22.10.0-alt1 sisyphus+312706.100.1.1 1672404273 installed <13>Oct 29 17:35:00 rpmi: python3-module-constantly-15.1.0-alt7 sisyphus+338906.100.1.1 1706107088 installed <13>Oct 29 17:35:00 rpmi: python3-module-curve25519-1.3-alt3 sisyphus+333513.11400.71.1 1704540168 installed <13>Oct 29 17:35:00 rpmi: python3-module-pycryptodome-3.21.0-alt1 sisyphus+358749.100.1.1 1727777979 installed <13>Oct 29 17:35:00 rpmi: python3-module-appdirs-1.4.4-alt2 sisyphus+359005.100.1.1 1728036426 installed <13>Oct 29 17:35:00 rpmi: python3-module-PyQt5-sip-12.13.0-alt1 sisyphus+333513.20540.71.1 1704542453 installed <13>Oct 29 17:35:00 rpmi: python3-module-olefile-0.46-alt2 sisyphus+288126.100.1.1 1635163866 installed <13>Oct 29 17:35:01 rpmi: python3-module-OpenGL-3.1.7-alt1.1 sisyphus+333513.60020.73.1 1704655716 installed <13>Oct 29 17:35:01 rpmi: python-sphinx-objects.inv-1:2.3.14.20240827-alt1 sisyphus+356237.100.1.1 1724841131 installed <13>Oct 29 17:35:01 rpmi: python3-module-sphinxcontrib-applehelp-2.0.0-alt1 sisyphus+353872.100.1.1 1722243556 installed <13>Oct 29 17:35:01 rpmi: python3-module-sphinxcontrib-devhelp-2.0.0-alt1 sisyphus+353872.200.1.1 1722243589 installed <13>Oct 29 17:35:01 rpmi: python3-module-sphinxcontrib-jquery-4.1-alt3 sisyphus+339023.100.1.1 1706234262 installed <13>Oct 29 17:35:01 rpmi: python3-module-sphinxcontrib-jsmath-1.0.1-alt2 sisyphus+348403.100.1.1 1716017686 installed <13>Oct 29 17:35:01 rpmi: python3-module-sphinxcontrib-htmlhelp-2.1.0-alt1 sisyphus+353893.100.2.1 1722416845 installed <13>Oct 29 17:35:01 rpmi: python3-module-sphinxcontrib-serializinghtml-1.1.10-alt1 sisyphus+338546.100.3.1 1705871063 installed <13>Oct 29 17:35:01 rpmi: python3-module-sphinxcontrib-qthelp-2.0.0-alt1 sisyphus+353872.300.1.1 1722243619 installed <13>Oct 29 17:35:01 rpmi: python3-module-sphinx-sphinx-build-symlink-1:7.4.7-alt3 sisyphus+354020.100.1.1 1722434734 installed <13>Oct 29 17:35:01 rpmi: python3-module-sphinx-1:7.4.7-alt3 sisyphus+354020.100.1.1 1722434734 installed <13>Oct 29 17:35:01 rpmi: python3-module-pycparser-2.21-alt1.1 sisyphus+309935.7300.4.1 1668527005 installed <13>Oct 29 17:35:01 rpmi: python3-module-cffi-1.17.1-alt1 sisyphus+357396.100.1.1 1726156476 installed <13>Oct 29 17:35:01 rpmi: python3-module-cryptography-43.0.0-alt1 sisyphus+353417.100.1.1 1721731007 installed <13>Oct 29 17:35:01 rpmi: python3-module-openssl-24.2.1-alt1 sisyphus+353417.200.1.1 1721731036 installed <13>Oct 29 17:35:01 rpmi: mercurial-6.8.1-alt1 sisyphus+358552.100.1.1 1727504038 installed <13>Oct 29 17:35:02 rpmi: python3-module-pycares-4.4.0-alt1 sisyphus+347421.100.1.1 1714743573 installed <13>Oct 29 17:35:02 rpmi: libuv-1.48.0-alt2 sisyphus+357579.100.1.1 1726426171 installed <13>Oct 29 17:35:02 rpmi: libqhull-2020.2-alt1 sisyphus+279488.100.1.2 1626573478 installed <13>Oct 29 17:35:02 rpmi: libtinfo-devel-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486705 installed <13>Oct 29 17:35:02 rpmi: libncurses-devel-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486705 installed <13>Oct 29 17:35:02 rpmi: python3-dev-3.12.7-alt1 sisyphus+358796.100.1.1 1727844808 installed <13>Oct 29 17:35:03 rpmi: python3-module-setuptools-1:70.3.0-alt1 sisyphus+352532.100.2.1 1720689192 installed <13>Oct 29 17:35:03 rpmi: python3-module-Cython-3.0.11-alt1 sisyphus+359096.200.2.1 1728123474 installed <13>Oct 29 17:35:03 rpmi: libwacom-data-2.13.0-alt1 sisyphus+356629.100.1.1 1725279204 installed <13>Oct 29 17:35:03 rpmi: python3-module-libevdev-0.11-alt1 sisyphus+300877.100.1.1 1653893962 installed <13>Oct 29 17:35:03 rpmi: python3-module-pyudev-0.24.3-alt1 sisyphus+347852.100.1.1 1715497013 installed <13>Oct 29 17:35:03 rpmi: libwacom-2.13.0-alt1 sisyphus+356629.100.1.1 1725279204 installed <13>Oct 29 17:35:03 rpmi: libinput-1.26.2-alt2.1 sisyphus+358480.100.1.1 1727435754 installed <13>Oct 29 17:35:03 rpmi: libgirepository1.0-1.82.0-alt1 sisyphus+357735.200.3.1 1726641712 installed <13>Oct 29 17:35:03 rpmi: libev4-4.33-alt3 sisyphus+334335.340.4.1 1699912675 installed <13>Oct 29 17:35:03 rpmi: python3-module-gevent-23.9.1-alt1 sisyphus+340984.100.2.2 1708285325 installed <13>Oct 29 17:35:03 rpmi: libduktape207-2.7.0-alt3 sisyphus+352341.100.1.1 1720324462 installed <13>Oct 29 17:35:03 rpmi: libdouble-conversion3-3.3.0-alt1 sisyphus+333410.100.1.1 1698928789 installed <13>Oct 29 17:35:03 rpmi: libqt5-core-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:03 rpmi: libqt5-dbus-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:03 rpmi: libqt5-sql-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:03 rpmi: libqt5-xml-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:03 rpmi: libqt5-serialport-5.15.15-alt1 sisyphus+357337.700.3.1 1726209177 installed <13>Oct 29 17:35:03 rpmi: libqt5-test-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:03 rpmi: libmpeg2-0.5.1-alt4.svn20120718 sisyphus+285823.100.1.1 1632416716 installed <13>Oct 29 17:35:03 rpmi: libcdio-2.1.0-alt1 sisyphus+328181.400.2.1 1693321803 installed <13>Oct 29 17:35:03 rpmi: liba52-0.8.0-alt1 sisyphus+349892.100.1.1 1716987412 installed <13>Oct 29 17:35:03 rpmi: libwavpack-5.7.0-alt1 sisyphus+342915.100.1.1 1710636743 installed <13>Oct 29 17:35:03 rpmi: libtag-1.12-alt1 sisyphus+277260.100.1.1 1625423537 installed <13>Oct 29 17:35:03 rpmi: libpcre3-8.45-alt2 sisyphus+283722.100.1.2 1629848198 installed <13>Oct 29 17:35:03 rpmi: libslang2-2.3.3-alt1 sisyphus+314492.100.1.1 1675240386 installed <13>Oct 29 17:35:03 rpmi: libvisual0.4-0.4.0-alt3 sisyphus+276250.100.1.2 1624927462 installed <13>Oct 29 17:35:03 rpmi: libgraphene-1.10.8-alt1 sisyphus+296855.100.1.1 1647633383 installed <13>Oct 29 17:35:03 rpmi: libcdparanoia-1:10.2-alt6 sisyphus+346090.200.2.1 1716245892 installed <13>Oct 29 17:35:03 rpmi: libvo-amrwbenc-0.1.3-alt1 sisyphus+275410.100.1.2 1624504610 installed <13>Oct 29 17:35:03 rpmi: libvo-aacenc-0.1.3-alt2 sisyphus+285812.100.1.1 1632410909 installed <13>Oct 29 17:35:03 rpmi: libsrtp2-2.6.0-alt1 sisyphus+341594.100.1.1 1709111211 installed <13>Oct 29 17:35:03 rpmi: libopenh264-2.4.1-alt1 sisyphus+339659.100.1.1 1706889394 installed <13>Oct 29 17:35:03 rpmi: libtbb-2021.13.0-alt1 sisyphus+351726.100.1.1 1719561727 installed <13>Oct 29 17:35:03 rpmi: libprotobuf32-3.21.12-alt5 sisyphus+353063.24400.30.1 1723234273 installed <13>Oct 29 17:35:03 rpmi: libxblas-1.0.248-alt2 sisyphus+285045.40.2.1 1631388330 installed <13>Oct 29 17:35:03 rpmi: libmodplug-0.8.9.0-alt1 sisyphus+275375.100.2.2 1624495419 installed <13>Oct 29 17:35:03 rpmi: libyajl-2.1.0-alt3 sisyphus+322972.100.1.1 1686724493 installed <13>Oct 29 17:35:03 rpmi: libxslt-1.1.39-alt1 sisyphus+349406.100.1.1 1716751806 installed <13>Oct 29 17:35:03 rpmi: libepoxy-1.5.10-alt1 sisyphus+296853.200.2.1 1647631866 installed <13>Oct 29 17:35:04 rpmi: usbids-20240206-alt1 sisyphus+339943.100.1.1 1707270512 installed <13>Oct 29 17:35:04 rpmi: pciids-20240913-alt1 sisyphus+357455.100.1.1 1726250568 installed <13>Oct 29 17:35:04 rpmi: hwdata-0.384-alt1 sisyphus+354460.100.1.1 1722898493 installed <13>Oct 29 17:35:04 rpmi: gtk+3-themes-incompatible-3.20-alt3 1461944560 installed <13>Oct 29 17:35:04 rpmi: perl-Try-Tiny-0.31-alt1 sisyphus+290597.100.1.1 1637915507 installed <13>Oct 29 17:35:04 rpmi: perl-IO-Socket-IP-0.42-alt1 sisyphus+325815.100.1.2 1690571193 installed <13>Oct 29 17:35:04 rpmi: perl-Module-Load-0.36-alt1 sisyphus+258992.100.1.1 1601543407 installed <13>Oct 29 17:35:04 rpmi: perl-Compress-Raw-Bzip2-2.210-alt1 sisyphus+343108.100.1.3 1710881036 installed <13>Oct 29 17:35:04 rpmi: perl-IO-Compress-Brotli-2:0.004001-alt3 sisyphus+335067.1200.1.1 1700901589 installed <13>Oct 29 17:35:04 rpmi: perl-Clone-0.46-alt1 sisyphus+335067.1100.1.1 1700901562 installed <13>Oct 29 17:35:04 rpmi: perl-HTML-Tagset-3.24-alt1 sisyphus+343117.100.1.3 1710883587 installed <13>Oct 29 17:35:04 rpmi: perl-Term-ANSIColor-5.01-alt1 sisyphus+244783.100.1.2 1579747505 installed <13>Oct 29 17:35:04 rpmi: perl-Data-Dump-1.25-alt1 sisyphus+276551.100.1.1 1625126880 installed <13>Oct 29 17:35:04 rpmi: perl-Filter-1.64-alt1 sisyphus+335067.400.1.1 1700901412 installed <13>Oct 29 17:35:04 rpmi: perl-Encode-3.21-alt1 sisyphus+343095.100.1.1 1710875477 installed <13>Oct 29 17:35:04 rpmi: perl-URI-5.27-alt1 sisyphus+340901.100.1.1 1708180683 installed <13>Oct 29 17:35:04 rpmi: perl-IO-Compress-2.206-alt1 sisyphus+325819.100.1.1 1690563199 installed <13>Oct 29 17:35:04 rpmi: perl-Net-HTTP-6.23-alt1 sisyphus+323470.100.1.1 1687422469 installed <13>Oct 29 17:35:04 rpmi: perl-HTML-Parser-3.82-alt1 sisyphus+343116.100.1.3 1710883258 installed <13>Oct 29 17:35:04 rpmi: perl-WWW-RobotRules-6.02-alt1 1329756211 installed <13>Oct 29 17:35:04 rpmi: perl-Encode-Locale-1.05-alt1 1444608613 installed <13>Oct 29 17:35:04 rpmi: perl-IO-HTML-1.004-alt1 sisyphus+258983.100.1.1 1601542619 installed <13>Oct 29 17:35:04 rpmi: perl-HTTP-Message-6.45-alt1 sisyphus+330728.100.1.1 1696162276 installed <13>Oct 29 17:35:04 rpmi: perl-HTTP-Negotiate-6.01-alt1 1329760563 installed <13>Oct 29 17:35:04 rpmi: perl-libwww-6.77-alt1 sisyphus+343120.100.1.2 1710884405 installed <13>Oct 29 17:35:04 rpmi: perl-XML-LibXML-2.0210-alt8 sisyphus+355798.100.1.1 1724340088 installed <13>Oct 29 17:35:04 rpmi: perl-XML-SAX-1.02-alt1 sisyphus+232322.100.1.1 1560758406 installed <13>Oct 29 17:35:04 rpmi: perl-XML-Simple-2.25-alt2 sisyphus+257498.100.1.1 1599324034 installed <13>Oct 29 17:35:04 rpmi: icon-naming-utils-0.8.90-alt1 sisyphus+276851.100.1.1 1625243947 installed <13>Oct 29 17:35:04 rpmi: icon-theme-adwaita-47.0-alt1 sisyphus+357735.1000.3.1 1726642413 installed <13>Oct 29 17:35:04 rpmi: liblash-1:0.5.4-alt1_51 sisyphus+346344.200.2.3 1716476919 installed <13>Oct 29 17:35:04 rpmi: libmysofa-1.3.2-alt1 sisyphus+335142.100.1.1 1701003723 installed <13>Oct 29 17:35:04 rpmi: libldac2-2.0.2.3-alt0.1 sisyphus+278007.100.1.2 1625973044 installed <13>Oct 29 17:35:04 rpmi: libsigc++2-2.12.1-alt1 sisyphus+331046.200.2.1 1696511642 installed <13>Oct 29 17:35:04 rpmi: libconfig-c++11-1.7.3-alt1 sisyphus+356893.2177.17.1 1725864292 installed <13>Oct 29 17:35:04 rpmi: libtdb-1.4.10-alt1 sisyphus+342425.100.8.1 1714748986 installed <13>Oct 29 17:35:04 rpmi: libltdl7-2.4.7-alt5 sisyphus+341963.200.3.1 1711659208 installed <13>Oct 29 17:35:04 rpmi: libasyncns-0.8-alt2.qa1 sisyphus+275091.100.1.1 1624402241 installed <13>Oct 29 17:35:04 rpmi: sound-theme-freedesktop-0.8-alt1 sisyphus+277010.100.1.2 1625346634 installed <13>Oct 29 17:35:04 rpmi: libyaml2-0.2.5-alt1 sisyphus+278391.100.1.1 1626094928 installed <13>Oct 29 17:35:04 rpmi: libgtest-1.13.0-alt2 sisyphus+346258.200.2.1 1716419382 installed <13>Oct 29 17:35:04 rpmi: libevent2.1-2.1.12-alt1 sisyphus+324359.3500.11.1 1689364661 installed <13>Oct 29 17:35:04 rpmi: libbluez-5.78-alt1 sisyphus+358469.100.1.1 1727429927 installed <13>Oct 29 17:35:04 rpmi: libfaad2-2.11.1-alt1 sisyphus+338260.100.2.2 1705755212 installed <13>Oct 29 17:35:04 rpmi: libfaac0-1.28-alt2 sisyphus+346184.200.2.1 1716351469 installed <13>Oct 29 17:35:04 rpmi: libdca0-0.0.5-alt4.qa1 sisyphus+275349.100.1.2 1624487408 installed <13>Oct 29 17:35:04 rpmi: libzxing-cpp-2.2.1-alt1 sisyphus+336233.100.1.1 1702264522 installed <13>Oct 29 17:35:04 rpmi: librabbitmq-c4-0.14.0-alt1 sisyphus+343592.100.1.1 1711443826 installed <13>Oct 29 17:35:04 rpmi: libgme-0.6.3-alt2 sisyphus+293048.100.1.1 1641452306 installed <13>Oct 29 17:35:04 rpmi: libudfread-1.1.2-alt2 sisyphus+286325.100.1.1 1633263312 installed <13>Oct 29 17:35:04 rpmi: libzimg2-3.0.5-alt1 sisyphus+324805.100.1.1 1689254328 installed <13>Oct 29 17:35:04 rpmi: libfftw3-common-3.3.10-alt1 sisyphus+356291.100.2.1 1725355952 installed <13>Oct 29 17:35:04 rpmi: libfftw3-3.3.10-alt1 sisyphus+356291.100.2.1 1725355952 installed <13>Oct 29 17:35:04 rpmi: libchromaprint1-1.5.1-alt1 sisyphus+346100.200.2.1 1716252063 installed <13>Oct 29 17:35:04 rpmi: librubberband-3.3.0-alt1 sisyphus+328096.300.3.1 1693230966 installed <13>Oct 29 17:35:04 rpmi: vulkan-filesystem-1.3.290-alt1 sisyphus+356274.700.2.1 1724875216 installed <13>Oct 29 17:35:04 rpmi: libvulkan1-1.3.290-alt1 sisyphus+356274.700.2.1 1724875216 installed <13>Oct 29 17:35:04 rpmi: libdovi3-2.1.2-alt1 sisyphus+354426.100.1.1 1722863450 installed <13>Oct 29 17:35:04 rpmi: libplacebo338-6.338.2-alt0.2 sisyphus+341163.100.1.1 1708438285 installed <13>Oct 29 17:35:04 rpmi: libsoxr-0.1.3-alt1.1 sisyphus+317908.100.1.1 1680415073 installed <13>Oct 29 17:35:04 rpmi: libxvid-1.3.7-alt1 sisyphus+292833.100.1.1 1640949610 installed <13>Oct 29 17:35:04 rpmi: libnuma-2.0.18-alt1 sisyphus+358102.100.1.1 1727069613 installed <13>Oct 29 17:35:04 rpmi: libx265-199-3.5-alt1.1 sisyphus+277560.100.1.1 1625697230 installed <13>Oct 29 17:35:04 rpmi: libxshmfence-1.3.2-alt1 sisyphus+311428.400.1.1 1670577525 installed <13>Oct 29 17:35:04 rpmi: libsensors3-3.6.0-alt3 sisyphus+308579.100.1.1 1666035267 installed <13>Oct 29 17:35:04 rpmi: libpciaccess-1:0.18.1-alt1 sisyphus+343583.300.1.1 1711440789 installed <13>Oct 29 17:35:04 rpmi: libdrm-1:2.4.123-alt1 sisyphus+357330.40.3.1 1726125397 installed <13>Oct 29 17:35:04 rpmi: llvm18.1-filesystem-18.1.8-alt0.2 sisyphus+357910.700.19.1 1728048814 installed <13>Oct 29 17:35:04 rpmi: llvm18.1-polly-18.1.8-alt0.2 sisyphus+357910.700.19.1 1728048814 installed <13>Oct 29 17:35:04 rpmi: llvm18.1-gold-18.1.8-alt0.2 sisyphus+357910.700.19.1 1728048814 installed <13>Oct 29 17:35:06 rpmi: llvm18.1-libs-18.1.8-alt0.2 sisyphus+357910.700.19.1 1728048814 installed <13>Oct 29 17:35:06 rpmi: libsnappy-1.1.7-alt1 sisyphus+276400.100.1.2 1625016393 installed <13>Oct 29 17:35:06 rpmi: libdatrie-0.2.13-alt1_7 sisyphus+328221.100.1.1 1693336966 installed <13>Oct 29 17:35:06 rpmi: libthai-0.1.29-alt1_6 sisyphus+328230.100.1.2 1693348044 installed <13>Oct 29 17:35:06 rpmi: libdeflate-1.22-alt1 sisyphus+359192.100.1.1 1728330316 installed <13>Oct 29 17:35:06 rpmi: libtiff5-4.4.0-alt4 sisyphus+322581.100.1.2 1686180089 installed <13>Oct 29 17:35:06 rpmi: libcamera-1:0.3.2-alt1 sisyphus+358497.100.1.1 1727451862 installed <13>Oct 29 17:35:06 rpmi: libgdk-pixbuf-locales-2.42.12-alt1 sisyphus+348142.100.1.1 1715791856 installed <13>Oct 29 17:35:06 rpmi: libopencore-amrwb0-0.1.6-alt1 sisyphus+307923.100.1.1 1665032483 installed <13>Oct 29 17:35:06 rpmi: libopencore-amrnb0-0.1.6-alt1 sisyphus+307923.100.1.1 1665032483 installed <13>Oct 29 17:35:06 rpmi: libcodec2_1.2-1.2.0-alt1 sisyphus+340564.40.2.1 1707820763 installed <13>Oct 29 17:35:06 rpmi: libpixman-3:0.43.4-alt2 sisyphus+344164.100.1.1 1711987977 installed <13>Oct 29 17:35:06 rpmi: libgraphite2-1.3.14-alt2.1 sisyphus+279571.100.1.2 1626605111 installed <13>Oct 29 17:35:06 rpmi: libssh2-1.11.0-alt2 sisyphus+339356.100.1.1 1706593137 installed <13>Oct 29 17:35:06 rpmi: publicsuffix-list-dafsa-20240911-alt1 sisyphus+357399.100.1.1 1726160479 installed <13>Oct 29 17:35:06 rpmi: libpsl-0.21.5-alt1 sisyphus+338474.100.1.1 1705684769 installed <13>Oct 29 17:35:06 rpmi: libnghttp3.9-1.5.0-alt1 sisyphus+356415.100.1.1 1725031855 installed <13>Oct 29 17:35:06 rpmi: libnghttp2-1.63.0-alt1 sisyphus+356414.100.1.1 1725031508 installed <13>Oct 29 17:35:06 rpmi: openldap-common-2.6.8-alt1 sisyphus+351621.100.1.1 1719420449 installed <13>Oct 29 17:35:06 rpmi: libntlm-1.5-alt1 sisyphus+278100.3300.1.1 1626058899 installed <13>Oct 29 17:35:06 rpmi: libidn-1.37-alt2 sisyphus+300849.100.1.1 1653769687 installed <13>Oct 29 17:35:06 rpmi: libbrotlicommon-1.1.0-alt1 sisyphus+328501.100.1.1 1693598419 installed <13>Oct 29 17:35:06 rpmi: libbrotlidec-1.1.0-alt1 sisyphus+328501.100.1.1 1693598419 installed <13>Oct 29 17:35:06 rpmi: libharfbuzz-10.0.1-alt1 sisyphus+358317.100.1.1 1727257731 installed <13>Oct 29 17:35:06 rpmi: libfreetype-2.13.3-alt1 sisyphus+355656.100.1.1 1724221064 installed <13>Oct 29 17:35:06 rpmi: libfontconfig1-2.15.0-alt1 sisyphus+355771.100.2.3 1724337298 installed <13>Oct 29 17:35:06 rpmi: libass9-0.17.3-alt1 sisyphus+352066.100.1.1 1720008822 installed <13>Oct 29 17:35:06 rpmi: libbluray-1.3.4-alt1 sisyphus+310888.100.1.1 1669800489 installed <13>Oct 29 17:35:06 rpmi: libxxhash-0.8.2-alt1 sisyphus+336514.200.7.1 1702672118 installed <13>Oct 29 17:35:06 rpmi: rsync-3.2.7-alt1 sisyphus+325006.2000.1.1 1689497333 installed <13>Oct 29 17:35:06 rpmi: openssh-common-9.6p1-alt2 sisyphus+351911.100.1.1 1719838544 installed <13>Oct 29 17:35:06 rpmi: libverto-0.3.2-alt1_1 sisyphus+321176.2200.10.2 1684803947 installed <13>Oct 29 17:35:06 rpmi: liblmdb-0.9.32-alt1 sisyphus+342426.100.1.1 1710124288 installed <13>Oct 29 17:35:06 rpmi: libkeyutils-1.6.3-alt1 sisyphus+346336.200.2.2 1716472658 installed <13>Oct 29 17:35:06 rpmi: libcom_err-1.46.4.0.5.4cda-alt1 sisyphus+283826.100.1.1 1629975345 installed <86>Oct 29 17:35:06 groupadd[2061193]: group added to /etc/group: name=_keytab, GID=998 <86>Oct 29 17:35:06 groupadd[2061193]: group added to /etc/gshadow: name=_keytab <86>Oct 29 17:35:06 groupadd[2061193]: new group: name=_keytab, GID=998 <13>Oct 29 17:35:06 rpmi: libkrb5-1.21.3-alt2 sisyphus+351857.100.1.1 1719735141 installed <13>Oct 29 17:35:06 rpmi: libcups-2.4.11-alt1 sisyphus+359120.200.2.1 1728202635 installed <86>Oct 29 17:35:06 groupadd[2061697]: group added to /etc/group: name=sshagent, GID=997 <86>Oct 29 17:35:06 groupadd[2061697]: group added to /etc/gshadow: name=sshagent <86>Oct 29 17:35:06 groupadd[2061697]: new group: name=sshagent, GID=997 <13>Oct 29 17:35:06 rpmi: openssh-clients-9.6p1-alt2 sisyphus+351911.100.1.1 1719838544 installed <13>Oct 29 17:35:06 rpmi: libgsasl18-2.2.1-alt2 sisyphus+359713.200.2.1 1728905430 installed <86>Oct 29 17:35:06 groupadd[2062025]: group added to /etc/group: name=sasl, GID=996 <86>Oct 29 17:35:06 groupadd[2062025]: group added to /etc/gshadow: name=sasl <86>Oct 29 17:35:06 groupadd[2062025]: new group: name=sasl, GID=996 <13>Oct 29 17:35:06 rpmi: libsasl2-3-2.1.28-alt2 sisyphus+343335.100.1.1 1711112544 installed <13>Oct 29 17:35:06 rpmi: libldap2-2.6.8-alt1 sisyphus+351621.100.1.1 1719420449 installed <13>Oct 29 17:35:06 rpmi: libcurl-8.10.0-alt1 sisyphus+357271.100.1.1 1726044759 installed <13>Oct 29 17:35:06 rpmi: libraptor2-2.0.16-alt1 sisyphus+337177.100.1.1 1703495659 installed <13>Oct 29 17:35:06 rpmi: liblrdf-0.6.1-alt1 sisyphus+278205.100.1.1 1626077040 installed <13>Oct 29 17:35:06 rpmi: libssh-0.10.6-alt1 sisyphus+338050.100.1.2 1705656358 installed <13>Oct 29 17:35:06 rpmi: libneon-0.32.5-alt1 sisyphus+337867.100.1.2 1705641062 installed <13>Oct 29 17:35:06 rpmi: python3-module-gssapi-1.9.0-alt1 sisyphus+359349.100.1.1 1728472724 installed <13>Oct 29 17:35:06 rpmi: python3-module-asyncssh-2.17.0-alt1 sisyphus+358632.100.1.1 1727665327 installed <13>Oct 29 17:35:07 rpmi: python3-module-prompt_toolkit-3.0.48-alt1 sisyphus+358452.100.1.1 1727370189 installed <13>Oct 29 17:35:07 rpmi: less-633-alt1 sisyphus+328181.300.2.1 1693321749 installed <13>Oct 29 17:35:07 rpmi: libjson-c5-0.18-alt1 sisyphus+358387.100.1.1 1727298142 installed <13>Oct 29 17:35:07 rpmi: libCharLS2-2.0.0-alt1_3 sisyphus+346001.100.2.1 1716202266 installed <13>Oct 29 17:35:07 rpmi: gdcm-3.0.21-alt1 sisyphus+348079.100.1.1 1715743016 installed <13>Oct 29 17:35:07 rpmi: libquadmath0-14.2.1-alt1 icarus+359818.100.1.1 1729089654 installed <13>Oct 29 17:35:07 rpmi: libgfortran5-14.2.1-alt1 icarus+359818.100.1.1 1729089654 installed <13>Oct 29 17:35:07 rpmi: liblapack-1:3.8.0-alt7 sisyphus+340675.300.1.1 1707908338 installed <13>Oct 29 17:35:07 rpmi: libcholmod5-7.7.0-alt2 sisyphus+348694.100.1.1 1716437881 installed <13>Oct 29 17:35:07 rpmi: python3-module-numpy-1:1.26.5-alt1 sisyphus+352832.100.1.1 1720965091 installed <13>Oct 29 17:35:07 rpmi: libspqr4-7.7.0-alt2 sisyphus+348694.100.1.1 1716437881 installed <13>Oct 29 17:35:07 rpmi: flexiblas-3.4.4-alt3 sisyphus+355796.100.1.1 1724340590 installed <13>Oct 29 17:35:07 rpmi: libflexiblas.3-3.4.4-alt3 sisyphus+355796.100.1.1 1724340590 installed <13>Oct 29 17:35:07 rpmi: flexiblas-netlib-3.4.4-alt3 sisyphus+355796.100.1.1 1724340590 installed <13>Oct 29 17:35:07 rpmi: libceres4-2.2.0-alt2 sisyphus+350246.370.8.1 1724736407 installed <13>Oct 29 17:35:07 rpmi: libdevmapper-1.02.200-alt1 sisyphus+355869.100.1.1 1724444357 installed <13>Oct 29 17:35:08 rpmi: mount-2.39.2-alt1 sisyphus+327286.4500.14.1 1711486324 installed <13>Oct 29 17:35:08 rpmi: losetup-2.39.2-alt1 sisyphus+327286.4500.14.1 1711486324 installed <13>Oct 29 17:35:08 rpmi: lsblk-2.39.2-alt1 sisyphus+327286.4500.14.1 1711486324 installed <13>Oct 29 17:35:08 rpmi: dmsetup-1.02.200-alt1 sisyphus+355869.100.1.1 1724444357 installed <86>Oct 29 17:35:08 groupadd[2068551]: group added to /etc/group: name=tape, GID=995 <86>Oct 29 17:35:08 groupadd[2068551]: group added to /etc/gshadow: name=tape <86>Oct 29 17:35:08 groupadd[2068551]: new group: name=tape, GID=995 <86>Oct 29 17:35:08 groupadd[2068585]: group added to /etc/group: name=dialout, GID=994 <86>Oct 29 17:35:08 groupadd[2068585]: group added to /etc/gshadow: name=dialout <86>Oct 29 17:35:08 groupadd[2068585]: new group: name=dialout, GID=994 <86>Oct 29 17:35:08 groupadd[2068617]: group added to /etc/group: name=input, GID=993 <86>Oct 29 17:35:08 groupadd[2068617]: group added to /etc/gshadow: name=input <86>Oct 29 17:35:08 groupadd[2068617]: new group: name=input, GID=993 <86>Oct 29 17:35:08 groupadd[2068656]: group added to /etc/group: name=video, GID=992 <86>Oct 29 17:35:08 groupadd[2068656]: group added to /etc/gshadow: name=video <86>Oct 29 17:35:08 groupadd[2068656]: new group: name=video, GID=992 <86>Oct 29 17:35:08 groupadd[2068689]: group added to /etc/group: name=render, GID=991 <86>Oct 29 17:35:08 groupadd[2068689]: group added to /etc/gshadow: name=render <86>Oct 29 17:35:08 groupadd[2068689]: new group: name=render, GID=991 <86>Oct 29 17:35:08 groupadd[2068725]: group added to /etc/group: name=sgx, GID=990 <86>Oct 29 17:35:08 groupadd[2068725]: group added to /etc/gshadow: name=sgx <86>Oct 29 17:35:08 groupadd[2068725]: new group: name=sgx, GID=990 <13>Oct 29 17:35:08 rpmi: udev-1:255.13-alt1 sisyphus+359453.100.2.1 1728651180 installed <13>Oct 29 17:35:08 rpmi: diffstat-1.64-alt1 sisyphus+346132.200.3.2 1716466240 installed <13>Oct 29 17:35:08 rpmi: git-core-2.42.2-alt1 sisyphus+348068.100.1.1 1715721632 installed <13>Oct 29 17:35:08 rpmi: dconf-profile-0.1-alt1 sisyphus+325633.340.3.1 1690415358 installed <13>Oct 29 17:35:08 rpmi: desktop-file-utils-0.26-alt6 sisyphus+331944.100.1.3 1697550026 installed <13>Oct 29 17:35:08 rpmi: shared-mime-info-2.4-alt1 sisyphus+334259.100.1.1 1699787316 installed <13>Oct 29 17:35:08 rpmi: gsettings-desktop-schemas-data-47.1-alt1 sisyphus+357735.300.3.1 1726641752 installed <13>Oct 29 17:35:08 rpmi: libgio-2.82.1-alt1 sisyphus+358041.200.1.1 1726905885 installed <13>Oct 29 17:35:08 rpmi: gsettings-desktop-schemas-47.1-alt1 sisyphus+357735.300.3.1 1726641752 installed <13>Oct 29 17:35:08 rpmi: libgstreamer1.0-1.24.8-alt1 sisyphus+357916.100.1.1 1726778698 installed <13>Oct 29 17:35:08 rpmi: libgdk-pixbuf-2.42.12-alt1 sisyphus+348142.100.1.1 1715791856 installed <13>Oct 29 17:35:09 rpmi: gstreamer1.0-1.24.8-alt1 sisyphus+357916.100.1.1 1726778698 installed <13>Oct 29 17:35:09 rpmi: libgstreamer1.0-gir-1.24.8-alt1 sisyphus+357916.100.1.1 1726778698 installed <13>Oct 29 17:35:09 rpmi: libglibmm-2.66.7-alt1 sisyphus+344717.100.1.1 1712649439 installed <13>Oct 29 17:35:09 rpmi: libjson-glib-1.10.0-alt1 sisyphus+357735.1200.3.1 1726642581 installed <13>Oct 29 17:35:09 rpmi: libgusb-0.4.9-alt1 sisyphus+345693.100.1.1 1713857461 installed <13>Oct 29 17:35:09 rpmi: libcolord-1.4.7-alt1.1 sisyphus+338793.100.1.1 1706039016 installed <13>Oct 29 17:35:09 rpmi: libxml++2-2.42.3-alt1 sisyphus+338062.100.1.2 1705656007 installed <13>Oct 29 17:35:09 rpmi: libffado-2.4.8-alt1.2 sisyphus+356893.2700.18.1 1725878951 installed <13>Oct 29 17:35:09 rpmi: gtk4-update-icon-cache-4.16.3-alt1 sisyphus+359083.100.1.1 1728106873 installed <13>Oct 29 17:35:09 rpmi: libdconf-0.40.0-alt3 sisyphus+325650.100.1.1 1690417205 installed <13>Oct 29 17:35:09 rpmi: dconf-0.40.0-alt3 sisyphus+325650.100.1.1 1690417205 installed <13>Oct 29 17:35:09 rpmi: libgtk+3-schemas-3.24.43-alt1 sisyphus+352627.100.1.1 1720700731 installed <13>Oct 29 17:35:09 rpmi: libpolkit-124-alt3 sisyphus+351454.100.1.1 1719236630 installed <86>Oct 29 17:35:09 groupadd[2073811]: group added to /etc/group: name=colord, GID=989 <86>Oct 29 17:35:09 groupadd[2073811]: group added to /etc/gshadow: name=colord <86>Oct 29 17:35:09 groupadd[2073811]: new group: name=colord, GID=989 <86>Oct 29 17:35:09 useradd[2073869]: new user: name=colord, UID=998, GID=989, home=/var/colord, shell=/dev/null, from=none <13>Oct 29 17:35:09 rpmi: colord-1.4.7-alt1.1 sisyphus+338793.100.1.1 1706039016 installed <13>Oct 29 17:35:09 rpmi: libnice-0.1.22-alt1 sisyphus+342031.100.1.1 1709629225 installed <13>Oct 29 17:35:09 rpmi: libproxy-0.5.8-alt1 sisyphus+353527.100.1.1 1721814170 installed <13>Oct 29 17:35:09 rpmi: libqt5-network-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:09 rpmi: libqt5-remoteobjects-5.15.15-alt1 sisyphus+357337.4300.3.1 1726216524 installed <13>Oct 29 17:35:09 rpmi: systemd-modules-common-1:255.13-alt1 sisyphus+359453.100.2.1 1728651180 installed <13>Oct 29 17:35:09 rpmi: systemd-sysctl-common-1:255.13-alt1 sisyphus+359453.100.2.1 1728651180 installed <13>Oct 29 17:35:09 rpmi: systemd-tmpfiles-common-1:255.13-alt1 sisyphus+359453.100.2.1 1728651180 installed <13>Oct 29 17:35:09 rpmi: systemd-utils-filetriggers-1:255.13-alt1 sisyphus+359453.100.2.1 1728651180 installed <13>Oct 29 17:35:09 rpmi: libfdisk-2.39.2-alt1 sisyphus+327286.4500.14.1 1711486324 installed <13>Oct 29 17:35:09 rpmi: systemd-utils-standalone-1:255.13-alt1 sisyphus+359453.100.2.1 1728651180 installed <13>Oct 29 17:35:09 rpmi: libX11-locales-3:1.8.10-alt1 sisyphus+353866.100.1.1 1722240771 installed <13>Oct 29 17:35:09 rpmi: libXdmcp-1.1.5-alt1 sisyphus+343583.700.1.1 1711441061 installed <13>Oct 29 17:35:09 rpmi: libXau-1.0.11-alt1 sisyphus+311428.100.1.1 1670577439 installed <13>Oct 29 17:35:09 rpmi: libxcb-1.17.0-alt1 sisyphus+345308.200.1.1 1713342004 installed <13>Oct 29 17:35:09 rpmi: libX11-3:1.8.10-alt1 sisyphus+353866.100.1.1 1722240771 installed <13>Oct 29 17:35:09 rpmi: libXext-1.3.6-alt1 sisyphus+343583.1000.1.1 1711441101 installed <13>Oct 29 17:35:09 rpmi: libXrender-0.9.11-alt1 sisyphus+308841.100.1.1 1666436130 installed <13>Oct 29 17:35:09 rpmi: libcairo-1:1.18.2-alt1 sisyphus+357195.100.1.1 1725948391 installed <13>Oct 29 17:35:09 rpmi: libpulseaudio-17.0-alt2 sisyphus+339257.100.1.1 1706519226 installed <13>Oct 29 17:35:09 rpmi: libXfixes-6.0.1-alt1 sisyphus+331490.300.1.1 1697023233 installed <13>Oct 29 17:35:09 rpmi: libcairo-gobject-1:1.18.2-alt1 sisyphus+357195.100.1.1 1725948391 installed <13>Oct 29 17:35:09 rpmi: libXi-1.8-alt1 sisyphus+285490.200.1.1 1632124174 installed <13>Oct 29 17:35:09 rpmi: libat-spi2-core-2.54.0-alt1 sisyphus+357735.600.3.1 1726642126 installed <13>Oct 29 17:35:09 rpmi: python3-module-pygobject3-3.50.0-alt1 sisyphus+357735.400.3.1 1726641803 installed <13>Oct 29 17:35:09 rpmi: libXft-2.3.8-alt1 sisyphus+331490.400.1.1 1697023269 installed <13>Oct 29 17:35:09 rpmi: libpango-1.54.0-alt1 sisyphus+350796.200.1.1 1718041393 installed <13>Oct 29 17:35:09 rpmi: librsvg-1:2.59.1-alt1 sisyphus+358566.100.1.1 1727529695 installed <13>Oct 29 17:35:09 rpmi: libtk-8.6.13-alt1 sisyphus+310696.200.1.1 1669548530 installed <13>Oct 29 17:35:09 rpmi: tk-8.6.13-alt1 sisyphus+310696.200.1.1 1669548530 installed <13>Oct 29 17:35:09 rpmi: libXrandr-1.5.4-alt1 sisyphus+330992.100.1.1 1696485400 installed <13>Oct 29 17:35:09 rpmi: libXtst-1.2.4-alt1 sisyphus+308663.1300.1.1 1666168495 installed <13>Oct 29 17:35:09 rpmi: libXv-1.0.12-alt1 sisyphus+311188.600.1.1 1670233799 installed <13>Oct 29 17:35:09 rpmi: libzvbi-0.2.35-alt2 sisyphus+275416.100.1.3 1624507095 installed <13>Oct 29 17:35:09 rpmi: libXdamage-1.1.6-alt1 sisyphus+311188.300.1.1 1670233711 installed <13>Oct 29 17:35:09 rpmi: python3-module-Pillow-10.4.0-alt1 sisyphus+352220.100.1.1 1720170960 installed <13>Oct 29 17:35:09 rpmi: libzbar-0.23.93-alt1 sisyphus+350305.100.1.1 1717507821 installed <13>Oct 29 17:35:10 rpmi: tcl-tix-8.4.3-alt4 sisyphus+277292.300.2.1 1625442550 installed <13>Oct 29 17:35:10 rpmi: python3-modules-tkinter-3.12.7-alt1 sisyphus+358796.100.1.1 1727844808 installed <13>Oct 29 17:35:10 rpmi: python3-module-twisted-logger-22.10.0-alt3 sisyphus+341870.100.1.1 1709406646 installed <13>Oct 29 17:35:10 rpmi: python3-module-twisted-web-22.10.0-alt3 sisyphus+341870.100.1.1 1709406646 installed <13>Oct 29 17:35:10 rpmi: python3-module-twisted-words-22.10.0-alt3 sisyphus+341870.100.1.1 1709406646 installed <13>Oct 29 17:35:10 rpmi: python3-module-automat-24.8.1-alt1 sisyphus+355768.100.2.1 1724411664 installed <13>Oct 29 17:35:10 rpmi: python3-module-twisted-core-22.10.0-alt3 sisyphus+341870.100.1.1 1709406646 installed <13>Oct 29 17:35:10 rpmi: python3-module-twisted-names-22.10.0-alt3 sisyphus+341870.100.1.1 1709406646 installed <13>Oct 29 17:35:10 rpmi: python3-module-tornado-6.4.1-alt1 sisyphus+352243.100.1.1 1720177912 installed <13>Oct 29 17:35:10 rpmi: python3-module-zmq-26.0.3-alt1 sisyphus+348255.500.8.1 1716012749 installed <13>Oct 29 17:35:10 rpmi: python3-module-jupyter_client-8.6.3-alt1 sisyphus+357733.100.1.1 1726593924 installed <13>Oct 29 17:35:10 rpmi: python3-module-pyglet-1.5.21-alt1 sisyphus+291245.71500.56.1 1643393780 installed <13>Oct 29 17:35:10 rpmi: at-spi2-atk-2.54.0-alt1 sisyphus+357735.600.3.1 1726642126 installed <13>Oct 29 17:35:10 rpmi: libXcursor-1.2.2-alt1 sisyphus+343583.600.1.1 1711441025 installed <13>Oct 29 17:35:10 rpmi: python3-module-pycairo-1.27.0-alt1 sisyphus+357085.100.1.1 1725690999 installed <13>Oct 29 17:35:10 rpmi: libXxf86vm-1.1.5-alt1 sisyphus+308663.1400.1.1 1666168523 installed <13>Oct 29 17:35:11 rpmi: libGLX-mesa-4:24.2.4-alt1 sisyphus+359013.100.1.1 1728040192 installed <13>Oct 29 17:35:11 rpmi: libgbm-4:24.2.4-alt1 sisyphus+359013.100.1.1 1728040192 installed <13>Oct 29 17:35:11 rpmi: libGLX-7:1.7.0-alt1 sisyphus+330949.100.1.1 1696424893 installed <13>Oct 29 17:35:11 rpmi: libGL-7:1.7.0-alt1 sisyphus+330949.100.1.1 1696424893 installed <13>Oct 29 17:35:11 rpmi: libva-2.22.0-alt1 sisyphus+351641.100.2.1 1719561314 installed <13>Oct 29 17:35:11 rpmi: libEGL-mesa-4:24.2.4-alt1 sisyphus+359013.100.1.1 1728040192 installed <13>Oct 29 17:35:11 rpmi: libEGL-7:1.7.0-alt1 sisyphus+330949.100.1.1 1696424893 installed <13>Oct 29 17:35:11 rpmi: libgst-plugins1.0-1.24.8-alt1 sisyphus+357916.200.1.1 1726778815 installed <13>Oct 29 17:35:11 rpmi: libgst-plugins1.0-gir-1.24.8-alt1 sisyphus+357916.200.1.1 1726778815 installed <13>Oct 29 17:35:11 rpmi: gst-plugins-ugly1.0-1.24.8-alt1 sisyphus+357916.500.1.1 1726779211 installed <13>Oct 29 17:35:11 rpmi: libvdpau-1:1.5-alt1 sisyphus+298034.100.1.1 1649336822 installed <13>Oct 29 17:35:11 rpmi: libavutil58-2:6.1.2-alt1 sisyphus+354603.100.1.1 1723020852 installed <13>Oct 29 17:35:11 rpmi: libswscale7-2:6.1.2-alt1 sisyphus+354603.100.1.1 1723020852 installed <13>Oct 29 17:35:11 rpmi: libswresample4-2:6.1.2-alt1 sisyphus+354603.100.1.1 1723020852 installed <13>Oct 29 17:35:11 rpmi: libavcodec60-2:6.1.2-alt1 sisyphus+354603.100.1.1 1723020852 installed <13>Oct 29 17:35:11 rpmi: libavformat60-2:6.1.2-alt1 sisyphus+354603.100.1.1 1723020852 installed <13>Oct 29 17:35:11 rpmi: libpostproc57-2:6.1.2-alt1 sisyphus+354603.100.1.1 1723020852 installed <13>Oct 29 17:35:11 rpmi: libavfilter9-2:6.1.2-alt1 sisyphus+354603.100.1.1 1723020852 installed <13>Oct 29 17:35:11 rpmi: gst-libav-1.24.8-alt1 sisyphus+357916.700.1.1 1726779289 installed <13>Oct 29 17:35:11 rpmi: libXinerama-1.1.5-alt1 sisyphus+309287.100.1.1 1667213208 installed <13>Oct 29 17:35:11 rpmi: dbus-tools-gui-1.14.10-alt1 sisyphus+327286.5700.14.1 1711487401 installed <13>Oct 29 17:35:11 rpmi: xprop-1.2.5-alt1 sisyphus+279025.100.1.1 1626354198 installed <13>Oct 29 17:35:11 rpmi: at-spi2-core-2.54.0-alt1 sisyphus+357735.600.3.1 1726642126 installed <13>Oct 29 17:35:11 rpmi: libXcomposite-0.4.6-alt1 sisyphus+311188.200.1.1 1670233682 installed <13>Oct 29 17:35:12 rpmi: libgtk+3-3.24.43-alt1 sisyphus+352627.100.1.1 1720700731 installed <13>Oct 29 17:35:12 rpmi: libopencv4.10-1:4.10.0-alt2 sisyphus+350246.474.8.1 1724737246 installed <13>Oct 29 17:35:12 rpmi: libcaca-0.99-alt23 sisyphus+353063.17400.30.1 1723232046 installed <13>Oct 29 17:35:13 rpmi: gst-plugins-good1.0-1.24.8-alt1 sisyphus+357916.300.1.1 1726778952 installed <13>Oct 29 17:35:13 rpmi: libxcbutil-icccm-0.4.1-alt2 sisyphus+278275.100.1.2 1626148616 installed <13>Oct 29 17:35:13 rpmi: libxcbutil-1:0.4.1-alt1 sisyphus+312057.100.1.1 1671526887 installed <13>Oct 29 17:35:13 rpmi: libxcbutil-image-0.4.0-alt1 sisyphus+275413.100.1.3 1624505793 installed <13>Oct 29 17:35:13 rpmi: libxcbutil-keysyms-0.4.0-alt1 sisyphus+278187.100.1.1 1626075966 installed <13>Oct 29 17:35:13 rpmi: libxcb-render-util-0.3.9-alt3 sisyphus+276916.100.1.2 1625275234 installed <13>Oct 29 17:35:13 rpmi: libxkbcommon-x11-1.7.0-alt1.1 sisyphus+343672.100.1.1 1711490810 installed <13>Oct 29 17:35:13 rpmi: libqt5-eglfsdeviceintegration-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:13 rpmi: libqt5-xcbqpa-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:13 rpmi: libqt5-eglfskmssupport-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:13 rpmi: libqt5-gui-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:13 rpmi: libqt5-widgets-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:13 rpmi: libqt5-qmlmodels-5.15.15-alt1 sisyphus+359325.100.1.1 1728466779 installed <13>Oct 29 17:35:13 rpmi: libqt5-qmlworkerscript-5.15.15-alt1 sisyphus+359325.100.1.1 1728466779 installed <13>Oct 29 17:35:13 rpmi: libqt5-quick-5.15.15-alt1 sisyphus+359325.100.1.1 1728466779 installed <13>Oct 29 17:35:13 rpmi: libqt5-quickshapes-5.15.15-alt1 sisyphus+359325.100.1.1 1728466779 installed <13>Oct 29 17:35:13 rpmi: libqt5-qml-5.15.15-alt1 sisyphus+359325.100.1.1 1728466779 installed <13>Oct 29 17:35:13 rpmi: libqt5-bluetooth-5.15.15-alt1 sisyphus+357337.2300.3.1 1726210620 installed <13>Oct 29 17:35:13 rpmi: qt5-quickcontrols-5.15.15-alt1 sisyphus+357337.1400.3.1 1726209801 installed <13>Oct 29 17:35:13 rpmi: libqt5-positioningquick-5.15.15-alt1 sisyphus+357337.1000.3.1 1726209434 installed <13>Oct 29 17:35:13 rpmi: libqt5-positioning-5.15.15-alt1 sisyphus+357337.1000.3.1 1726209434 installed <13>Oct 29 17:35:13 rpmi: libqt5-location-5.15.15-alt1 sisyphus+357337.1000.3.1 1726209434 installed <13>Oct 29 17:35:13 rpmi: libqt5-nfc-5.15.15-alt1 sisyphus+357337.2300.3.1 1726210620 installed <13>Oct 29 17:35:13 rpmi: libqt5-quickwidgets-5.15.15-alt1 sisyphus+359325.100.1.1 1728466779 installed <13>Oct 29 17:35:13 rpmi: libqt5-sensors-5.15.15-alt1 sisyphus+357337.1100.3.1 1726209553 installed <13>Oct 29 17:35:13 rpmi: libqt5-webchannel-5.15.15-alt1 sisyphus+357337.1300.3.1 1726209676 installed <13>Oct 29 17:35:13 rpmi: libqt5-websockets-5.15.15-alt1 sisyphus+357337.500.3.1 1726208867 installed <13>Oct 29 17:35:13 rpmi: libqt5-xmlpatterns-5.15.15-alt1 sisyphus+359326.100.1.1 1728466184 installed <13>Oct 29 17:35:14 rpmi: libqt5-designer-5.15.15-alt1 sisyphus+359327.100.1.3 1728470812 installed <13>Oct 29 17:35:14 rpmi: libqt5-help-5.15.15-alt1 sisyphus+359327.100.1.3 1728470812 installed <13>Oct 29 17:35:14 rpmi: libqt5-opengl-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:14 rpmi: libqt5-printsupport-5.15.15-alt1 sisyphus+359324.100.1.2 1728478992 installed <13>Oct 29 17:35:14 rpmi: libqt5-svg-5.15.15-alt1 sisyphus+357337.1700.3.1 1726210080 installed <13>Oct 29 17:35:14 rpmi: libqt5-x11extras-5.15.15-alt1 sisyphus+357337.1600.3.1 1726210009 installed <13>Oct 29 17:35:14 rpmi: alsa-ucm-conf-1.2.12-alt1 sisyphus+352670.100.1.1 1720712327 installed <13>Oct 29 17:35:14 rpmi: alsa-topology-conf-1.2.5.1-alt1 sisyphus+274777.100.1.1 1624089141 installed <13>Oct 29 17:35:14 rpmi: libalsa-1:1.2.12-alt1 sisyphus+352670.200.1.1 1720712401 installed <13>Oct 29 17:35:14 rpmi: libcanberra-0.30-alt3 sisyphus+275093.100.2.3 1624562350 installed <13>Oct 29 17:35:14 rpmi: pipewire-libs-1.2.5-alt1.1 sisyphus+359804.100.1.1 1728986491 installed <13>Oct 29 17:35:14 rpmi: pipewire-jack-libs-1.2.5-alt1.1 sisyphus+359804.100.1.1 1728986491 installed <13>Oct 29 17:35:14 rpmi: libfluidsynth-2.3.6-alt1 sisyphus+354308.200.1.1 1722736812 installed <13>Oct 29 17:35:14 rpmi: libSDL-1.2.14-alt10 sisyphus+346015.200.2.1 1716212609 installed <13>Oct 29 17:35:14 rpmi: libmjpegtools2.1-2.2.1-alt2 sisyphus+332812.400.2.1 1698405785 installed <13>Oct 29 17:35:14 rpmi: gst-plugins-bad1.0-1.24.8-alt1 sisyphus+357916.400.1.1 1726779141 installed <13>Oct 29 17:35:14 rpmi: gst-plugins-base1.0-1.24.8-alt1 sisyphus+357916.200.1.1 1726778815 installed <13>Oct 29 17:35:14 rpmi: libqt5-multimedia-5.15.15-alt1 sisyphus+357337.600.3.1 1726209102 installed <13>Oct 29 17:35:15 rpmi: python3-module-PyQt5-5.15.10-alt2 sisyphus+341899.100.1.1 1709469602 installed <13>Oct 29 17:35:15 rpmi: python3-module-mpl_toolkits-3.8.4-alt1 sisyphus+348763.100.1.1 1716481530 installed <13>Oct 29 17:35:15 rpmi: python3-module-matplotlib-cairo-3.8.4-alt1 sisyphus+348763.100.1.1 1716481530 installed <13>Oct 29 17:35:15 rpmi: python3-module-matplotlib-tk-3.8.4-alt1 sisyphus+348763.100.1.1 1716481530 installed <13>Oct 29 17:35:15 rpmi: python3-module-matplotlib-3.8.4-alt1 sisyphus+348763.100.1.1 1716481530 installed <13>Oct 29 17:35:15 rpmi: python3-module-matplotlib-qt5-3.8.4-alt1 sisyphus+348763.100.1.1 1716481530 installed <13>Oct 29 17:35:15 rpmi: python3-module-ipython-8.28.0-alt1 sisyphus+358894.100.1.1 1727943090 installed <13>Oct 29 17:35:15 rpmi: python3-module-matplotlib-inline-0.1.7-alt1 sisyphus+348427.100.1.1 1716102198 installed <13>Oct 29 17:35:15 rpmi: python3-module-setuptools_scm-8.1.0-alt1 sisyphus+358552.200.1.1 1727504224 installed <13>Oct 29 17:35:15 rpmi: python3-module-pytest-8.3.3-alt1 sisyphus+357310.100.1.1 1726063386 installed <13>Oct 29 17:35:15 rpmi: python3-module-rich-13.9.2-alt1 sisyphus+359171.100.1.1 1728309554 installed <13>Oct 29 17:35:15 rpmi: python3-module-wheel-0.44.0-alt1 sisyphus+355530.100.1.1 1724069901 installed <13>Oct 29 17:35:15 rpmi: python3-module-littleutils-0.2.2-alt1.git.6a3d7b7 sisyphus+293692.100.2.1 1642510837 installed Building target platforms: x86_64 Building for target x86_64 Wrote: /usr/src/in/nosrpm/python3-module-executing-2.1.0-alt1.nosrc.rpm (w1.gzdio) Installing python3-module-executing-2.1.0-alt1.src.rpm Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.80862 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + rm -rf python3-module-executing-2.1.0 + echo 'Source #0 (python3-module-executing-2.1.0.tar):' Source #0 (python3-module-executing-2.1.0.tar): + /bin/tar -xf /usr/src/RPM/SOURCES/python3-module-executing-2.1.0.tar + cd python3-module-executing-2.1.0 + /bin/chmod -c -Rf u+rwX,go-w . + '[' '!' -d .git ']' + git init hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m Initialized empty Git repository in /usr/src/RPM/BUILD/python3-module-executing-2.1.0/.git/ + git config user.email author@example.com + git config user.name author + git add . + git commit -m release [master (root-commit) 25159e4] release 368 files changed, 563557 insertions(+) create mode 100644 .github/workflows/test.yml create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 MANIFEST.in create mode 100644 README.md create mode 100644 development.md create mode 100644 executing/__init__.py create mode 100644 executing/_exceptions.py create mode 100644 executing/_position_node_finder.py create mode 100644 executing/executing.py create mode 100644 executing/py.typed create mode 100755 make_release.sh create mode 100644 pyproject.toml create mode 100644 setup.cfg create mode 100644 setup.py create mode 100644 tests/__init__.py create mode 100644 tests/analyse.py create mode 100644 tests/deadcode.py create mode 100644 tests/generate_small_sample.py create mode 100644 tests/global_tester_calls.py create mode 100644 tests/mutmut_workflow.py create mode 100644 tests/not_code.txt create mode 100644 tests/sample_results/_parser-py-2.7.json create mode 100644 tests/sample_results/_parser-py-3.10.json create mode 100644 tests/sample_results/_parser-py-3.11.json create mode 100644 tests/sample_results/_parser-py-3.12.json create mode 100644 tests/sample_results/_parser-py-3.13.json create mode 100644 tests/sample_results/_parser-py-3.5.json create mode 100644 tests/sample_results/_parser-py-3.6.json create mode 100644 tests/sample_results/_parser-py-3.7.json create mode 100644 tests/sample_results/_parser-py-3.8.json create mode 100644 tests/sample_results/_parser-py-3.9.json create mode 100644 tests/sample_results/_parser-pypy-2.7.json create mode 100644 tests/sample_results/_parser-pypy-3.5.json create mode 100644 tests/sample_results/_parser-pypy-3.6.json create mode 100644 tests/sample_results/bird-py-2.7.json create mode 100644 tests/sample_results/bird-py-3.10.json create mode 100644 tests/sample_results/bird-py-3.11.json create mode 100644 tests/sample_results/bird-py-3.12.json create mode 100644 tests/sample_results/bird-py-3.13.json create mode 100644 tests/sample_results/bird-py-3.5.json create mode 100644 tests/sample_results/bird-py-3.6.json create mode 100644 tests/sample_results/bird-py-3.7.json create mode 100644 tests/sample_results/bird-py-3.8.json create mode 100644 tests/sample_results/bird-py-3.9.json create mode 100644 tests/sample_results/bird-pypy-2.7.json create mode 100644 tests/sample_results/bird-pypy-3.5.json create mode 100644 tests/sample_results/bird-pypy-3.6.json create mode 100644 tests/sample_results/configuration-py-2.7.json create mode 100644 tests/sample_results/configuration-py-3.10.json create mode 100644 tests/sample_results/configuration-py-3.11.json create mode 100644 tests/sample_results/configuration-py-3.12.json create mode 100644 tests/sample_results/configuration-py-3.13.json create mode 100644 tests/sample_results/configuration-py-3.5.json create mode 100644 tests/sample_results/configuration-py-3.6.json create mode 100644 tests/sample_results/configuration-py-3.7.json create mode 100644 tests/sample_results/configuration-py-3.8.json create mode 100644 tests/sample_results/configuration-py-3.9.json create mode 100644 tests/sample_results/configuration-pypy-2.7.json create mode 100644 tests/sample_results/configuration-pypy-3.5.json create mode 100644 tests/sample_results/configuration-pypy-3.6.json create mode 100644 tests/sample_results/datetime-py-2.7.json create mode 100644 tests/sample_results/datetime-py-3.10.json create mode 100644 tests/sample_results/datetime-py-3.11.json create mode 100644 tests/sample_results/datetime-py-3.12.json create mode 100644 tests/sample_results/datetime-py-3.13.json create mode 100644 tests/sample_results/datetime-py-3.5.json create mode 100644 tests/sample_results/datetime-py-3.6.json create mode 100644 tests/sample_results/datetime-py-3.7.json create mode 100644 tests/sample_results/datetime-py-3.8.json create mode 100644 tests/sample_results/datetime-py-3.9.json create mode 100644 tests/sample_results/datetime-pypy-2.7.json create mode 100644 tests/sample_results/datetime-pypy-3.5.json create mode 100644 tests/sample_results/datetime-pypy-3.6.json create mode 100644 tests/sample_results/db-py-2.7.json create mode 100644 tests/sample_results/db-py-3.10.json create mode 100644 tests/sample_results/db-py-3.11.json create mode 100644 tests/sample_results/db-py-3.12.json create mode 100644 tests/sample_results/db-py-3.13.json create mode 100644 tests/sample_results/db-py-3.5.json create mode 100644 tests/sample_results/db-py-3.6.json create mode 100644 tests/sample_results/db-py-3.7.json create mode 100644 tests/sample_results/db-py-3.8.json create mode 100644 tests/sample_results/db-py-3.9.json create mode 100644 tests/sample_results/db-pypy-2.7.json create mode 100644 tests/sample_results/db-pypy-3.5.json create mode 100644 tests/sample_results/db-pypy-3.6.json create mode 100644 tests/sample_results/executing-py-2.7.json create mode 100644 tests/sample_results/executing-py-3.10.json create mode 100644 tests/sample_results/executing-py-3.11.json create mode 100644 tests/sample_results/executing-py-3.12.json create mode 100644 tests/sample_results/executing-py-3.13.json create mode 100644 tests/sample_results/executing-py-3.5.json create mode 100644 tests/sample_results/executing-py-3.6.json create mode 100644 tests/sample_results/executing-py-3.7.json create mode 100644 tests/sample_results/executing-py-3.8.json create mode 100644 tests/sample_results/executing-py-3.9.json create mode 100644 tests/sample_results/executing-pypy-2.7.json create mode 100644 tests/sample_results/executing-pypy-3.5.json create mode 100644 tests/sample_results/executing-pypy-3.6.json create mode 100644 tests/sample_results/import_hook-py-2.7.json create mode 100644 tests/sample_results/import_hook-py-3.10.json create mode 100644 tests/sample_results/import_hook-py-3.11.json create mode 100644 tests/sample_results/import_hook-py-3.12.json create mode 100644 tests/sample_results/import_hook-py-3.13.json create mode 100644 tests/sample_results/import_hook-py-3.5.json create mode 100644 tests/sample_results/import_hook-py-3.6.json create mode 100644 tests/sample_results/import_hook-py-3.7.json create mode 100644 tests/sample_results/import_hook-py-3.8.json create mode 100644 tests/sample_results/import_hook-py-3.9.json create mode 100644 tests/sample_results/import_hook-pypy-2.7.json create mode 100644 tests/sample_results/import_hook-pypy-3.5.json create mode 100644 tests/sample_results/import_hook-pypy-3.6.json create mode 100644 tests/sample_results/ipython-py-2.7.json create mode 100644 tests/sample_results/ipython-py-3.10.json create mode 100644 tests/sample_results/ipython-py-3.11.json create mode 100644 tests/sample_results/ipython-py-3.12.json create mode 100644 tests/sample_results/ipython-py-3.13.json create mode 100644 tests/sample_results/ipython-py-3.5.json create mode 100644 tests/sample_results/ipython-py-3.6.json create mode 100644 tests/sample_results/ipython-py-3.7.json create mode 100644 tests/sample_results/ipython-py-3.8.json create mode 100644 tests/sample_results/ipython-py-3.9.json create mode 100644 tests/sample_results/ipython-pypy-2.7.json create mode 100644 tests/sample_results/ipython-pypy-3.5.json create mode 100644 tests/sample_results/ipython-pypy-3.6.json create mode 100644 tests/sample_results/server-py-2.7.json create mode 100644 tests/sample_results/server-py-3.10.json create mode 100644 tests/sample_results/server-py-3.11.json create mode 100644 tests/sample_results/server-py-3.12.json create mode 100644 tests/sample_results/server-py-3.13.json create mode 100644 tests/sample_results/server-py-3.5.json create mode 100644 tests/sample_results/server-py-3.6.json create mode 100644 tests/sample_results/server-py-3.7.json create mode 100644 tests/sample_results/server-py-3.8.json create mode 100644 tests/sample_results/server-py-3.9.json create mode 100644 tests/sample_results/server-pypy-2.7.json create mode 100644 tests/sample_results/server-pypy-3.5.json create mode 100644 tests/sample_results/server-pypy-3.6.json create mode 100644 tests/sample_results/tests-py-2.7.json create mode 100644 tests/sample_results/tests-py-3.10.json create mode 100644 tests/sample_results/tests-py-3.11.json create mode 100644 tests/sample_results/tests-py-3.12.json create mode 100644 tests/sample_results/tests-py-3.13.json create mode 100644 tests/sample_results/tests-py-3.5.json create mode 100644 tests/sample_results/tests-py-3.6.json create mode 100644 tests/sample_results/tests-py-3.7.json create mode 100644 tests/sample_results/tests-py-3.8.json create mode 100644 tests/sample_results/tests-py-3.9.json create mode 100644 tests/sample_results/tests-pypy-2.7.json create mode 100644 tests/sample_results/tests-pypy-3.5.json create mode 100644 tests/sample_results/tests-pypy-3.6.json create mode 100644 tests/sample_results/tracer-py-2.7.json create mode 100644 tests/sample_results/tracer-py-3.10.json create mode 100644 tests/sample_results/tracer-py-3.11.json create mode 100644 tests/sample_results/tracer-py-3.12.json create mode 100644 tests/sample_results/tracer-py-3.13.json create mode 100644 tests/sample_results/tracer-py-3.5.json create mode 100644 tests/sample_results/tracer-py-3.6.json create mode 100644 tests/sample_results/tracer-py-3.7.json create mode 100644 tests/sample_results/tracer-py-3.8.json create mode 100644 tests/sample_results/tracer-py-3.9.json create mode 100644 tests/sample_results/tracer-pypy-2.7.json create mode 100644 tests/sample_results/tracer-pypy-3.5.json create mode 100644 tests/sample_results/tracer-pypy-3.6.json create mode 100644 tests/sample_results/tracer2-py-2.7.json create mode 100644 tests/sample_results/tracer2-py-3.10.json create mode 100644 tests/sample_results/tracer2-py-3.11.json create mode 100644 tests/sample_results/tracer2-py-3.12.json create mode 100644 tests/sample_results/tracer2-py-3.13.json create mode 100644 tests/sample_results/tracer2-py-3.5.json create mode 100644 tests/sample_results/tracer2-py-3.6.json create mode 100644 tests/sample_results/tracer2-py-3.7.json create mode 100644 tests/sample_results/tracer2-py-3.8.json create mode 100644 tests/sample_results/tracer2-py-3.9.json create mode 100644 tests/sample_results/tracer2-pypy-2.7.json create mode 100644 tests/sample_results/tracer2-pypy-3.5.json create mode 100644 tests/sample_results/tracer2-pypy-3.6.json create mode 100644 tests/sample_results/utils-py-2.7.json create mode 100644 tests/sample_results/utils-py-3.10.json create mode 100644 tests/sample_results/utils-py-3.11.json create mode 100644 tests/sample_results/utils-py-3.12.json create mode 100644 tests/sample_results/utils-py-3.13.json create mode 100644 tests/sample_results/utils-py-3.5.json create mode 100644 tests/sample_results/utils-py-3.6.json create mode 100644 tests/sample_results/utils-py-3.7.json create mode 100644 tests/sample_results/utils-py-3.8.json create mode 100644 tests/sample_results/utils-py-3.9.json create mode 100644 tests/sample_results/utils-pypy-2.7.json create mode 100644 tests/sample_results/utils-pypy-3.5.json create mode 100644 tests/sample_results/utils-pypy-3.6.json create mode 100644 tests/sample_results/utils2-py-2.7.json create mode 100644 tests/sample_results/utils2-py-3.10.json create mode 100644 tests/sample_results/utils2-py-3.11.json create mode 100644 tests/sample_results/utils2-py-3.12.json create mode 100644 tests/sample_results/utils2-py-3.13.json create mode 100644 tests/sample_results/utils2-py-3.5.json create mode 100644 tests/sample_results/utils2-py-3.6.json create mode 100644 tests/sample_results/utils2-py-3.7.json create mode 100644 tests/sample_results/utils2-py-3.8.json create mode 100644 tests/sample_results/utils2-py-3.9.json create mode 100644 tests/sample_results/utils2-pypy-2.7.json create mode 100644 tests/sample_results/utils2-pypy-3.5.json create mode 100644 tests/sample_results/utils2-pypy-3.6.json create mode 100644 tests/samples/_parser.py create mode 100644 tests/samples/bird.py create mode 100644 tests/samples/configuration.py create mode 100644 tests/samples/datetime.py create mode 100644 tests/samples/db.py create mode 100644 tests/samples/executing.py create mode 100644 tests/samples/import_hook.py create mode 100644 tests/samples/ipython.py create mode 100644 tests/samples/server.py create mode 100644 tests/samples/tests.py create mode 100644 tests/samples/tracer.py create mode 100644 tests/samples/tracer2.py create mode 100644 tests/samples/utils.py create mode 100644 tests/samples/utils2.py create mode 100644 tests/small_samples/0126981e43aec288449c540bef895abc32c6046ac22095919e1a1564ece7160b.py create mode 100644 tests/small_samples/0194cd769109c110d50905631c5793818736ff3835dd0a5ef97ed2f34cd65892.py create mode 100644 tests/small_samples/05b14e50cca9fbffd0ad2b1fa4e2e1243483dc6ea7fe81035c10b41a0d3bd711.py create mode 100644 tests/small_samples/0675309754ba4277c9cb3c52d7131377fe69c7744a271e2b7471917dabb5aaa1.py create mode 100644 tests/small_samples/08b7d79dd83ba10104039e2873d3ea4452bedbb3e46e729114a27536cd9dfdc3.py create mode 100644 tests/small_samples/09c2b2709b3507baf8a9e749c6e3bed21728d2159858adcfa66c49bb3e2f35f2.py create mode 100644 tests/small_samples/0e52e1c718dbbe376fa8af89ea22dedd7431a02558e6065951ef712c3ed9e01a.py create mode 100644 tests/small_samples/0f7396913445f02c6720c718315895cdb6a259875f6b6fd29259a96c7e9c1ff5.py create mode 100644 tests/small_samples/0fe16ec438396e003734858ad326d907e514273262547abaee0cd15e6eb7083e.py create mode 100644 tests/small_samples/1201463cc1031818ae1ea2b5a9dfcac2b7f9035aaa0c1670e61d8009e5701311.py create mode 100644 tests/small_samples/126f1cda2062caf2c74dcdcd77f5cb3a0e2d20b749329f84f48aa4d90701f2d0.py create mode 100644 tests/small_samples/1656dc52edd2385921104de7bb255ca369713f4b8c034ebeba5cf946058109bc.py create mode 100644 tests/small_samples/16b59c539eacafcbb66df969aa7a3a6f612fd4fa9acb07a2a30f837350c555a4.py create mode 100644 tests/small_samples/16f6f132d75df7cbbd0744f1cf6302dd4a1605a3b6ae0d6e9d45189f19db860b.py create mode 100644 tests/small_samples/1a1292769ffae5636aa864bec0bf01dc60380a867a7f5b8ab6f18b523848bb39.py create mode 100644 tests/small_samples/1a7451e2c71947902b4ea93eb2cbf3ca9ecedc07be7d6c6a9832731fca80924a.py create mode 100644 tests/small_samples/1afa3b7586b5527d711d8881bc2de395ebb8036a6c91a0cd952f02f280c83a4f.py create mode 100644 tests/small_samples/1fff64406be948c8ed049b0fc299b0e3702064f8592d6a020136cc0485e348cf.py create mode 100644 tests/small_samples/206e0609ff0589a0a32422ee902f09156af91746e27157c32c9595d12072f92a.py create mode 100644 tests/small_samples/227620e1f473c9ac5ccf8328ed28b169c31617f5a4d6302337ce4f83109f745e.py create mode 100644 tests/small_samples/22bc344a43584c051d8962116e8fd149d72e7e68bcb54caf201ee6e78986b167.py create mode 100644 tests/small_samples/248c72657ee1942a557f5521fe25423a53aa4b44e7890abf76ebaf1960952f2f.py create mode 100644 tests/small_samples/2680ea2b168d077ec7ad4d22c7897f402c4984d93b314a8566d227ce894a6c14.py create mode 100644 tests/small_samples/289bcf3ad1de1e72dab056250fe9516668937d7d9c55be773acd60a8f05c4318.py create mode 100644 tests/small_samples/28dde5e66130457326139e9f4ae62987606de2b6362b073ae3671ad38cf37046.py create mode 100644 tests/small_samples/2ab181c0e2d4978b1dc22cb8d9a4ed3e2bc6df02267f9766dfe1e8ee7924ff7c.py create mode 100644 tests/small_samples/2ad55a93b62d942e84a4ec6cf3385da73bfe13a70739c8b6e21d6917cdf54142.py create mode 100644 tests/small_samples/2bfb9b3e488bd50d6e05a300b7cec608d2b0d54260b7ca4ce834bd81a96e1e54.py create mode 100644 tests/small_samples/2f31d64a74ed18026d7000094cefc6e5cace573b0df257f23299ed7bb21a3264.py create mode 100644 tests/small_samples/2fa69a57eb3b16f9ce0d5be427ad471c93a54c6d7e68b5be024b6a046ecc6bb2.py create mode 100644 tests/small_samples/318c09f5abc7ace5b69c55380616ebf1cc984e6c365ff8d9f021725eabbe02ae.py create mode 100644 tests/small_samples/339587c1bea1dae03e45ad87a1c245a4e7a3d719968e39e572cb987ee055ad50.py create mode 100644 tests/small_samples/37db52dbd6fe707c1f18121b6b0d10ed1b2c7962d3989d3087ab7c1aa207f773.py create mode 100644 tests/small_samples/393abb63bcdcf6c3f6b008fb7a7635ac6f615f1ef83579b2ad0e735d738e9ddd.py create mode 100644 tests/small_samples/3946430f5c3048d7d85d5424c4fcb541db50c9c41d5653c977e974351b2f6bc9.py create mode 100644 tests/small_samples/3a50eb1aed494e7b3b7e6fc814943b6b24acafdbc5b40644b79ec50bdb29b023.py create mode 100644 tests/small_samples/3d740a1da7646802a0c11ca94604e6da910ef47148032a1ec0a50047b9fcc024.py create mode 100644 tests/small_samples/3dbbed07d7fec1ba458ca74840ec2f6196114bb49f09193a7704911172b8c04a.py create mode 100644 tests/small_samples/42a37b8a823eb2e510b967332661afd679c82c60b7177b992a47c16d81117c8a.py create mode 100644 tests/small_samples/437c7cbd0809c59a17c3928b83eb0a4f2c23aeef11417cdadea9bdefe77c318a.py create mode 100644 tests/small_samples/45a20d9fefe2db8c5fbc91ad26e8e9dce0667e126dab5e34fd6825c085776be5.py create mode 100644 tests/small_samples/46597f8f896f11c5d7f432236344cc7e5645c2a39836eb6abdd2437c0422f0f4.py create mode 100644 tests/small_samples/477815a6eac78431cfb30ac314764dbf43beed5b54af64c4a666537afaf3d718.py create mode 100644 tests/small_samples/4851dc1b626a95e97dbe0c53f96099d165b755dd1bd552c6ca771f7bca6d30f5.py create mode 100644 tests/small_samples/49e298556393765fe40e351447825acca36bbc6b254c144c6a8fc9f82602c6a0.py create mode 100644 tests/small_samples/4ac35edc8adbe59cee1c11080c0e7d458fa5f2144a3f3bc1919e8722d6949780.py create mode 100644 tests/small_samples/4d3f8fa60aa762d76852454257bd527e40f38549b584e45269cfc5977248fb62.py create mode 100644 tests/small_samples/4fb0f58b18c1b1484aec340e1a7ab7cdc87185a067ee37a73f05eb1a1d08bb11.py create mode 100644 tests/small_samples/508ccd0dcac13ecee6f0cea939b73ba5319c780ddbb6c496be96fe5614871d4a.py create mode 100644 tests/small_samples/5182c37c0eb2a1b7402d1c3fc623d4e57106429cc932cce07630fc07781e4167.py create mode 100644 tests/small_samples/524a7a805db753f5ea998182ddaea49a177b75a7ae88ab77eaa879755857a15a.py create mode 100644 tests/small_samples/59b33fb13ecb2036cd31a92dac7eded938aab8b9e91f84c80eab0e8bec0441f0.py create mode 100644 tests/small_samples/5b248fd091bffcd4c82adafd17760cc0d471f60c584c91a3998b7f213029cee5.py create mode 100644 tests/small_samples/5ccbe1d4d1e9e02d612eda06a38b753f56c8e20a4780d2912230274c76d2568b.py create mode 100644 tests/small_samples/5da4523399bd1a8477d2d02970672787c08a73c1c5f0268b0d08de4c35a7f5a0.py create mode 100644 tests/small_samples/6105c9bae9aa36ffe1ac55a3c957c54952732ee47573522d1c19779c6c6e6d48.py create mode 100644 tests/small_samples/635d56ede8cbcb2824d42291eb9fe9288d5f09c768636aaa19984ffdfc91e9fe.py create mode 100644 tests/small_samples/6602443ba655e0e139cfb923d581f8da91071d631a42f81253c1e47fdc952da3.py create mode 100644 tests/small_samples/69bd4dd67f6d3737f72f314978488dfedd5e8071b45a2648757451ac47bf1b33.py create mode 100644 tests/small_samples/6a14a6ef8c8540838e00af19ff0b68dde868ec14a774a501cad3f055a40dd23e.py create mode 100644 tests/small_samples/6a33e6efd8198ed5610a6072c40faa1d1f0baa64ac2b14fb011ab24e5b32f941.py create mode 100644 tests/small_samples/6d0092f79094500dd7bfbe51cedab7e44db1745b729fb347f9a60dff7b96d09a.py create mode 100644 tests/small_samples/6d981a27f4f4672f186cb498c6c012ac2c6168dfd631e7fff5602e9e5586f00e.py create mode 100644 tests/small_samples/6e57262c88b56d0d657064aec550809ad12bb5f22524f12b25dfa8840a9856e2.py create mode 100644 tests/small_samples/736316309812e0ca8306cb7eec4c20d75f8e3c45cab3cd46cf4370524ada6823.py create mode 100644 tests/small_samples/73d0fdb16164fc57d2dfc4fad6182f18b9c004a668645de8c14219daa546e2d1.py create mode 100644 tests/small_samples/7532e0e7ee9c85347bb4bfcc8751604bf934d3e96e48f3bc8b5778d7856d5a7e.py create mode 100644 tests/small_samples/764af8204d7aa6e6c3d1856387308718719eb5e79ca7aa7f68561d74f9748a8d.py create mode 100644 tests/small_samples/770facda5ac10a6e33d18979e6a420423df9fead73483fda002ff8a241c2e795.py create mode 100644 tests/small_samples/780d1e5c82a0d4c02798ef5d5f2f8895334a242128f7a7a300f44cf2036b8dc4.py create mode 100644 tests/small_samples/7b46d9fff0efc0a4578c804c7b48af4c6fd9010a93b50865a80075e0320098ef.py create mode 100644 tests/small_samples/7ec5eed65083de4adc88655f15d02ce24303aa1f2860762d800d7e9093c6eb59.py create mode 100644 tests/small_samples/7f9ef841e54b680b479c91f764049ae8ca04539f9b9484af307c978d9155df4b.py create mode 100644 tests/small_samples/7fff707ddf87544616f198155d98e215700b261e39fda3844940ec2aab5a0610.py create mode 100644 tests/small_samples/81aed400e9ebc64f9f1f6d0fdaf6ccaefd81736d54d180db3c5a1b2aeb72fb6f.py create mode 100644 tests/small_samples/82697c5032f0c92b55da4d36c5b7ce2bba016eda66bb1d449e52afe319b447ea.py create mode 100644 tests/small_samples/83c8b55804e611761085ef55ca3c6aaac382500b797dfa4b797abdbedb23126b.py create mode 100644 tests/small_samples/8519155d8a424c7cbc4bc15042d50c3193688c600ac9552f9503672e7c01b4d9.py create mode 100644 tests/small_samples/867a476c53701b28e25aa4b445e586b8a6764f9f8582b98955c4352b0d8ba415.py create mode 100644 tests/small_samples/88f983dcf04b0d0b09cb105943226d186f9f6a8ada3da7c48a1a3a1c0d947995.py create mode 100644 tests/small_samples/8a2d183daa29dea1fdad279688a2b99dcfef00932e06d4693385dfc1634c6f6c.py create mode 100644 tests/small_samples/8d7d8e2330522993cf517ba2f4191e01c336fb27bbbfa40815629432b96d74fa.py create mode 100644 tests/small_samples/91f5b684f56b415a61d211027904e023f2371952602a8d71c17416d8fa3ceed7.py create mode 100644 tests/small_samples/927e4c80a3ef17328f8807a49fe82da7f223652fccfeab7484194b94007c2b74.py create mode 100644 tests/small_samples/93f00cfd350495557ead44e2dd46ac4ce7d913f6e5d86ba1b0d5044cec188438.py create mode 100644 tests/small_samples/994c59ca460328030a4a36060ee6143c6699a06c28192a779af62124c93476d9.py create mode 100644 tests/small_samples/9a30338a97c5bd67283cb31910c04624714cbf6c19f1382af18efccd443abff9.py create mode 100644 tests/small_samples/9b3db37076d3c7c76bdfd9badcc70d8047584433e1eea89f45014453d58bbc43.py create mode 100644 tests/small_samples/9f0ed8b1be98c481ba17f3f3fa0442cc67ae5730f8e854e23e3f3147f9bc5e8b.py create mode 100644 tests/small_samples/9f7d4ed823cb426db2e435dd7856f07c9965a88102bd63e5640a7e63250e2718.py create mode 100644 tests/small_samples/LOAD_NAME_ast_AugAssign.py create mode 100644 tests/small_samples/a2389f211aec4c553b1cec683b416480636d7c13d10e8db50b5da567192ce42f.py create mode 100644 tests/small_samples/a33f71955b90ec91ef184fccf593e537aa583db12b67d9130917a4349701eaa2.py create mode 100644 tests/small_samples/a35a3b669faf7fa486c7ca0a95a61efab9591a0d1677406c48c53e1a04ebe850.py create mode 100644 tests/small_samples/a3ab7db4c4e846bc2e660b97d021ff2167b71e1609ed29a92c9edd70332adc34.py create mode 100644 tests/small_samples/a6428177defd48080b32b7b570aa729067b9c8044821dbbb787cce7fb3999e73.py create mode 100644 tests/small_samples/a8c5d8fec98be9e324c50d6c89b207e35f3ad80ca7bf8c670b65b80cb092c7d2.py create mode 100644 tests/small_samples/a913b7799aa6a860097fb4daf0eb8954b97dad48e4880fa3ed76da5e9f736764.py create mode 100644 tests/small_samples/a9cf2f563ac80ad0066c4ef3ac10fa2f146252db49b3a0a9cb69e0c03e07827b.py create mode 100644 tests/small_samples/ad8aa993e6ee4eb5ee764d55f2e3fd636a99b2ecb8c5aff2b35fbb78a074ea30.py create mode 100644 tests/small_samples/ae9b3821230822abe9910bb1ebfe74ff2cedc19f646975fb2931f4b67fd4f189.py create mode 100644 tests/small_samples/b0f8cf7dd6323f9df8f3d5f38044c76f0688ea01b1c085b5867eb844780d9c23.py create mode 100644 tests/small_samples/b38dc0d61808291d3c0a1bb2ed6a6a488a3df729d2307d426f1a101c9e512f06.py create mode 100644 tests/small_samples/b80fbb517bb6b016947288beb9d24c05bbd3aa334585fd0f4a13bf25f7a3cca5.py create mode 100644 tests/small_samples/b8be3216d583e1ce26486ee2aff5cbe74fed88ebba7118db80a375c9514d1bc1.py create mode 100644 tests/small_samples/b8ccb32482909adb7b5677562337973df9562487a306bc7a9d5e43e626fa47ef.py create mode 100644 tests/small_samples/b9fe280619199e07642f4e0d263716394022a3311441d703bf943c3a5115ab40.py create mode 100644 tests/small_samples/ba8bf627448498ff15c46e5e5549e2f2fc2716d45309504753d1dce79842bb0e.py create mode 100644 tests/small_samples/baeab95d7182162c404ae9662cf716dba0a7d7c7662266307ae591a273993ea5.py create mode 100644 tests/small_samples/c069969a742f2faa3f432cb50c36f58a8158cdae7c19ce0536464b3f3e4b1dd9.py create mode 100644 tests/small_samples/c1a8b67677b66314b60f56743bfa80e17c35cf4f5c4ab2c890c693969db41fdc.py create mode 100644 tests/small_samples/c8004683dc7b5fb7ce5fab343696f152cb5a4b39eecfb6bf4a24c0b0847becc1.py create mode 100644 tests/small_samples/c919aaad611db2ffd30920265f6e811c28825591b226662ebaadc001c3b6c8e6.py create mode 100644 tests/small_samples/c9b64c28f424df67919f825adf4f93dfa774463768fc26cd36964121d34e28dd.py create mode 100644 tests/small_samples/caf1bb66048f7170dc753f62f472dbee9caa8f4932d49ac60741a1b7998d4405.py create mode 100644 tests/small_samples/cb33a25d03eeb972e05ef6585afab710a204477850e8b0f9bad0482f9b4364b2.py create mode 100644 tests/small_samples/cc6ef858e370019db11a9d07b4e6439b84ae021422241e69addc8a12b5b1a071.py create mode 100644 tests/small_samples/d06afcef230a0babce66218961fb7dc171e71ae19f194ebf34e85e3c9501eda7.py create mode 100644 tests/small_samples/d6d7ea7eb0c3608d8e642a9f78cce7ac05f00f9615d424cc902606412fff6809.py create mode 100644 tests/small_samples/d88dbf79f1c03ac9d231408b03584e8396ab41a959edecfde86b82df8ee7c918.py create mode 100644 tests/small_samples/d964710ed091aede2a79d0aafd4177ab682cca90f4909f9d6a2088110b30cbf3.py create mode 100644 tests/small_samples/d98e27d8963331b58e4e6b84c7580dafde4d9e2980ad4277ce55e6b186113c1d.py create mode 100644 tests/small_samples/dbe6280977fa2e696702da4231bab0e84973b6b16a22215bf7d4f10d8b160c1b.py create mode 100644 tests/small_samples/dc592fb930b28fe2b7181bec5d6f4b871bdd55c01bc22b0623e610eec70df7ab.py create mode 100644 tests/small_samples/dcf515466528197be9497b7a599fedb9ad7837e4c66d9356a426ce86c8742123.py create mode 100644 tests/small_samples/deadcode_listcomp.py create mode 100644 tests/small_samples/deadcode_string.py create mode 100644 tests/small_samples/e0d5430c6d9ee891b8adb6dc69d571ada7b1da181b905e47bc09bd291b90b3db.py create mode 100644 tests/small_samples/e463c913f286b9b53abcb9cca02fa76b9d85c4e100607ed26947a49b42bb0499.py create mode 100644 tests/small_samples/e5c099c5f3fe5e4a9cda029696aed3a678be6909cc5e2a78491fd9f54e88200f.py create mode 100644 tests/small_samples/e796977fbd5072af21adf19dd5ea5b6dd5e8affb91d39e280718aea2a7736fb9.py create mode 100644 tests/small_samples/e7b78c6892baf1b134f78b3ba897ee6592b11358c9e0962880526cd44c4e258d.py create mode 100644 tests/small_samples/e8a94f0a994ea84627b7cbc9132cf519ccaa6d756f8cb3458cf019e672a510a4.py create mode 100644 tests/small_samples/e920a2f2a7dd13d874987bed61fd5e18b8a63c9e838c24f6ad0aa08d3391bf04.py create mode 100644 tests/small_samples/ea94f24a1d9b57c7a7d62c428082790caae2fa16429db2e58b2f4addb67a1964.py create mode 100644 tests/small_samples/except_cleanup.py create mode 100644 tests/small_samples/f09192915e250c0e1630b5d9add1328874fcb799cc508db1d7b6a880b2d0acea.py create mode 100644 tests/small_samples/f4486595a4c229797a00be326b58743a5a386e343d70c54d451de212f97a7a8b.py create mode 100644 tests/small_samples/f4962cd6e6b77f4f1d6f676de32f29200067bf3ac05c63e1d60ef2823b4d1b10.py create mode 100644 tests/small_samples/f533555a1d2d56090b3757364cecf29604df0881e66395fa9533122623793bd9.py create mode 100644 tests/small_samples/f676fbfc99ca7fd38ceb2f4a2ec5edc49fdbc9f47685f14c6fde6239f2bc1590.py create mode 100644 tests/small_samples/fc6eb521024986baa84af2634f638e40af090be4aa70ab3c22f3d022e8068228.py create mode 100644 tests/small_samples/fe0fdfd09575f3cc013c0bc30a257104d3219a00fd6f777303ca17401f09ad9d.py create mode 100644 tests/small_samples/ff54d68f6c5751c3d7316722b049b34801c6e28b67bb8338490b4fee32c3e4c5.py create mode 100644 tests/small_samples/load_deref.py create mode 100644 tests/test_ipython.py create mode 100644 tests/test_main.py create mode 100644 tests/test_pytest.py create mode 100644 tests/utils.py create mode 100644 tox.ini + git tag 2.1.0 + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show pep518 + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync pep518 --verify + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show pep517 + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync pep517 --verify --verify-exclude 'wheel$' + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show metadata + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync metadata --verify INFO : Building metadata INFO : Building metadata with prepare_metadata_for_build_wheel INFO : Source tree: /usr/src/RPM/BUILD/python3-module-executing-2.1.0 INFO : Output dir: /usr/src/tmp/tmpo66inq6h + exit 0 Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.14015 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-executing-2.1.0 + export 'CFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'CXXFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'FFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + /usr/bin/python3 -m pyproject_installer -v build INFO : pyproject_installer.build_cmd._build : Building wheel INFO : pyproject_installer.build_cmd._build : Source tree: /usr/src/RPM/BUILD/python3-module-executing-2.1.0 INFO : pyproject_installer.build_cmd._build : Output dir: /usr/src/RPM/BUILD/python3-module-executing-2.1.0/dist DEBUG : pyproject_installer.lib.build_backend : Validating source path DEBUG : pyproject_installer.lib.build_backend : Checking for PEP517 spec DEBUG : pyproject_installer.lib.build_backend : Parsing configuration file: /usr/src/RPM/BUILD/python3-module-executing-2.1.0/pyproject.toml INFO : backend_caller.py : Calling hook build_wheel in subprocess INFO : backend_caller.py : Build backend: setuptools.build_meta INFO : backend_caller.py : Hook args: ['/usr/src/RPM/BUILD/python3-module-executing-2.1.0/dist'] INFO : backend_caller.py : Hook kwargs: {'config_settings': None} INFO : root : running bdist_wheel INFO : root : running build INFO : root : running build_py INFO : root : creating build INFO : root : creating build/lib INFO : root : creating build/lib/executing INFO : root : copying executing/version.py -> build/lib/executing INFO : root : copying executing/executing.py -> build/lib/executing INFO : root : copying executing/_position_node_finder.py -> build/lib/executing INFO : root : copying executing/_exceptions.py -> build/lib/executing INFO : root : copying executing/__init__.py -> build/lib/executing INFO : root : running egg_info INFO : root : creating executing.egg-info INFO : root : writing executing.egg-info/PKG-INFO INFO : root : writing dependency_links to executing.egg-info/dependency_links.txt INFO : root : writing requirements to executing.egg-info/requires.txt INFO : root : writing top-level names to executing.egg-info/top_level.txt INFO : root : writing manifest file 'executing.egg-info/SOURCES.txt' INFO : root : reading manifest template 'MANIFEST.in' INFO : root : adding license file 'LICENSE.txt' INFO : root : writing manifest file 'executing.egg-info/SOURCES.txt' INFO : root : copying executing/py.typed -> build/lib/executing INFO : root : installing to build/bdist.linux-x86_64/wheel INFO : root : running install INFO : root : running install_lib INFO : root : creating build/bdist.linux-x86_64 INFO : root : creating build/bdist.linux-x86_64/wheel INFO : root : creating build/bdist.linux-x86_64/wheel/executing INFO : root : copying build/lib/executing/py.typed -> build/bdist.linux-x86_64/wheel/executing INFO : root : copying build/lib/executing/__init__.py -> build/bdist.linux-x86_64/wheel/executing INFO : root : copying build/lib/executing/_exceptions.py -> build/bdist.linux-x86_64/wheel/executing INFO : root : copying build/lib/executing/_position_node_finder.py -> build/bdist.linux-x86_64/wheel/executing INFO : root : copying build/lib/executing/executing.py -> build/bdist.linux-x86_64/wheel/executing INFO : root : copying build/lib/executing/version.py -> build/bdist.linux-x86_64/wheel/executing INFO : root : running install_egg_info INFO : root : Copying executing.egg-info to build/bdist.linux-x86_64/wheel/executing-2.1.0-py3.12.egg-info INFO : root : running install_scripts INFO : root : creating build/bdist.linux-x86_64/wheel/executing-2.1.0.dist-info/WHEEL INFO : wheel : creating '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/dist/.tmp-5x6vsoys/executing-2.1.0-py2.py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it INFO : wheel : adding 'executing/__init__.py' INFO : wheel : adding 'executing/_exceptions.py' INFO : wheel : adding 'executing/_position_node_finder.py' INFO : wheel : adding 'executing/executing.py' INFO : wheel : adding 'executing/py.typed' INFO : wheel : adding 'executing/version.py' INFO : wheel : adding 'executing-2.1.0.dist-info/LICENSE.txt' INFO : wheel : adding 'executing-2.1.0.dist-info/METADATA' INFO : wheel : adding 'executing-2.1.0.dist-info/WHEEL' INFO : wheel : adding 'executing-2.1.0.dist-info/top_level.txt' INFO : wheel : adding 'executing-2.1.0.dist-info/RECORD' INFO : root : removing build/bdist.linux-x86_64/wheel INFO : pyproject_installer.build_cmd._build : Built wheel: executing-2.1.0-py2.py3-none-any.whl + exit 0 Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.71585 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + /bin/chmod -Rf u+rwX -- /usr/src/tmp/python3-module-executing-buildroot + : + /bin/rm -rf -- /usr/src/tmp/python3-module-executing-buildroot + PATH=/usr/libexec/rpm-build:/usr/src/bin:/usr/bin:/bin:/usr/local/bin:/usr/games + cd python3-module-executing-2.1.0 + /usr/bin/python3 -m pyproject_installer -v install --destdir=/usr/src/tmp/python3-module-executing-buildroot INFO : pyproject_installer.install_cmd._install : Installing wheel INFO : pyproject_installer.install_cmd._install : Wheel directory: /usr/src/RPM/BUILD/python3-module-executing-2.1.0/dist INFO : pyproject_installer.install_cmd._install : Wheel filename: executing-2.1.0-py2.py3-none-any.whl INFO : pyproject_installer.install_cmd._install : Destination: /usr/src/tmp/python3-module-executing-buildroot DEBUG : pyproject_installer.lib.wheel : Parsing wheel filename DEBUG : pyproject_installer.lib.wheel : Validating wheel file DEBUG : pyproject_installer.lib.wheel : Validating wheel spec version DEBUG : pyproject_installer.lib.wheel : Parsing wheel spec metadata DEBUG : pyproject_installer.lib.wheel : Validating RECORD INFO : pyproject_installer.install_cmd._install : Wheel installation root: /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages INFO : pyproject_installer.install_cmd._install : Extracting wheel DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: executing-2.1.0.dist-info/LICENSE.txt DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: executing-2.1.0.dist-info/WHEEL DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: executing-2.1.0.dist-info/top_level.txt DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: executing-2.1.0.dist-info/RECORD INFO : pyproject_installer.install_cmd._install : Wheel was installed + /usr/lib/rpm/brp-alt Cleaning files in /usr/src/tmp/python3-module-executing-buildroot (auto) Verifying and fixing files in /usr/src/tmp/python3-module-executing-buildroot (binconfig,pkgconfig,libtool,desktop,gnuconfig) Checking contents of files in /usr/src/tmp/python3-module-executing-buildroot/ (default) Compressing files in /usr/src/tmp/python3-module-executing-buildroot (auto) Adjusting library links in /usr/src/tmp/python3-module-executing-buildroot ./usr/lib: (from :0) Verifying ELF objects in /usr/src/tmp/python3-module-executing-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal) Splitting links to aliased files under /{,s}bin in /usr/src/tmp/python3-module-executing-buildroot Bytecompiling python3 modules in /usr/src/tmp/python3-module-executing-buildroot using /usr/bin/python3 compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/__init__.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/_exceptions.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/_position_node_finder.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/executing.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/version.py Bytecompiling python3 modules with optimization in /usr/src/tmp/python3-module-executing-buildroot using /usr/bin/python3 -O compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/__init__.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/_exceptions.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/_position_node_finder.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/executing.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/version.py Bytecompiling python3 modules with optimization-2 in /usr/src/tmp/python3-module-executing-buildroot using /usr/bin/python3 -OO compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/__init__.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/_exceptions.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/_position_node_finder.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/executing.py compile /usr/src/tmp/python3-module-executing-buildroot/usr/lib/python3/site-packages/executing/version.py Hardlinking identical .pyc and .opt-?.pyc files './usr/lib/python3/site-packages/executing/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/executing/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/executing/__pycache__/_exceptions.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/executing/__pycache__/_exceptions.cpython-312.pyc' './usr/lib/python3/site-packages/executing/__pycache__/version.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/executing/__pycache__/version.cpython-312.pyc' './usr/lib/python3/site-packages/executing/__pycache__/version.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/executing/__pycache__/version.cpython-312.opt-1.pyc' Executing(%check): /bin/sh -e /usr/src/tmp/rpm-tmp.71585 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-executing-2.1.0 + export 'CFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'CXXFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'FFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export NO_INTERNET=YES + NO_INTERNET=YES + /usr/bin/python3 -m pyproject_installer run -- python3 -m pytest -ra tests INFO : Creating venv INFO : Installing console scripts INFO : Installing package: /usr/src/RPM/BUILD/python3-module-executing-2.1.0/dist/executing-2.1.0-py2.py3-none-any.whl INFO : Running command: ['/usr/src/RPM/BUILD/python3-module-executing-2.1.0/.run_venv/bin/python3', '-m', 'pyproject_installer', 'install', '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/dist/executing-2.1.0-py2.py3-none-any.whl'] INFO : Running command: ['python3', '-m', 'pytest', '-ra', 'tests'] ============================= test session starts ============================== platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 rootdir: /usr/src/RPM/BUILD/python3-module-executing-2.1.0 configfile: pyproject.toml collected 208 items tests/test_ipython.py .. [ 0%] tests/test_main.py ...............F..ss............F..........F......... [ 26%] ...........F........................................................F... [ 61%] .......................F.........................F...sssssssssssssss. [ 94%] tests/test_pytest.py ............ [100%] =================================== FAILURES =================================== _____________________________ TestStuff.test_iter ______________________________ self = def test_iter(self): class iter_test: def __init__(self, typ): self.typ = typ self.it = iter([1, 2]) def __iter__(self): assert isinstance(calling_expression(), self.typ) return self def __next__(self): assert isinstance(calling_expression(), self.typ) return next(self.it) assert list(iter_test(ast.Call)) == [1, 2] assert next(iter(iter_test(ast.Call))) == 1 if sys.version_info >= (3, 11): > assert [i for i in iter_test(ast.ListComp)] == [1, 2] tests/test_main.py:607: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_main.py:595: in __iter__ assert isinstance(calling_expression(), self.typ) tests/test_main.py:48: in calling_expression return Source.executing(frame).node executing/executing.py:273: in executing node_finder = NodeFinder(frame, stmts, tree, lasti, source) executing/_position_node_finder.py:170: in __init__ self.verify(self.result, instruction) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = node = instruction = Instruction(opname='GET_ITER', opcode=68, arg=None, argval=None, argrepr='', offset=268, starts_line=None, is_jump_target=False, positions=Positions(lineno=607, end_lineno=607, col_offset=31, end_col_offset=54)) def verify(self, node: EnhancedAST, instruction: dis.Instruction) -> None: """ checks if this node could gererate this instruction """ op_name = instruction.opname extra_filter: Callable[[EnhancedAST], bool] = lambda e: True ctx: Type = type(None) def inst_match(opnames: Union[str, Sequence[str]], **kwargs: Any) -> bool: """ match instruction Parameters: opnames: (str|Seq[str]): inst.opname has to be equal to or in `opname` **kwargs: every arg has to match inst.arg Returns: True if all conditions match the instruction """ if isinstance(opnames, str): opnames = [opnames] return instruction.opname in opnames and kwargs == { k: getattr(instruction, k) for k in kwargs } def node_match(node_type: Union[Type, Tuple[Type, ...]], **kwargs: Any) -> bool: """ match the ast-node Parameters: node_type: type of the node **kwargs: every `arg` has to be equal `node.arg` or `node.arg` has to be an instance of `arg` if it is a type. """ return isinstance(node, node_type) and all( isinstance(getattr(node, k), v) if isinstance(v, type) else getattr(node, k) == v for k, v in kwargs.items() ) if op_name == "CACHE": return if inst_match("CALL") and node_match((ast.With, ast.AsyncWith)): # call to context.__exit__ return if inst_match(("CALL", "LOAD_FAST")) and node_match( (ast.ListComp, ast.GeneratorExp, ast.SetComp, ast.DictComp) ): # call to the generator function return if ( sys.version_info >= (3, 12) and inst_match(("LOAD_FAST_AND_CLEAR", "STORE_FAST")) and node_match((ast.ListComp, ast.SetComp, ast.DictComp)) ): return if inst_match(("CALL", "CALL_FUNCTION_EX")) and node_match( (ast.ClassDef, ast.Call) ): return if inst_match(("COMPARE_OP", "IS_OP", "CONTAINS_OP")) and node_match( ast.Compare ): return if inst_match("LOAD_NAME", argval="__annotations__") and node_match( ast.AnnAssign ): return if ( ( inst_match("LOAD_METHOD", argval="join") or inst_match("LOAD_ATTR", argval="join") # 3.12 or inst_match(("CALL", "BUILD_STRING")) ) and node_match(ast.BinOp, left=ast.Constant, op=ast.Mod) and isinstance(cast(ast.Constant, cast(ast.BinOp, node).left).value, str) ): # "..."%(...) uses "".join return if inst_match("STORE_SUBSCR") and node_match(ast.AnnAssign): # data: int return if inst_match(("DELETE_NAME", "DELETE_FAST")) and node_match( ast.Name, id=instruction.argval, ctx=ast.Del ): return if inst_match("BUILD_STRING") and ( node_match(ast.JoinedStr) or node_match(ast.BinOp, op=ast.Mod) ): return if inst_match(("BEFORE_WITH","WITH_EXCEPT_START")) and node_match(ast.With): return if inst_match(("STORE_NAME", "STORE_GLOBAL"), argval="__doc__") and node_match( ast.Constant ): # store docstrings return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_GLOBAL", "STORE_DEREF")) and node_match(ast.ExceptHandler) and instruction.argval == mangled_name(node) ): # store exception in variable return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_DEREF", "STORE_GLOBAL")) and node_match((ast.Import, ast.ImportFrom)) and any(mangled_name(cast(EnhancedAST, alias)) == instruction.argval for alias in cast(ast.Import, node).names) ): # store imported module in variable return if ( inst_match(("STORE_FAST", "STORE_DEREF", "STORE_NAME", "STORE_GLOBAL")) and ( node_match((ast.FunctionDef, ast.ClassDef, ast.AsyncFunctionDef)) or node_match( ast.Name, ctx=ast.Store, ) ) and instruction.argval == mangled_name(node) ): return if False: # TODO: match expressions are not supported for now if inst_match(("STORE_FAST", "STORE_NAME")) and node_match( ast.MatchAs, name=instruction.argval ): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchSequence): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchValue): return if inst_match("BINARY_OP") and node_match( ast.AugAssign, op=op_type_map[instruction.argrepr.removesuffix("=")] ): # a+=5 return if node_match(ast.Attribute, ctx=ast.Del) and inst_match( "DELETE_ATTR", argval=mangled_name(node) ): return if inst_match( ( "JUMP_IF_TRUE_OR_POP", "JUMP_IF_FALSE_OR_POP", "POP_JUMP_IF_TRUE", "POP_JUMP_IF_FALSE", ) ) and node_match(ast.BoolOp): # and/or short circuit return if inst_match("DELETE_SUBSCR") and node_match(ast.Subscript, ctx=ast.Del): return if ( node_match(ast.Name, ctx=ast.Load) or ( node_match(ast.Name, ctx=ast.Store) and isinstance(node.parent, ast.AugAssign) ) ) and inst_match( ( "LOAD_NAME", "LOAD_FAST", "LOAD_FAST_CHECK", "LOAD_GLOBAL", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF", ), argval=mangled_name(node), ): return if node_match(ast.Name, ctx=ast.Del) and inst_match( ("DELETE_NAME", "DELETE_GLOBAL", "DELETE_DEREF"), argval=mangled_name(node) ): return if node_match(ast.Constant) and inst_match( "LOAD_CONST", argval=cast(ast.Constant, node).value ): return if node_match( (ast.ListComp, ast.SetComp, ast.DictComp, ast.GeneratorExp, ast.For) ) and inst_match(("GET_ITER", "FOR_ITER")): return if sys.version_info >= (3, 12): if node_match(ast.UnaryOp, op=ast.UAdd) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_UNARY_POSITIVE" ): return if node_match(ast.Subscript) and inst_match("BINARY_SLICE"): return if node_match(ast.ImportFrom) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_IMPORT_STAR" ): return if ( node_match(ast.Yield) or isinstance(node.parent, ast.GeneratorExp) ) and inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_ASYNC_GEN_WRAP"): return if node_match(ast.Name) and inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match(ast.TypeVar) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVAR") or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_BOUND" ) or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_CONSTRAINTS" ) or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=mangled_name(node)) ): return if node_match(ast.TypeVarTuple) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVARTUPLE") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name) ): return if node_match(ast.ParamSpec) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_PARAMSPEC") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name)): return if node_match(ast.TypeAlias): if( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEALIAS") or inst_match( ("STORE_NAME", "STORE_FAST", "STORE_DEREF"), argrepr=node.name.id ) or inst_match("CALL") ): return if node_match(ast.ClassDef) and node.type_params: if inst_match( ("STORE_DEREF", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF"), argrepr=".type_params", ): return if inst_match(("STORE_FAST", "LOAD_FAST"), argrepr=".generic_base"): return if inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_SUBSCRIPT_GENERIC" ): return if inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match((ast.FunctionDef,ast.AsyncFunctionDef)) and node.type_params: if inst_match("CALL"): return if inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_SET_FUNCTION_TYPE_PARAMS" ): return if inst_match("LOAD_FAST",argval=".defaults"): return if inst_match("LOAD_FAST",argval=".kwdefaults"): return if inst_match("STORE_NAME", argval="__classdictcell__"): # this is a general thing return # f-strings if node_match(ast.JoinedStr) and ( inst_match("LOAD_ATTR", argval="join") or inst_match(("LIST_APPEND", "CALL")) ): return if node_match(ast.FormattedValue) and inst_match("FORMAT_VALUE"): return if sys.version_info >= (3, 13): if inst_match("NOP"): return if inst_match("TO_BOOL") and node_match(ast.BoolOp): return if inst_match("CALL_KW") and node_match((ast.Call, ast.ClassDef)): return if inst_match("LOAD_FAST", argval=".type_params"): return if inst_match("LOAD_FAST", argval="__classdict__"): return if inst_match("LOAD_FAST") and node_match( ( ast.FunctionDef, ast.ClassDef, ast.TypeAlias, ast.TypeVar, ast.Lambda, ast.AsyncFunctionDef, ) ): # These are loads for closure variables. # It is difficult to check that this is actually closure variable, see: # https://github.com/alexmojaki/executing/pull/80#discussion_r1716027317 return if ( inst_match("LOAD_FAST") and node_match(ast.TypeAlias) and node.name.id == instruction.argval ): return if inst_match("STORE_NAME",argval="__static_attributes__"): # the node is the first node in the body return if inst_match("LOAD_FAST") and isinstance(node.parent,ast.TypeVar): return # old verifier typ: Type = type(None) op_type: Type = type(None) if op_name.startswith(("BINARY_SUBSCR", "SLICE+")): typ = ast.Subscript ctx = ast.Load elif op_name.startswith("BINARY_"): typ = ast.BinOp op_type = op_type_map[instruction.argrepr] extra_filter = lambda e: isinstance(cast(ast.BinOp, e).op, op_type) elif op_name.startswith("UNARY_"): typ = ast.UnaryOp op_type = dict( UNARY_POSITIVE=ast.UAdd, UNARY_NEGATIVE=ast.USub, UNARY_NOT=ast.Not, UNARY_INVERT=ast.Invert, )[op_name] extra_filter = lambda e: isinstance(cast(ast.UnaryOp, e).op, op_type) elif op_name in ("LOAD_ATTR", "LOAD_METHOD", "LOOKUP_METHOD","LOAD_SUPER_ATTR"): typ = ast.Attribute ctx = ast.Load extra_filter = lambda e: mangled_name(e) == instruction.argval elif op_name in ( "LOAD_NAME", "LOAD_GLOBAL", "LOAD_FAST", "LOAD_DEREF", "LOAD_CLASSDEREF", ): typ = ast.Name ctx = ast.Load extra_filter = lambda e: cast(ast.Name, e).id == instruction.argval elif op_name in ("COMPARE_OP", "IS_OP", "CONTAINS_OP"): typ = ast.Compare extra_filter = lambda e: len(cast(ast.Compare, e).ops) == 1 elif op_name.startswith(("STORE_SLICE", "STORE_SUBSCR")): ctx = ast.Store typ = ast.Subscript elif op_name.startswith("STORE_ATTR"): ctx = ast.Store typ = ast.Attribute extra_filter = lambda e: mangled_name(e) == instruction.argval node_ctx = getattr(node, "ctx", None) ctx_match = ( ctx is not type(None) or not hasattr(node, "ctx") or isinstance(node_ctx, ctx) ) # check for old verifier if isinstance(node, typ) and ctx_match and extra_filter(node): return # generate error title = "ast.%s is not created from %s" % ( type(node).__name__, instruction.opname, ) > raise VerifierFailure(title, node, instruction) E executing._exceptions.VerifierFailure: ast.Call is not created from GET_ITER executing/_position_node_finder.py:878: VerifierFailure _____________________________ TestStuff.test_with ______________________________ self = def test_with(self): if sys.version_info >= (3, 11): > with tester: tests/test_main.py:576: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:157: in __enter__ self.get_node(ast.With) tests/utils.py:35: in get_node ex = self.get_executing(inspect.currentframe().f_back.f_back) tests/utils.py:42: in get_executing return Source.executing(frame) executing/executing.py:273: in executing node_finder = NodeFinder(frame, stmts, tree, lasti, source) executing/_position_node_finder.py:170: in __init__ self.verify(self.result, instruction) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = node = instruction = Instruction(opname='BEFORE_WITH', opcode=53, arg=None, argval=None, argrepr='', offset=50, starts_line=None, is_jump_target=False, positions=Positions(lineno=576, end_lineno=576, col_offset=17, end_col_offset=23)) def verify(self, node: EnhancedAST, instruction: dis.Instruction) -> None: """ checks if this node could gererate this instruction """ op_name = instruction.opname extra_filter: Callable[[EnhancedAST], bool] = lambda e: True ctx: Type = type(None) def inst_match(opnames: Union[str, Sequence[str]], **kwargs: Any) -> bool: """ match instruction Parameters: opnames: (str|Seq[str]): inst.opname has to be equal to or in `opname` **kwargs: every arg has to match inst.arg Returns: True if all conditions match the instruction """ if isinstance(opnames, str): opnames = [opnames] return instruction.opname in opnames and kwargs == { k: getattr(instruction, k) for k in kwargs } def node_match(node_type: Union[Type, Tuple[Type, ...]], **kwargs: Any) -> bool: """ match the ast-node Parameters: node_type: type of the node **kwargs: every `arg` has to be equal `node.arg` or `node.arg` has to be an instance of `arg` if it is a type. """ return isinstance(node, node_type) and all( isinstance(getattr(node, k), v) if isinstance(v, type) else getattr(node, k) == v for k, v in kwargs.items() ) if op_name == "CACHE": return if inst_match("CALL") and node_match((ast.With, ast.AsyncWith)): # call to context.__exit__ return if inst_match(("CALL", "LOAD_FAST")) and node_match( (ast.ListComp, ast.GeneratorExp, ast.SetComp, ast.DictComp) ): # call to the generator function return if ( sys.version_info >= (3, 12) and inst_match(("LOAD_FAST_AND_CLEAR", "STORE_FAST")) and node_match((ast.ListComp, ast.SetComp, ast.DictComp)) ): return if inst_match(("CALL", "CALL_FUNCTION_EX")) and node_match( (ast.ClassDef, ast.Call) ): return if inst_match(("COMPARE_OP", "IS_OP", "CONTAINS_OP")) and node_match( ast.Compare ): return if inst_match("LOAD_NAME", argval="__annotations__") and node_match( ast.AnnAssign ): return if ( ( inst_match("LOAD_METHOD", argval="join") or inst_match("LOAD_ATTR", argval="join") # 3.12 or inst_match(("CALL", "BUILD_STRING")) ) and node_match(ast.BinOp, left=ast.Constant, op=ast.Mod) and isinstance(cast(ast.Constant, cast(ast.BinOp, node).left).value, str) ): # "..."%(...) uses "".join return if inst_match("STORE_SUBSCR") and node_match(ast.AnnAssign): # data: int return if inst_match(("DELETE_NAME", "DELETE_FAST")) and node_match( ast.Name, id=instruction.argval, ctx=ast.Del ): return if inst_match("BUILD_STRING") and ( node_match(ast.JoinedStr) or node_match(ast.BinOp, op=ast.Mod) ): return if inst_match(("BEFORE_WITH","WITH_EXCEPT_START")) and node_match(ast.With): return if inst_match(("STORE_NAME", "STORE_GLOBAL"), argval="__doc__") and node_match( ast.Constant ): # store docstrings return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_GLOBAL", "STORE_DEREF")) and node_match(ast.ExceptHandler) and instruction.argval == mangled_name(node) ): # store exception in variable return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_DEREF", "STORE_GLOBAL")) and node_match((ast.Import, ast.ImportFrom)) and any(mangled_name(cast(EnhancedAST, alias)) == instruction.argval for alias in cast(ast.Import, node).names) ): # store imported module in variable return if ( inst_match(("STORE_FAST", "STORE_DEREF", "STORE_NAME", "STORE_GLOBAL")) and ( node_match((ast.FunctionDef, ast.ClassDef, ast.AsyncFunctionDef)) or node_match( ast.Name, ctx=ast.Store, ) ) and instruction.argval == mangled_name(node) ): return if False: # TODO: match expressions are not supported for now if inst_match(("STORE_FAST", "STORE_NAME")) and node_match( ast.MatchAs, name=instruction.argval ): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchSequence): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchValue): return if inst_match("BINARY_OP") and node_match( ast.AugAssign, op=op_type_map[instruction.argrepr.removesuffix("=")] ): # a+=5 return if node_match(ast.Attribute, ctx=ast.Del) and inst_match( "DELETE_ATTR", argval=mangled_name(node) ): return if inst_match( ( "JUMP_IF_TRUE_OR_POP", "JUMP_IF_FALSE_OR_POP", "POP_JUMP_IF_TRUE", "POP_JUMP_IF_FALSE", ) ) and node_match(ast.BoolOp): # and/or short circuit return if inst_match("DELETE_SUBSCR") and node_match(ast.Subscript, ctx=ast.Del): return if ( node_match(ast.Name, ctx=ast.Load) or ( node_match(ast.Name, ctx=ast.Store) and isinstance(node.parent, ast.AugAssign) ) ) and inst_match( ( "LOAD_NAME", "LOAD_FAST", "LOAD_FAST_CHECK", "LOAD_GLOBAL", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF", ), argval=mangled_name(node), ): return if node_match(ast.Name, ctx=ast.Del) and inst_match( ("DELETE_NAME", "DELETE_GLOBAL", "DELETE_DEREF"), argval=mangled_name(node) ): return if node_match(ast.Constant) and inst_match( "LOAD_CONST", argval=cast(ast.Constant, node).value ): return if node_match( (ast.ListComp, ast.SetComp, ast.DictComp, ast.GeneratorExp, ast.For) ) and inst_match(("GET_ITER", "FOR_ITER")): return if sys.version_info >= (3, 12): if node_match(ast.UnaryOp, op=ast.UAdd) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_UNARY_POSITIVE" ): return if node_match(ast.Subscript) and inst_match("BINARY_SLICE"): return if node_match(ast.ImportFrom) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_IMPORT_STAR" ): return if ( node_match(ast.Yield) or isinstance(node.parent, ast.GeneratorExp) ) and inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_ASYNC_GEN_WRAP"): return if node_match(ast.Name) and inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match(ast.TypeVar) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVAR") or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_BOUND" ) or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_CONSTRAINTS" ) or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=mangled_name(node)) ): return if node_match(ast.TypeVarTuple) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVARTUPLE") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name) ): return if node_match(ast.ParamSpec) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_PARAMSPEC") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name)): return if node_match(ast.TypeAlias): if( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEALIAS") or inst_match( ("STORE_NAME", "STORE_FAST", "STORE_DEREF"), argrepr=node.name.id ) or inst_match("CALL") ): return if node_match(ast.ClassDef) and node.type_params: if inst_match( ("STORE_DEREF", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF"), argrepr=".type_params", ): return if inst_match(("STORE_FAST", "LOAD_FAST"), argrepr=".generic_base"): return if inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_SUBSCRIPT_GENERIC" ): return if inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match((ast.FunctionDef,ast.AsyncFunctionDef)) and node.type_params: if inst_match("CALL"): return if inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_SET_FUNCTION_TYPE_PARAMS" ): return if inst_match("LOAD_FAST",argval=".defaults"): return if inst_match("LOAD_FAST",argval=".kwdefaults"): return if inst_match("STORE_NAME", argval="__classdictcell__"): # this is a general thing return # f-strings if node_match(ast.JoinedStr) and ( inst_match("LOAD_ATTR", argval="join") or inst_match(("LIST_APPEND", "CALL")) ): return if node_match(ast.FormattedValue) and inst_match("FORMAT_VALUE"): return if sys.version_info >= (3, 13): if inst_match("NOP"): return if inst_match("TO_BOOL") and node_match(ast.BoolOp): return if inst_match("CALL_KW") and node_match((ast.Call, ast.ClassDef)): return if inst_match("LOAD_FAST", argval=".type_params"): return if inst_match("LOAD_FAST", argval="__classdict__"): return if inst_match("LOAD_FAST") and node_match( ( ast.FunctionDef, ast.ClassDef, ast.TypeAlias, ast.TypeVar, ast.Lambda, ast.AsyncFunctionDef, ) ): # These are loads for closure variables. # It is difficult to check that this is actually closure variable, see: # https://github.com/alexmojaki/executing/pull/80#discussion_r1716027317 return if ( inst_match("LOAD_FAST") and node_match(ast.TypeAlias) and node.name.id == instruction.argval ): return if inst_match("STORE_NAME",argval="__static_attributes__"): # the node is the first node in the body return if inst_match("LOAD_FAST") and isinstance(node.parent,ast.TypeVar): return # old verifier typ: Type = type(None) op_type: Type = type(None) if op_name.startswith(("BINARY_SUBSCR", "SLICE+")): typ = ast.Subscript ctx = ast.Load elif op_name.startswith("BINARY_"): typ = ast.BinOp op_type = op_type_map[instruction.argrepr] extra_filter = lambda e: isinstance(cast(ast.BinOp, e).op, op_type) elif op_name.startswith("UNARY_"): typ = ast.UnaryOp op_type = dict( UNARY_POSITIVE=ast.UAdd, UNARY_NEGATIVE=ast.USub, UNARY_NOT=ast.Not, UNARY_INVERT=ast.Invert, )[op_name] extra_filter = lambda e: isinstance(cast(ast.UnaryOp, e).op, op_type) elif op_name in ("LOAD_ATTR", "LOAD_METHOD", "LOOKUP_METHOD","LOAD_SUPER_ATTR"): typ = ast.Attribute ctx = ast.Load extra_filter = lambda e: mangled_name(e) == instruction.argval elif op_name in ( "LOAD_NAME", "LOAD_GLOBAL", "LOAD_FAST", "LOAD_DEREF", "LOAD_CLASSDEREF", ): typ = ast.Name ctx = ast.Load extra_filter = lambda e: cast(ast.Name, e).id == instruction.argval elif op_name in ("COMPARE_OP", "IS_OP", "CONTAINS_OP"): typ = ast.Compare extra_filter = lambda e: len(cast(ast.Compare, e).ops) == 1 elif op_name.startswith(("STORE_SLICE", "STORE_SUBSCR")): ctx = ast.Store typ = ast.Subscript elif op_name.startswith("STORE_ATTR"): ctx = ast.Store typ = ast.Attribute extra_filter = lambda e: mangled_name(e) == instruction.argval node_ctx = getattr(node, "ctx", None) ctx_match = ( ctx is not type(None) or not hasattr(node, "ctx") or isinstance(node_ctx, ctx) ) # check for old verifier if isinstance(node, typ) and ctx_match and extra_filter(node): return # generate error title = "ast.%s is not created from %s" % ( type(node).__name__, instruction.opname, ) > raise VerifierFailure(title, node, instruction) E executing._exceptions.VerifierFailure: ast.Name is not created from BEFORE_WITH executing/_position_node_finder.py:878: VerifierFailure _ test_small_samples[ea94f24a1d9b57c7a7d62c428082790caae2fa16429db2e58b2f4addb67a1964.py] _ full_filename = '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/ea94f24a1d9b57c7a7d62c428082790caae2fa16429db2e58b2f4addb67a1964.py' result_filename = '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/sample_results/ea94f24a1d9b57c7a7d62c428082790caae2fa16429db2e58b2f4addb67a1964-py-3.12.json' @pytest.mark.parametrize( "full_filename,result_filename", list(sample_files("small_samples")) ) @pytest.mark.skipif(sys.version_info<(3,),reason="no 2.7 support") def test_small_samples(full_filename, result_filename): skip_sentinel = [ "load_deref", "4851dc1b626a95e97dbe0c53f96099d165b755dd1bd552c6ca771f7bca6d30f5", "508ccd0dcac13ecee6f0cea939b73ba5319c780ddbb6c496be96fe5614871d4a", "fc6eb521024986baa84af2634f638e40af090be4aa70ab3c22f3d022e8068228", "42a37b8a823eb2e510b967332661afd679c82c60b7177b992a47c16d81117c8a", "206e0609ff0589a0a32422ee902f09156af91746e27157c32c9595d12072f92a", ] skip_annotations = [ "d98e27d8963331b58e4e6b84c7580dafde4d9e2980ad4277ce55e6b186113c1d", "9b3db37076d3c7c76bdfd9badcc70d8047584433e1eea89f45014453d58bbc43", ] if any(s in full_filename for s in skip_sentinel) and sys.version_info < (3, 11): pytest.xfail("SentinelNodeFinder does not find some of the nodes (maybe a bug)") if any(s in full_filename for s in skip_annotations) and sys.version_info < (3, 7): pytest.xfail("no `from __future__ import annotations`") if ( (sys.version_info[:2] == (3, 7)) and "ad8aa993e6ee4eb5ee764d55f2e3fd636a99b2ecb8c5aff2b35fbb78a074ea30" in full_filename ): pytest.xfail("(i async for i in arange) can not be analyzed in 3.7") if ( (sys.version_info[:2] == (3, 5) or PYPY) and "1656dc52edd2385921104de7bb255ca369713f4b8c034ebeba5cf946058109bc" in full_filename ): pytest.skip("recursion takes to long in 3.5") > TestFiles().check_filename(full_filename, check_names=True) tests/test_main.py:751: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_main.py:888: in check_filename result = list(self.check_code(code, nodes, decorators, check_names=check_names)) tests/test_main.py:1448: in check_code for x in self.check_code(inst.argval, nodes, decorators, check_names=check_names): tests/test_main.py:1243: in check_code ex = Source.executing(frame) executing/executing.py:273: in executing node_finder = NodeFinder(frame, stmts, tree, lasti, source) executing/_position_node_finder.py:170: in __init__ self.verify(self.result, instruction) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = node = instruction = Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=84, starts_line=None, is_jump_target=False, positions=Positions(lineno=18, end_lineno=18, col_offset=9, end_col_offset=33)) def verify(self, node: EnhancedAST, instruction: dis.Instruction) -> None: """ checks if this node could gererate this instruction """ op_name = instruction.opname extra_filter: Callable[[EnhancedAST], bool] = lambda e: True ctx: Type = type(None) def inst_match(opnames: Union[str, Sequence[str]], **kwargs: Any) -> bool: """ match instruction Parameters: opnames: (str|Seq[str]): inst.opname has to be equal to or in `opname` **kwargs: every arg has to match inst.arg Returns: True if all conditions match the instruction """ if isinstance(opnames, str): opnames = [opnames] return instruction.opname in opnames and kwargs == { k: getattr(instruction, k) for k in kwargs } def node_match(node_type: Union[Type, Tuple[Type, ...]], **kwargs: Any) -> bool: """ match the ast-node Parameters: node_type: type of the node **kwargs: every `arg` has to be equal `node.arg` or `node.arg` has to be an instance of `arg` if it is a type. """ return isinstance(node, node_type) and all( isinstance(getattr(node, k), v) if isinstance(v, type) else getattr(node, k) == v for k, v in kwargs.items() ) if op_name == "CACHE": return if inst_match("CALL") and node_match((ast.With, ast.AsyncWith)): # call to context.__exit__ return if inst_match(("CALL", "LOAD_FAST")) and node_match( (ast.ListComp, ast.GeneratorExp, ast.SetComp, ast.DictComp) ): # call to the generator function return if ( sys.version_info >= (3, 12) and inst_match(("LOAD_FAST_AND_CLEAR", "STORE_FAST")) and node_match((ast.ListComp, ast.SetComp, ast.DictComp)) ): return if inst_match(("CALL", "CALL_FUNCTION_EX")) and node_match( (ast.ClassDef, ast.Call) ): return if inst_match(("COMPARE_OP", "IS_OP", "CONTAINS_OP")) and node_match( ast.Compare ): return if inst_match("LOAD_NAME", argval="__annotations__") and node_match( ast.AnnAssign ): return if ( ( inst_match("LOAD_METHOD", argval="join") or inst_match("LOAD_ATTR", argval="join") # 3.12 or inst_match(("CALL", "BUILD_STRING")) ) and node_match(ast.BinOp, left=ast.Constant, op=ast.Mod) and isinstance(cast(ast.Constant, cast(ast.BinOp, node).left).value, str) ): # "..."%(...) uses "".join return if inst_match("STORE_SUBSCR") and node_match(ast.AnnAssign): # data: int return if inst_match(("DELETE_NAME", "DELETE_FAST")) and node_match( ast.Name, id=instruction.argval, ctx=ast.Del ): return if inst_match("BUILD_STRING") and ( node_match(ast.JoinedStr) or node_match(ast.BinOp, op=ast.Mod) ): return if inst_match(("BEFORE_WITH","WITH_EXCEPT_START")) and node_match(ast.With): return if inst_match(("STORE_NAME", "STORE_GLOBAL"), argval="__doc__") and node_match( ast.Constant ): # store docstrings return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_GLOBAL", "STORE_DEREF")) and node_match(ast.ExceptHandler) and instruction.argval == mangled_name(node) ): # store exception in variable return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_DEREF", "STORE_GLOBAL")) and node_match((ast.Import, ast.ImportFrom)) and any(mangled_name(cast(EnhancedAST, alias)) == instruction.argval for alias in cast(ast.Import, node).names) ): # store imported module in variable return if ( inst_match(("STORE_FAST", "STORE_DEREF", "STORE_NAME", "STORE_GLOBAL")) and ( node_match((ast.FunctionDef, ast.ClassDef, ast.AsyncFunctionDef)) or node_match( ast.Name, ctx=ast.Store, ) ) and instruction.argval == mangled_name(node) ): return if False: # TODO: match expressions are not supported for now if inst_match(("STORE_FAST", "STORE_NAME")) and node_match( ast.MatchAs, name=instruction.argval ): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchSequence): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchValue): return if inst_match("BINARY_OP") and node_match( ast.AugAssign, op=op_type_map[instruction.argrepr.removesuffix("=")] ): # a+=5 return if node_match(ast.Attribute, ctx=ast.Del) and inst_match( "DELETE_ATTR", argval=mangled_name(node) ): return if inst_match( ( "JUMP_IF_TRUE_OR_POP", "JUMP_IF_FALSE_OR_POP", "POP_JUMP_IF_TRUE", "POP_JUMP_IF_FALSE", ) ) and node_match(ast.BoolOp): # and/or short circuit return if inst_match("DELETE_SUBSCR") and node_match(ast.Subscript, ctx=ast.Del): return if ( node_match(ast.Name, ctx=ast.Load) or ( node_match(ast.Name, ctx=ast.Store) and isinstance(node.parent, ast.AugAssign) ) ) and inst_match( ( "LOAD_NAME", "LOAD_FAST", "LOAD_FAST_CHECK", "LOAD_GLOBAL", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF", ), argval=mangled_name(node), ): return if node_match(ast.Name, ctx=ast.Del) and inst_match( ("DELETE_NAME", "DELETE_GLOBAL", "DELETE_DEREF"), argval=mangled_name(node) ): return if node_match(ast.Constant) and inst_match( "LOAD_CONST", argval=cast(ast.Constant, node).value ): return if node_match( (ast.ListComp, ast.SetComp, ast.DictComp, ast.GeneratorExp, ast.For) ) and inst_match(("GET_ITER", "FOR_ITER")): return if sys.version_info >= (3, 12): if node_match(ast.UnaryOp, op=ast.UAdd) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_UNARY_POSITIVE" ): return if node_match(ast.Subscript) and inst_match("BINARY_SLICE"): return if node_match(ast.ImportFrom) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_IMPORT_STAR" ): return if ( node_match(ast.Yield) or isinstance(node.parent, ast.GeneratorExp) ) and inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_ASYNC_GEN_WRAP"): return if node_match(ast.Name) and inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match(ast.TypeVar) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVAR") or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_BOUND" ) or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_CONSTRAINTS" ) or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=mangled_name(node)) ): return if node_match(ast.TypeVarTuple) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVARTUPLE") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name) ): return if node_match(ast.ParamSpec) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_PARAMSPEC") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name)): return if node_match(ast.TypeAlias): if( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEALIAS") or inst_match( ("STORE_NAME", "STORE_FAST", "STORE_DEREF"), argrepr=node.name.id ) or inst_match("CALL") ): return if node_match(ast.ClassDef) and node.type_params: if inst_match( ("STORE_DEREF", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF"), argrepr=".type_params", ): return if inst_match(("STORE_FAST", "LOAD_FAST"), argrepr=".generic_base"): return if inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_SUBSCRIPT_GENERIC" ): return if inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match((ast.FunctionDef,ast.AsyncFunctionDef)) and node.type_params: if inst_match("CALL"): return if inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_SET_FUNCTION_TYPE_PARAMS" ): return if inst_match("LOAD_FAST",argval=".defaults"): return if inst_match("LOAD_FAST",argval=".kwdefaults"): return if inst_match("STORE_NAME", argval="__classdictcell__"): # this is a general thing return # f-strings if node_match(ast.JoinedStr) and ( inst_match("LOAD_ATTR", argval="join") or inst_match(("LIST_APPEND", "CALL")) ): return if node_match(ast.FormattedValue) and inst_match("FORMAT_VALUE"): return if sys.version_info >= (3, 13): if inst_match("NOP"): return if inst_match("TO_BOOL") and node_match(ast.BoolOp): return if inst_match("CALL_KW") and node_match((ast.Call, ast.ClassDef)): return if inst_match("LOAD_FAST", argval=".type_params"): return if inst_match("LOAD_FAST", argval="__classdict__"): return if inst_match("LOAD_FAST") and node_match( ( ast.FunctionDef, ast.ClassDef, ast.TypeAlias, ast.TypeVar, ast.Lambda, ast.AsyncFunctionDef, ) ): # These are loads for closure variables. # It is difficult to check that this is actually closure variable, see: # https://github.com/alexmojaki/executing/pull/80#discussion_r1716027317 return if ( inst_match("LOAD_FAST") and node_match(ast.TypeAlias) and node.name.id == instruction.argval ): return if inst_match("STORE_NAME",argval="__static_attributes__"): # the node is the first node in the body return if inst_match("LOAD_FAST") and isinstance(node.parent,ast.TypeVar): return # old verifier typ: Type = type(None) op_type: Type = type(None) if op_name.startswith(("BINARY_SUBSCR", "SLICE+")): typ = ast.Subscript ctx = ast.Load elif op_name.startswith("BINARY_"): typ = ast.BinOp op_type = op_type_map[instruction.argrepr] extra_filter = lambda e: isinstance(cast(ast.BinOp, e).op, op_type) elif op_name.startswith("UNARY_"): typ = ast.UnaryOp op_type = dict( UNARY_POSITIVE=ast.UAdd, UNARY_NEGATIVE=ast.USub, UNARY_NOT=ast.Not, UNARY_INVERT=ast.Invert, )[op_name] extra_filter = lambda e: isinstance(cast(ast.UnaryOp, e).op, op_type) elif op_name in ("LOAD_ATTR", "LOAD_METHOD", "LOOKUP_METHOD","LOAD_SUPER_ATTR"): typ = ast.Attribute ctx = ast.Load extra_filter = lambda e: mangled_name(e) == instruction.argval elif op_name in ( "LOAD_NAME", "LOAD_GLOBAL", "LOAD_FAST", "LOAD_DEREF", "LOAD_CLASSDEREF", ): typ = ast.Name ctx = ast.Load extra_filter = lambda e: cast(ast.Name, e).id == instruction.argval elif op_name in ("COMPARE_OP", "IS_OP", "CONTAINS_OP"): typ = ast.Compare extra_filter = lambda e: len(cast(ast.Compare, e).ops) == 1 elif op_name.startswith(("STORE_SLICE", "STORE_SUBSCR")): ctx = ast.Store typ = ast.Subscript elif op_name.startswith("STORE_ATTR"): ctx = ast.Store typ = ast.Attribute extra_filter = lambda e: mangled_name(e) == instruction.argval node_ctx = getattr(node, "ctx", None) ctx_match = ( ctx is not type(None) or not hasattr(node, "ctx") or isinstance(node_ctx, ctx) ) # check for old verifier if isinstance(node, typ) and ctx_match and extra_filter(node): return # generate error title = "ast.%s is not created from %s" % ( type(node).__name__, instruction.opname, ) > raise VerifierFailure(title, node, instruction) E executing._exceptions.VerifierFailure: ast.Name is not created from CALL executing/_position_node_finder.py:878: VerifierFailure ----------------------------- Captured stdout call ----------------------------- check /usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/ea94f24a1d9b57c7a7d62c428082790caae2fa16429db2e58b2f4addb67a1964.py VerifierFailure: ast.Name is not created from CALL instruction: Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=84, starts_line=None, is_jump_target=False, positions=Positions(lineno=18, end_lineno=18, col_offset=9, end_col_offset=33)) node: Name(id='open_with_encoding_check', ctx=Load(), lineno=18, col_offset=9, end_lineno=18, end_col_offset=33) parent node: withitem source code: 14: # 15: 16: def read_source_file(filename): 17: from lib2to3.pgen2.tokenize import cookie_re 18: with open_with_encoding_check as f: 19: [cookie_re for i, line in enumerate] None bytecode: _ test_small_samples[c9b64c28f424df67919f825adf4f93dfa774463768fc26cd36964121d34e28dd.py] _ full_filename = '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/c9b64c28f424df67919f825adf4f93dfa774463768fc26cd36964121d34e28dd.py' result_filename = '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/sample_results/c9b64c28f424df67919f825adf4f93dfa774463768fc26cd36964121d34e28dd-py-3.12.json' @pytest.mark.parametrize( "full_filename,result_filename", list(sample_files("small_samples")) ) @pytest.mark.skipif(sys.version_info<(3,),reason="no 2.7 support") def test_small_samples(full_filename, result_filename): skip_sentinel = [ "load_deref", "4851dc1b626a95e97dbe0c53f96099d165b755dd1bd552c6ca771f7bca6d30f5", "508ccd0dcac13ecee6f0cea939b73ba5319c780ddbb6c496be96fe5614871d4a", "fc6eb521024986baa84af2634f638e40af090be4aa70ab3c22f3d022e8068228", "42a37b8a823eb2e510b967332661afd679c82c60b7177b992a47c16d81117c8a", "206e0609ff0589a0a32422ee902f09156af91746e27157c32c9595d12072f92a", ] skip_annotations = [ "d98e27d8963331b58e4e6b84c7580dafde4d9e2980ad4277ce55e6b186113c1d", "9b3db37076d3c7c76bdfd9badcc70d8047584433e1eea89f45014453d58bbc43", ] if any(s in full_filename for s in skip_sentinel) and sys.version_info < (3, 11): pytest.xfail("SentinelNodeFinder does not find some of the nodes (maybe a bug)") if any(s in full_filename for s in skip_annotations) and sys.version_info < (3, 7): pytest.xfail("no `from __future__ import annotations`") if ( (sys.version_info[:2] == (3, 7)) and "ad8aa993e6ee4eb5ee764d55f2e3fd636a99b2ecb8c5aff2b35fbb78a074ea30" in full_filename ): pytest.xfail("(i async for i in arange) can not be analyzed in 3.7") if ( (sys.version_info[:2] == (3, 5) or PYPY) and "1656dc52edd2385921104de7bb255ca369713f4b8c034ebeba5cf946058109bc" in full_filename ): pytest.skip("recursion takes to long in 3.5") > TestFiles().check_filename(full_filename, check_names=True) tests/test_main.py:751: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_main.py:888: in check_filename result = list(self.check_code(code, nodes, decorators, check_names=check_names)) tests/test_main.py:1448: in check_code for x in self.check_code(inst.argval, nodes, decorators, check_names=check_names): tests/test_main.py:1243: in check_code ex = Source.executing(frame) executing/executing.py:273: in executing node_finder = NodeFinder(frame, stmts, tree, lasti, source) executing/_position_node_finder.py:170: in __init__ self.verify(self.result, instruction) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = node = instruction = Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=46, starts_line=None, is_jump_target=False, positions=Positions(lineno=17, end_lineno=17, col_offset=9, end_col_offset=22)) def verify(self, node: EnhancedAST, instruction: dis.Instruction) -> None: """ checks if this node could gererate this instruction """ op_name = instruction.opname extra_filter: Callable[[EnhancedAST], bool] = lambda e: True ctx: Type = type(None) def inst_match(opnames: Union[str, Sequence[str]], **kwargs: Any) -> bool: """ match instruction Parameters: opnames: (str|Seq[str]): inst.opname has to be equal to or in `opname` **kwargs: every arg has to match inst.arg Returns: True if all conditions match the instruction """ if isinstance(opnames, str): opnames = [opnames] return instruction.opname in opnames and kwargs == { k: getattr(instruction, k) for k in kwargs } def node_match(node_type: Union[Type, Tuple[Type, ...]], **kwargs: Any) -> bool: """ match the ast-node Parameters: node_type: type of the node **kwargs: every `arg` has to be equal `node.arg` or `node.arg` has to be an instance of `arg` if it is a type. """ return isinstance(node, node_type) and all( isinstance(getattr(node, k), v) if isinstance(v, type) else getattr(node, k) == v for k, v in kwargs.items() ) if op_name == "CACHE": return if inst_match("CALL") and node_match((ast.With, ast.AsyncWith)): # call to context.__exit__ return if inst_match(("CALL", "LOAD_FAST")) and node_match( (ast.ListComp, ast.GeneratorExp, ast.SetComp, ast.DictComp) ): # call to the generator function return if ( sys.version_info >= (3, 12) and inst_match(("LOAD_FAST_AND_CLEAR", "STORE_FAST")) and node_match((ast.ListComp, ast.SetComp, ast.DictComp)) ): return if inst_match(("CALL", "CALL_FUNCTION_EX")) and node_match( (ast.ClassDef, ast.Call) ): return if inst_match(("COMPARE_OP", "IS_OP", "CONTAINS_OP")) and node_match( ast.Compare ): return if inst_match("LOAD_NAME", argval="__annotations__") and node_match( ast.AnnAssign ): return if ( ( inst_match("LOAD_METHOD", argval="join") or inst_match("LOAD_ATTR", argval="join") # 3.12 or inst_match(("CALL", "BUILD_STRING")) ) and node_match(ast.BinOp, left=ast.Constant, op=ast.Mod) and isinstance(cast(ast.Constant, cast(ast.BinOp, node).left).value, str) ): # "..."%(...) uses "".join return if inst_match("STORE_SUBSCR") and node_match(ast.AnnAssign): # data: int return if inst_match(("DELETE_NAME", "DELETE_FAST")) and node_match( ast.Name, id=instruction.argval, ctx=ast.Del ): return if inst_match("BUILD_STRING") and ( node_match(ast.JoinedStr) or node_match(ast.BinOp, op=ast.Mod) ): return if inst_match(("BEFORE_WITH","WITH_EXCEPT_START")) and node_match(ast.With): return if inst_match(("STORE_NAME", "STORE_GLOBAL"), argval="__doc__") and node_match( ast.Constant ): # store docstrings return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_GLOBAL", "STORE_DEREF")) and node_match(ast.ExceptHandler) and instruction.argval == mangled_name(node) ): # store exception in variable return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_DEREF", "STORE_GLOBAL")) and node_match((ast.Import, ast.ImportFrom)) and any(mangled_name(cast(EnhancedAST, alias)) == instruction.argval for alias in cast(ast.Import, node).names) ): # store imported module in variable return if ( inst_match(("STORE_FAST", "STORE_DEREF", "STORE_NAME", "STORE_GLOBAL")) and ( node_match((ast.FunctionDef, ast.ClassDef, ast.AsyncFunctionDef)) or node_match( ast.Name, ctx=ast.Store, ) ) and instruction.argval == mangled_name(node) ): return if False: # TODO: match expressions are not supported for now if inst_match(("STORE_FAST", "STORE_NAME")) and node_match( ast.MatchAs, name=instruction.argval ): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchSequence): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchValue): return if inst_match("BINARY_OP") and node_match( ast.AugAssign, op=op_type_map[instruction.argrepr.removesuffix("=")] ): # a+=5 return if node_match(ast.Attribute, ctx=ast.Del) and inst_match( "DELETE_ATTR", argval=mangled_name(node) ): return if inst_match( ( "JUMP_IF_TRUE_OR_POP", "JUMP_IF_FALSE_OR_POP", "POP_JUMP_IF_TRUE", "POP_JUMP_IF_FALSE", ) ) and node_match(ast.BoolOp): # and/or short circuit return if inst_match("DELETE_SUBSCR") and node_match(ast.Subscript, ctx=ast.Del): return if ( node_match(ast.Name, ctx=ast.Load) or ( node_match(ast.Name, ctx=ast.Store) and isinstance(node.parent, ast.AugAssign) ) ) and inst_match( ( "LOAD_NAME", "LOAD_FAST", "LOAD_FAST_CHECK", "LOAD_GLOBAL", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF", ), argval=mangled_name(node), ): return if node_match(ast.Name, ctx=ast.Del) and inst_match( ("DELETE_NAME", "DELETE_GLOBAL", "DELETE_DEREF"), argval=mangled_name(node) ): return if node_match(ast.Constant) and inst_match( "LOAD_CONST", argval=cast(ast.Constant, node).value ): return if node_match( (ast.ListComp, ast.SetComp, ast.DictComp, ast.GeneratorExp, ast.For) ) and inst_match(("GET_ITER", "FOR_ITER")): return if sys.version_info >= (3, 12): if node_match(ast.UnaryOp, op=ast.UAdd) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_UNARY_POSITIVE" ): return if node_match(ast.Subscript) and inst_match("BINARY_SLICE"): return if node_match(ast.ImportFrom) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_IMPORT_STAR" ): return if ( node_match(ast.Yield) or isinstance(node.parent, ast.GeneratorExp) ) and inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_ASYNC_GEN_WRAP"): return if node_match(ast.Name) and inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match(ast.TypeVar) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVAR") or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_BOUND" ) or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_CONSTRAINTS" ) or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=mangled_name(node)) ): return if node_match(ast.TypeVarTuple) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVARTUPLE") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name) ): return if node_match(ast.ParamSpec) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_PARAMSPEC") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name)): return if node_match(ast.TypeAlias): if( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEALIAS") or inst_match( ("STORE_NAME", "STORE_FAST", "STORE_DEREF"), argrepr=node.name.id ) or inst_match("CALL") ): return if node_match(ast.ClassDef) and node.type_params: if inst_match( ("STORE_DEREF", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF"), argrepr=".type_params", ): return if inst_match(("STORE_FAST", "LOAD_FAST"), argrepr=".generic_base"): return if inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_SUBSCRIPT_GENERIC" ): return if inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match((ast.FunctionDef,ast.AsyncFunctionDef)) and node.type_params: if inst_match("CALL"): return if inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_SET_FUNCTION_TYPE_PARAMS" ): return if inst_match("LOAD_FAST",argval=".defaults"): return if inst_match("LOAD_FAST",argval=".kwdefaults"): return if inst_match("STORE_NAME", argval="__classdictcell__"): # this is a general thing return # f-strings if node_match(ast.JoinedStr) and ( inst_match("LOAD_ATTR", argval="join") or inst_match(("LIST_APPEND", "CALL")) ): return if node_match(ast.FormattedValue) and inst_match("FORMAT_VALUE"): return if sys.version_info >= (3, 13): if inst_match("NOP"): return if inst_match("TO_BOOL") and node_match(ast.BoolOp): return if inst_match("CALL_KW") and node_match((ast.Call, ast.ClassDef)): return if inst_match("LOAD_FAST", argval=".type_params"): return if inst_match("LOAD_FAST", argval="__classdict__"): return if inst_match("LOAD_FAST") and node_match( ( ast.FunctionDef, ast.ClassDef, ast.TypeAlias, ast.TypeVar, ast.Lambda, ast.AsyncFunctionDef, ) ): # These are loads for closure variables. # It is difficult to check that this is actually closure variable, see: # https://github.com/alexmojaki/executing/pull/80#discussion_r1716027317 return if ( inst_match("LOAD_FAST") and node_match(ast.TypeAlias) and node.name.id == instruction.argval ): return if inst_match("STORE_NAME",argval="__static_attributes__"): # the node is the first node in the body return if inst_match("LOAD_FAST") and isinstance(node.parent,ast.TypeVar): return # old verifier typ: Type = type(None) op_type: Type = type(None) if op_name.startswith(("BINARY_SUBSCR", "SLICE+")): typ = ast.Subscript ctx = ast.Load elif op_name.startswith("BINARY_"): typ = ast.BinOp op_type = op_type_map[instruction.argrepr] extra_filter = lambda e: isinstance(cast(ast.BinOp, e).op, op_type) elif op_name.startswith("UNARY_"): typ = ast.UnaryOp op_type = dict( UNARY_POSITIVE=ast.UAdd, UNARY_NEGATIVE=ast.USub, UNARY_NOT=ast.Not, UNARY_INVERT=ast.Invert, )[op_name] extra_filter = lambda e: isinstance(cast(ast.UnaryOp, e).op, op_type) elif op_name in ("LOAD_ATTR", "LOAD_METHOD", "LOOKUP_METHOD","LOAD_SUPER_ATTR"): typ = ast.Attribute ctx = ast.Load extra_filter = lambda e: mangled_name(e) == instruction.argval elif op_name in ( "LOAD_NAME", "LOAD_GLOBAL", "LOAD_FAST", "LOAD_DEREF", "LOAD_CLASSDEREF", ): typ = ast.Name ctx = ast.Load extra_filter = lambda e: cast(ast.Name, e).id == instruction.argval elif op_name in ("COMPARE_OP", "IS_OP", "CONTAINS_OP"): typ = ast.Compare extra_filter = lambda e: len(cast(ast.Compare, e).ops) == 1 elif op_name.startswith(("STORE_SLICE", "STORE_SUBSCR")): ctx = ast.Store typ = ast.Subscript elif op_name.startswith("STORE_ATTR"): ctx = ast.Store typ = ast.Attribute extra_filter = lambda e: mangled_name(e) == instruction.argval node_ctx = getattr(node, "ctx", None) ctx_match = ( ctx is not type(None) or not hasattr(node, "ctx") or isinstance(node_ctx, ctx) ) # check for old verifier if isinstance(node, typ) and ctx_match and extra_filter(node): return # generate error title = "ast.%s is not created from %s" % ( type(node).__name__, instruction.opname, ) > raise VerifierFailure(title, node, instruction) E executing._exceptions.VerifierFailure: ast.Name is not created from CALL executing/_position_node_finder.py:878: VerifierFailure ----------------------------- Captured stdout call ----------------------------- check /usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/c9b64c28f424df67919f825adf4f93dfa774463768fc26cd36964121d34e28dd.py VerifierFailure: ast.Name is not created from CALL instruction: Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=46, starts_line=None, is_jump_target=False, positions=Positions(lineno=17, end_lineno=17, col_offset=9, end_col_offset=22)) node: Name(id='error_handler', ctx=Load(), lineno=17, col_offset=9, end_lineno=17, end_col_offset=22) parent node: withitem source code: 13: # self.walk_deadcode(node.subject, deadcode) 14: # 15: 16: def main(argv: Sequence=None) -> int: 17: with error_handler: 18: if args: 19: return uninstall 20: else: 21: raise NotImplementedError 22: AssertionError None bytecode: _ test_small_samples[635d56ede8cbcb2824d42291eb9fe9288d5f09c768636aaa19984ffdfc91e9fe.py] _ full_filename = '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/635d56ede8cbcb2824d42291eb9fe9288d5f09c768636aaa19984ffdfc91e9fe.py' result_filename = '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/sample_results/635d56ede8cbcb2824d42291eb9fe9288d5f09c768636aaa19984ffdfc91e9fe-py-3.12.json' @pytest.mark.parametrize( "full_filename,result_filename", list(sample_files("small_samples")) ) @pytest.mark.skipif(sys.version_info<(3,),reason="no 2.7 support") def test_small_samples(full_filename, result_filename): skip_sentinel = [ "load_deref", "4851dc1b626a95e97dbe0c53f96099d165b755dd1bd552c6ca771f7bca6d30f5", "508ccd0dcac13ecee6f0cea939b73ba5319c780ddbb6c496be96fe5614871d4a", "fc6eb521024986baa84af2634f638e40af090be4aa70ab3c22f3d022e8068228", "42a37b8a823eb2e510b967332661afd679c82c60b7177b992a47c16d81117c8a", "206e0609ff0589a0a32422ee902f09156af91746e27157c32c9595d12072f92a", ] skip_annotations = [ "d98e27d8963331b58e4e6b84c7580dafde4d9e2980ad4277ce55e6b186113c1d", "9b3db37076d3c7c76bdfd9badcc70d8047584433e1eea89f45014453d58bbc43", ] if any(s in full_filename for s in skip_sentinel) and sys.version_info < (3, 11): pytest.xfail("SentinelNodeFinder does not find some of the nodes (maybe a bug)") if any(s in full_filename for s in skip_annotations) and sys.version_info < (3, 7): pytest.xfail("no `from __future__ import annotations`") if ( (sys.version_info[:2] == (3, 7)) and "ad8aa993e6ee4eb5ee764d55f2e3fd636a99b2ecb8c5aff2b35fbb78a074ea30" in full_filename ): pytest.xfail("(i async for i in arange) can not be analyzed in 3.7") if ( (sys.version_info[:2] == (3, 5) or PYPY) and "1656dc52edd2385921104de7bb255ca369713f4b8c034ebeba5cf946058109bc" in full_filename ): pytest.skip("recursion takes to long in 3.5") > TestFiles().check_filename(full_filename, check_names=True) tests/test_main.py:751: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_main.py:888: in check_filename result = list(self.check_code(code, nodes, decorators, check_names=check_names)) tests/test_main.py:1243: in check_code ex = Source.executing(frame) executing/executing.py:273: in executing node_finder = NodeFinder(frame, stmts, tree, lasti, source) executing/_position_node_finder.py:170: in __init__ self.verify(self.result, instruction) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = node = instruction = Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=34, starts_line=None, is_jump_target=False, positions=Positions(lineno=16, end_lineno=16, col_offset=5, end_col_offset=9)) def verify(self, node: EnhancedAST, instruction: dis.Instruction) -> None: """ checks if this node could gererate this instruction """ op_name = instruction.opname extra_filter: Callable[[EnhancedAST], bool] = lambda e: True ctx: Type = type(None) def inst_match(opnames: Union[str, Sequence[str]], **kwargs: Any) -> bool: """ match instruction Parameters: opnames: (str|Seq[str]): inst.opname has to be equal to or in `opname` **kwargs: every arg has to match inst.arg Returns: True if all conditions match the instruction """ if isinstance(opnames, str): opnames = [opnames] return instruction.opname in opnames and kwargs == { k: getattr(instruction, k) for k in kwargs } def node_match(node_type: Union[Type, Tuple[Type, ...]], **kwargs: Any) -> bool: """ match the ast-node Parameters: node_type: type of the node **kwargs: every `arg` has to be equal `node.arg` or `node.arg` has to be an instance of `arg` if it is a type. """ return isinstance(node, node_type) and all( isinstance(getattr(node, k), v) if isinstance(v, type) else getattr(node, k) == v for k, v in kwargs.items() ) if op_name == "CACHE": return if inst_match("CALL") and node_match((ast.With, ast.AsyncWith)): # call to context.__exit__ return if inst_match(("CALL", "LOAD_FAST")) and node_match( (ast.ListComp, ast.GeneratorExp, ast.SetComp, ast.DictComp) ): # call to the generator function return if ( sys.version_info >= (3, 12) and inst_match(("LOAD_FAST_AND_CLEAR", "STORE_FAST")) and node_match((ast.ListComp, ast.SetComp, ast.DictComp)) ): return if inst_match(("CALL", "CALL_FUNCTION_EX")) and node_match( (ast.ClassDef, ast.Call) ): return if inst_match(("COMPARE_OP", "IS_OP", "CONTAINS_OP")) and node_match( ast.Compare ): return if inst_match("LOAD_NAME", argval="__annotations__") and node_match( ast.AnnAssign ): return if ( ( inst_match("LOAD_METHOD", argval="join") or inst_match("LOAD_ATTR", argval="join") # 3.12 or inst_match(("CALL", "BUILD_STRING")) ) and node_match(ast.BinOp, left=ast.Constant, op=ast.Mod) and isinstance(cast(ast.Constant, cast(ast.BinOp, node).left).value, str) ): # "..."%(...) uses "".join return if inst_match("STORE_SUBSCR") and node_match(ast.AnnAssign): # data: int return if inst_match(("DELETE_NAME", "DELETE_FAST")) and node_match( ast.Name, id=instruction.argval, ctx=ast.Del ): return if inst_match("BUILD_STRING") and ( node_match(ast.JoinedStr) or node_match(ast.BinOp, op=ast.Mod) ): return if inst_match(("BEFORE_WITH","WITH_EXCEPT_START")) and node_match(ast.With): return if inst_match(("STORE_NAME", "STORE_GLOBAL"), argval="__doc__") and node_match( ast.Constant ): # store docstrings return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_GLOBAL", "STORE_DEREF")) and node_match(ast.ExceptHandler) and instruction.argval == mangled_name(node) ): # store exception in variable return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_DEREF", "STORE_GLOBAL")) and node_match((ast.Import, ast.ImportFrom)) and any(mangled_name(cast(EnhancedAST, alias)) == instruction.argval for alias in cast(ast.Import, node).names) ): # store imported module in variable return if ( inst_match(("STORE_FAST", "STORE_DEREF", "STORE_NAME", "STORE_GLOBAL")) and ( node_match((ast.FunctionDef, ast.ClassDef, ast.AsyncFunctionDef)) or node_match( ast.Name, ctx=ast.Store, ) ) and instruction.argval == mangled_name(node) ): return if False: # TODO: match expressions are not supported for now if inst_match(("STORE_FAST", "STORE_NAME")) and node_match( ast.MatchAs, name=instruction.argval ): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchSequence): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchValue): return if inst_match("BINARY_OP") and node_match( ast.AugAssign, op=op_type_map[instruction.argrepr.removesuffix("=")] ): # a+=5 return if node_match(ast.Attribute, ctx=ast.Del) and inst_match( "DELETE_ATTR", argval=mangled_name(node) ): return if inst_match( ( "JUMP_IF_TRUE_OR_POP", "JUMP_IF_FALSE_OR_POP", "POP_JUMP_IF_TRUE", "POP_JUMP_IF_FALSE", ) ) and node_match(ast.BoolOp): # and/or short circuit return if inst_match("DELETE_SUBSCR") and node_match(ast.Subscript, ctx=ast.Del): return if ( node_match(ast.Name, ctx=ast.Load) or ( node_match(ast.Name, ctx=ast.Store) and isinstance(node.parent, ast.AugAssign) ) ) and inst_match( ( "LOAD_NAME", "LOAD_FAST", "LOAD_FAST_CHECK", "LOAD_GLOBAL", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF", ), argval=mangled_name(node), ): return if node_match(ast.Name, ctx=ast.Del) and inst_match( ("DELETE_NAME", "DELETE_GLOBAL", "DELETE_DEREF"), argval=mangled_name(node) ): return if node_match(ast.Constant) and inst_match( "LOAD_CONST", argval=cast(ast.Constant, node).value ): return if node_match( (ast.ListComp, ast.SetComp, ast.DictComp, ast.GeneratorExp, ast.For) ) and inst_match(("GET_ITER", "FOR_ITER")): return if sys.version_info >= (3, 12): if node_match(ast.UnaryOp, op=ast.UAdd) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_UNARY_POSITIVE" ): return if node_match(ast.Subscript) and inst_match("BINARY_SLICE"): return if node_match(ast.ImportFrom) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_IMPORT_STAR" ): return if ( node_match(ast.Yield) or isinstance(node.parent, ast.GeneratorExp) ) and inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_ASYNC_GEN_WRAP"): return if node_match(ast.Name) and inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match(ast.TypeVar) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVAR") or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_BOUND" ) or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_CONSTRAINTS" ) or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=mangled_name(node)) ): return if node_match(ast.TypeVarTuple) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVARTUPLE") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name) ): return if node_match(ast.ParamSpec) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_PARAMSPEC") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name)): return if node_match(ast.TypeAlias): if( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEALIAS") or inst_match( ("STORE_NAME", "STORE_FAST", "STORE_DEREF"), argrepr=node.name.id ) or inst_match("CALL") ): return if node_match(ast.ClassDef) and node.type_params: if inst_match( ("STORE_DEREF", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF"), argrepr=".type_params", ): return if inst_match(("STORE_FAST", "LOAD_FAST"), argrepr=".generic_base"): return if inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_SUBSCRIPT_GENERIC" ): return if inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match((ast.FunctionDef,ast.AsyncFunctionDef)) and node.type_params: if inst_match("CALL"): return if inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_SET_FUNCTION_TYPE_PARAMS" ): return if inst_match("LOAD_FAST",argval=".defaults"): return if inst_match("LOAD_FAST",argval=".kwdefaults"): return if inst_match("STORE_NAME", argval="__classdictcell__"): # this is a general thing return # f-strings if node_match(ast.JoinedStr) and ( inst_match("LOAD_ATTR", argval="join") or inst_match(("LIST_APPEND", "CALL")) ): return if node_match(ast.FormattedValue) and inst_match("FORMAT_VALUE"): return if sys.version_info >= (3, 13): if inst_match("NOP"): return if inst_match("TO_BOOL") and node_match(ast.BoolOp): return if inst_match("CALL_KW") and node_match((ast.Call, ast.ClassDef)): return if inst_match("LOAD_FAST", argval=".type_params"): return if inst_match("LOAD_FAST", argval="__classdict__"): return if inst_match("LOAD_FAST") and node_match( ( ast.FunctionDef, ast.ClassDef, ast.TypeAlias, ast.TypeVar, ast.Lambda, ast.AsyncFunctionDef, ) ): # These are loads for closure variables. # It is difficult to check that this is actually closure variable, see: # https://github.com/alexmojaki/executing/pull/80#discussion_r1716027317 return if ( inst_match("LOAD_FAST") and node_match(ast.TypeAlias) and node.name.id == instruction.argval ): return if inst_match("STORE_NAME",argval="__static_attributes__"): # the node is the first node in the body return if inst_match("LOAD_FAST") and isinstance(node.parent,ast.TypeVar): return # old verifier typ: Type = type(None) op_type: Type = type(None) if op_name.startswith(("BINARY_SUBSCR", "SLICE+")): typ = ast.Subscript ctx = ast.Load elif op_name.startswith("BINARY_"): typ = ast.BinOp op_type = op_type_map[instruction.argrepr] extra_filter = lambda e: isinstance(cast(ast.BinOp, e).op, op_type) elif op_name.startswith("UNARY_"): typ = ast.UnaryOp op_type = dict( UNARY_POSITIVE=ast.UAdd, UNARY_NEGATIVE=ast.USub, UNARY_NOT=ast.Not, UNARY_INVERT=ast.Invert, )[op_name] extra_filter = lambda e: isinstance(cast(ast.UnaryOp, e).op, op_type) elif op_name in ("LOAD_ATTR", "LOAD_METHOD", "LOOKUP_METHOD","LOAD_SUPER_ATTR"): typ = ast.Attribute ctx = ast.Load extra_filter = lambda e: mangled_name(e) == instruction.argval elif op_name in ( "LOAD_NAME", "LOAD_GLOBAL", "LOAD_FAST", "LOAD_DEREF", "LOAD_CLASSDEREF", ): typ = ast.Name ctx = ast.Load extra_filter = lambda e: cast(ast.Name, e).id == instruction.argval elif op_name in ("COMPARE_OP", "IS_OP", "CONTAINS_OP"): typ = ast.Compare extra_filter = lambda e: len(cast(ast.Compare, e).ops) == 1 elif op_name.startswith(("STORE_SLICE", "STORE_SUBSCR")): ctx = ast.Store typ = ast.Subscript elif op_name.startswith("STORE_ATTR"): ctx = ast.Store typ = ast.Attribute extra_filter = lambda e: mangled_name(e) == instruction.argval node_ctx = getattr(node, "ctx", None) ctx_match = ( ctx is not type(None) or not hasattr(node, "ctx") or isinstance(node_ctx, ctx) ) # check for old verifier if isinstance(node, typ) and ctx_match and extra_filter(node): return # generate error title = "ast.%s is not created from %s" % ( type(node).__name__, instruction.opname, ) > raise VerifierFailure(title, node, instruction) E executing._exceptions.VerifierFailure: ast.Name is not created from CALL executing/_position_node_finder.py:878: VerifierFailure ----------------------------- Captured stdout call ----------------------------- check /usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/635d56ede8cbcb2824d42291eb9fe9288d5f09c768636aaa19984ffdfc91e9fe.py VerifierFailure: ast.Name is not created from CALL instruction: Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=34, starts_line=None, is_jump_target=False, positions=Positions(lineno=16, end_lineno=16, col_offset=5, end_col_offset=9)) node: Name(id='self', ctx=Load(), lineno=16, col_offset=5, end_lineno=16, end_col_offset=9) parent node: withitem source code: 12: # if else_is_dead and not contains_break(node.body): 13: # # for a in l: 14: # 15: 16: with self: 17: for _ in tester: 18: pass 19: else: 20: tester None bytecode: _ test_small_samples[2fa69a57eb3b16f9ce0d5be427ad471c93a54c6d7e68b5be024b6a046ecc6bb2.py] _ full_filename = '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/2fa69a57eb3b16f9ce0d5be427ad471c93a54c6d7e68b5be024b6a046ecc6bb2.py' result_filename = '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/sample_results/2fa69a57eb3b16f9ce0d5be427ad471c93a54c6d7e68b5be024b6a046ecc6bb2-py-3.12.json' @pytest.mark.parametrize( "full_filename,result_filename", list(sample_files("small_samples")) ) @pytest.mark.skipif(sys.version_info<(3,),reason="no 2.7 support") def test_small_samples(full_filename, result_filename): skip_sentinel = [ "load_deref", "4851dc1b626a95e97dbe0c53f96099d165b755dd1bd552c6ca771f7bca6d30f5", "508ccd0dcac13ecee6f0cea939b73ba5319c780ddbb6c496be96fe5614871d4a", "fc6eb521024986baa84af2634f638e40af090be4aa70ab3c22f3d022e8068228", "42a37b8a823eb2e510b967332661afd679c82c60b7177b992a47c16d81117c8a", "206e0609ff0589a0a32422ee902f09156af91746e27157c32c9595d12072f92a", ] skip_annotations = [ "d98e27d8963331b58e4e6b84c7580dafde4d9e2980ad4277ce55e6b186113c1d", "9b3db37076d3c7c76bdfd9badcc70d8047584433e1eea89f45014453d58bbc43", ] if any(s in full_filename for s in skip_sentinel) and sys.version_info < (3, 11): pytest.xfail("SentinelNodeFinder does not find some of the nodes (maybe a bug)") if any(s in full_filename for s in skip_annotations) and sys.version_info < (3, 7): pytest.xfail("no `from __future__ import annotations`") if ( (sys.version_info[:2] == (3, 7)) and "ad8aa993e6ee4eb5ee764d55f2e3fd636a99b2ecb8c5aff2b35fbb78a074ea30" in full_filename ): pytest.xfail("(i async for i in arange) can not be analyzed in 3.7") if ( (sys.version_info[:2] == (3, 5) or PYPY) and "1656dc52edd2385921104de7bb255ca369713f4b8c034ebeba5cf946058109bc" in full_filename ): pytest.skip("recursion takes to long in 3.5") > TestFiles().check_filename(full_filename, check_names=True) tests/test_main.py:751: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_main.py:888: in check_filename result = list(self.check_code(code, nodes, decorators, check_names=check_names)) tests/test_main.py:1243: in check_code ex = Source.executing(frame) executing/executing.py:273: in executing node_finder = NodeFinder(frame, stmts, tree, lasti, source) executing/_position_node_finder.py:170: in __init__ self.verify(self.result, instruction) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = node = instruction = Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=26, starts_line=None, is_jump_target=False, positions=Positions(lineno=16, end_lineno=16, col_offset=5, end_col_offset=9)) def verify(self, node: EnhancedAST, instruction: dis.Instruction) -> None: """ checks if this node could gererate this instruction """ op_name = instruction.opname extra_filter: Callable[[EnhancedAST], bool] = lambda e: True ctx: Type = type(None) def inst_match(opnames: Union[str, Sequence[str]], **kwargs: Any) -> bool: """ match instruction Parameters: opnames: (str|Seq[str]): inst.opname has to be equal to or in `opname` **kwargs: every arg has to match inst.arg Returns: True if all conditions match the instruction """ if isinstance(opnames, str): opnames = [opnames] return instruction.opname in opnames and kwargs == { k: getattr(instruction, k) for k in kwargs } def node_match(node_type: Union[Type, Tuple[Type, ...]], **kwargs: Any) -> bool: """ match the ast-node Parameters: node_type: type of the node **kwargs: every `arg` has to be equal `node.arg` or `node.arg` has to be an instance of `arg` if it is a type. """ return isinstance(node, node_type) and all( isinstance(getattr(node, k), v) if isinstance(v, type) else getattr(node, k) == v for k, v in kwargs.items() ) if op_name == "CACHE": return if inst_match("CALL") and node_match((ast.With, ast.AsyncWith)): # call to context.__exit__ return if inst_match(("CALL", "LOAD_FAST")) and node_match( (ast.ListComp, ast.GeneratorExp, ast.SetComp, ast.DictComp) ): # call to the generator function return if ( sys.version_info >= (3, 12) and inst_match(("LOAD_FAST_AND_CLEAR", "STORE_FAST")) and node_match((ast.ListComp, ast.SetComp, ast.DictComp)) ): return if inst_match(("CALL", "CALL_FUNCTION_EX")) and node_match( (ast.ClassDef, ast.Call) ): return if inst_match(("COMPARE_OP", "IS_OP", "CONTAINS_OP")) and node_match( ast.Compare ): return if inst_match("LOAD_NAME", argval="__annotations__") and node_match( ast.AnnAssign ): return if ( ( inst_match("LOAD_METHOD", argval="join") or inst_match("LOAD_ATTR", argval="join") # 3.12 or inst_match(("CALL", "BUILD_STRING")) ) and node_match(ast.BinOp, left=ast.Constant, op=ast.Mod) and isinstance(cast(ast.Constant, cast(ast.BinOp, node).left).value, str) ): # "..."%(...) uses "".join return if inst_match("STORE_SUBSCR") and node_match(ast.AnnAssign): # data: int return if inst_match(("DELETE_NAME", "DELETE_FAST")) and node_match( ast.Name, id=instruction.argval, ctx=ast.Del ): return if inst_match("BUILD_STRING") and ( node_match(ast.JoinedStr) or node_match(ast.BinOp, op=ast.Mod) ): return if inst_match(("BEFORE_WITH","WITH_EXCEPT_START")) and node_match(ast.With): return if inst_match(("STORE_NAME", "STORE_GLOBAL"), argval="__doc__") and node_match( ast.Constant ): # store docstrings return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_GLOBAL", "STORE_DEREF")) and node_match(ast.ExceptHandler) and instruction.argval == mangled_name(node) ): # store exception in variable return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_DEREF", "STORE_GLOBAL")) and node_match((ast.Import, ast.ImportFrom)) and any(mangled_name(cast(EnhancedAST, alias)) == instruction.argval for alias in cast(ast.Import, node).names) ): # store imported module in variable return if ( inst_match(("STORE_FAST", "STORE_DEREF", "STORE_NAME", "STORE_GLOBAL")) and ( node_match((ast.FunctionDef, ast.ClassDef, ast.AsyncFunctionDef)) or node_match( ast.Name, ctx=ast.Store, ) ) and instruction.argval == mangled_name(node) ): return if False: # TODO: match expressions are not supported for now if inst_match(("STORE_FAST", "STORE_NAME")) and node_match( ast.MatchAs, name=instruction.argval ): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchSequence): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchValue): return if inst_match("BINARY_OP") and node_match( ast.AugAssign, op=op_type_map[instruction.argrepr.removesuffix("=")] ): # a+=5 return if node_match(ast.Attribute, ctx=ast.Del) and inst_match( "DELETE_ATTR", argval=mangled_name(node) ): return if inst_match( ( "JUMP_IF_TRUE_OR_POP", "JUMP_IF_FALSE_OR_POP", "POP_JUMP_IF_TRUE", "POP_JUMP_IF_FALSE", ) ) and node_match(ast.BoolOp): # and/or short circuit return if inst_match("DELETE_SUBSCR") and node_match(ast.Subscript, ctx=ast.Del): return if ( node_match(ast.Name, ctx=ast.Load) or ( node_match(ast.Name, ctx=ast.Store) and isinstance(node.parent, ast.AugAssign) ) ) and inst_match( ( "LOAD_NAME", "LOAD_FAST", "LOAD_FAST_CHECK", "LOAD_GLOBAL", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF", ), argval=mangled_name(node), ): return if node_match(ast.Name, ctx=ast.Del) and inst_match( ("DELETE_NAME", "DELETE_GLOBAL", "DELETE_DEREF"), argval=mangled_name(node) ): return if node_match(ast.Constant) and inst_match( "LOAD_CONST", argval=cast(ast.Constant, node).value ): return if node_match( (ast.ListComp, ast.SetComp, ast.DictComp, ast.GeneratorExp, ast.For) ) and inst_match(("GET_ITER", "FOR_ITER")): return if sys.version_info >= (3, 12): if node_match(ast.UnaryOp, op=ast.UAdd) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_UNARY_POSITIVE" ): return if node_match(ast.Subscript) and inst_match("BINARY_SLICE"): return if node_match(ast.ImportFrom) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_IMPORT_STAR" ): return if ( node_match(ast.Yield) or isinstance(node.parent, ast.GeneratorExp) ) and inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_ASYNC_GEN_WRAP"): return if node_match(ast.Name) and inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match(ast.TypeVar) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVAR") or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_BOUND" ) or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_CONSTRAINTS" ) or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=mangled_name(node)) ): return if node_match(ast.TypeVarTuple) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVARTUPLE") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name) ): return if node_match(ast.ParamSpec) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_PARAMSPEC") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name)): return if node_match(ast.TypeAlias): if( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEALIAS") or inst_match( ("STORE_NAME", "STORE_FAST", "STORE_DEREF"), argrepr=node.name.id ) or inst_match("CALL") ): return if node_match(ast.ClassDef) and node.type_params: if inst_match( ("STORE_DEREF", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF"), argrepr=".type_params", ): return if inst_match(("STORE_FAST", "LOAD_FAST"), argrepr=".generic_base"): return if inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_SUBSCRIPT_GENERIC" ): return if inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match((ast.FunctionDef,ast.AsyncFunctionDef)) and node.type_params: if inst_match("CALL"): return if inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_SET_FUNCTION_TYPE_PARAMS" ): return if inst_match("LOAD_FAST",argval=".defaults"): return if inst_match("LOAD_FAST",argval=".kwdefaults"): return if inst_match("STORE_NAME", argval="__classdictcell__"): # this is a general thing return # f-strings if node_match(ast.JoinedStr) and ( inst_match("LOAD_ATTR", argval="join") or inst_match(("LIST_APPEND", "CALL")) ): return if node_match(ast.FormattedValue) and inst_match("FORMAT_VALUE"): return if sys.version_info >= (3, 13): if inst_match("NOP"): return if inst_match("TO_BOOL") and node_match(ast.BoolOp): return if inst_match("CALL_KW") and node_match((ast.Call, ast.ClassDef)): return if inst_match("LOAD_FAST", argval=".type_params"): return if inst_match("LOAD_FAST", argval="__classdict__"): return if inst_match("LOAD_FAST") and node_match( ( ast.FunctionDef, ast.ClassDef, ast.TypeAlias, ast.TypeVar, ast.Lambda, ast.AsyncFunctionDef, ) ): # These are loads for closure variables. # It is difficult to check that this is actually closure variable, see: # https://github.com/alexmojaki/executing/pull/80#discussion_r1716027317 return if ( inst_match("LOAD_FAST") and node_match(ast.TypeAlias) and node.name.id == instruction.argval ): return if inst_match("STORE_NAME",argval="__static_attributes__"): # the node is the first node in the body return if inst_match("LOAD_FAST") and isinstance(node.parent,ast.TypeVar): return # old verifier typ: Type = type(None) op_type: Type = type(None) if op_name.startswith(("BINARY_SUBSCR", "SLICE+")): typ = ast.Subscript ctx = ast.Load elif op_name.startswith("BINARY_"): typ = ast.BinOp op_type = op_type_map[instruction.argrepr] extra_filter = lambda e: isinstance(cast(ast.BinOp, e).op, op_type) elif op_name.startswith("UNARY_"): typ = ast.UnaryOp op_type = dict( UNARY_POSITIVE=ast.UAdd, UNARY_NEGATIVE=ast.USub, UNARY_NOT=ast.Not, UNARY_INVERT=ast.Invert, )[op_name] extra_filter = lambda e: isinstance(cast(ast.UnaryOp, e).op, op_type) elif op_name in ("LOAD_ATTR", "LOAD_METHOD", "LOOKUP_METHOD","LOAD_SUPER_ATTR"): typ = ast.Attribute ctx = ast.Load extra_filter = lambda e: mangled_name(e) == instruction.argval elif op_name in ( "LOAD_NAME", "LOAD_GLOBAL", "LOAD_FAST", "LOAD_DEREF", "LOAD_CLASSDEREF", ): typ = ast.Name ctx = ast.Load extra_filter = lambda e: cast(ast.Name, e).id == instruction.argval elif op_name in ("COMPARE_OP", "IS_OP", "CONTAINS_OP"): typ = ast.Compare extra_filter = lambda e: len(cast(ast.Compare, e).ops) == 1 elif op_name.startswith(("STORE_SLICE", "STORE_SUBSCR")): ctx = ast.Store typ = ast.Subscript elif op_name.startswith("STORE_ATTR"): ctx = ast.Store typ = ast.Attribute extra_filter = lambda e: mangled_name(e) == instruction.argval node_ctx = getattr(node, "ctx", None) ctx_match = ( ctx is not type(None) or not hasattr(node, "ctx") or isinstance(node_ctx, ctx) ) # check for old verifier if isinstance(node, typ) and ctx_match and extra_filter(node): return # generate error title = "ast.%s is not created from %s" % ( type(node).__name__, instruction.opname, ) > raise VerifierFailure(title, node, instruction) E executing._exceptions.VerifierFailure: ast.Name is not created from CALL executing/_position_node_finder.py:878: VerifierFailure ----------------------------- Captured stdout call ----------------------------- check /usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/2fa69a57eb3b16f9ce0d5be427ad471c93a54c6d7e68b5be024b6a046ecc6bb2.py VerifierFailure: ast.Name is not created from CALL instruction: Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=26, starts_line=None, is_jump_target=False, positions=Positions(lineno=16, end_lineno=16, col_offset=5, end_col_offset=9)) node: Name(id='self', ctx=Load(), lineno=16, col_offset=5, end_lineno=16, end_col_offset=9) parent node: withitem source code: 12: # self.walk_deadcode(node.msg, deadcode) 13: # deadcode = True 14: # 15: 16: with self as session: 17: assert isinstance 18: db_func None bytecode: _ test_small_samples[0675309754ba4277c9cb3c52d7131377fe69c7744a271e2b7471917dabb5aaa1.py] _ full_filename = '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/0675309754ba4277c9cb3c52d7131377fe69c7744a271e2b7471917dabb5aaa1.py' result_filename = '/usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/sample_results/0675309754ba4277c9cb3c52d7131377fe69c7744a271e2b7471917dabb5aaa1-py-3.12.json' @pytest.mark.parametrize( "full_filename,result_filename", list(sample_files("small_samples")) ) @pytest.mark.skipif(sys.version_info<(3,),reason="no 2.7 support") def test_small_samples(full_filename, result_filename): skip_sentinel = [ "load_deref", "4851dc1b626a95e97dbe0c53f96099d165b755dd1bd552c6ca771f7bca6d30f5", "508ccd0dcac13ecee6f0cea939b73ba5319c780ddbb6c496be96fe5614871d4a", "fc6eb521024986baa84af2634f638e40af090be4aa70ab3c22f3d022e8068228", "42a37b8a823eb2e510b967332661afd679c82c60b7177b992a47c16d81117c8a", "206e0609ff0589a0a32422ee902f09156af91746e27157c32c9595d12072f92a", ] skip_annotations = [ "d98e27d8963331b58e4e6b84c7580dafde4d9e2980ad4277ce55e6b186113c1d", "9b3db37076d3c7c76bdfd9badcc70d8047584433e1eea89f45014453d58bbc43", ] if any(s in full_filename for s in skip_sentinel) and sys.version_info < (3, 11): pytest.xfail("SentinelNodeFinder does not find some of the nodes (maybe a bug)") if any(s in full_filename for s in skip_annotations) and sys.version_info < (3, 7): pytest.xfail("no `from __future__ import annotations`") if ( (sys.version_info[:2] == (3, 7)) and "ad8aa993e6ee4eb5ee764d55f2e3fd636a99b2ecb8c5aff2b35fbb78a074ea30" in full_filename ): pytest.xfail("(i async for i in arange) can not be analyzed in 3.7") if ( (sys.version_info[:2] == (3, 5) or PYPY) and "1656dc52edd2385921104de7bb255ca369713f4b8c034ebeba5cf946058109bc" in full_filename ): pytest.skip("recursion takes to long in 3.5") > TestFiles().check_filename(full_filename, check_names=True) tests/test_main.py:751: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_main.py:888: in check_filename result = list(self.check_code(code, nodes, decorators, check_names=check_names)) tests/test_main.py:1448: in check_code for x in self.check_code(inst.argval, nodes, decorators, check_names=check_names): tests/test_main.py:1243: in check_code ex = Source.executing(frame) executing/executing.py:273: in executing node_finder = NodeFinder(frame, stmts, tree, lasti, source) executing/_position_node_finder.py:170: in __init__ self.verify(self.result, instruction) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = node = instruction = Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=48, starts_line=None, is_jump_target=False, positions=Positions(lineno=2, end_lineno=2, col_offset=9, end_col_offset=15)) def verify(self, node: EnhancedAST, instruction: dis.Instruction) -> None: """ checks if this node could gererate this instruction """ op_name = instruction.opname extra_filter: Callable[[EnhancedAST], bool] = lambda e: True ctx: Type = type(None) def inst_match(opnames: Union[str, Sequence[str]], **kwargs: Any) -> bool: """ match instruction Parameters: opnames: (str|Seq[str]): inst.opname has to be equal to or in `opname` **kwargs: every arg has to match inst.arg Returns: True if all conditions match the instruction """ if isinstance(opnames, str): opnames = [opnames] return instruction.opname in opnames and kwargs == { k: getattr(instruction, k) for k in kwargs } def node_match(node_type: Union[Type, Tuple[Type, ...]], **kwargs: Any) -> bool: """ match the ast-node Parameters: node_type: type of the node **kwargs: every `arg` has to be equal `node.arg` or `node.arg` has to be an instance of `arg` if it is a type. """ return isinstance(node, node_type) and all( isinstance(getattr(node, k), v) if isinstance(v, type) else getattr(node, k) == v for k, v in kwargs.items() ) if op_name == "CACHE": return if inst_match("CALL") and node_match((ast.With, ast.AsyncWith)): # call to context.__exit__ return if inst_match(("CALL", "LOAD_FAST")) and node_match( (ast.ListComp, ast.GeneratorExp, ast.SetComp, ast.DictComp) ): # call to the generator function return if ( sys.version_info >= (3, 12) and inst_match(("LOAD_FAST_AND_CLEAR", "STORE_FAST")) and node_match((ast.ListComp, ast.SetComp, ast.DictComp)) ): return if inst_match(("CALL", "CALL_FUNCTION_EX")) and node_match( (ast.ClassDef, ast.Call) ): return if inst_match(("COMPARE_OP", "IS_OP", "CONTAINS_OP")) and node_match( ast.Compare ): return if inst_match("LOAD_NAME", argval="__annotations__") and node_match( ast.AnnAssign ): return if ( ( inst_match("LOAD_METHOD", argval="join") or inst_match("LOAD_ATTR", argval="join") # 3.12 or inst_match(("CALL", "BUILD_STRING")) ) and node_match(ast.BinOp, left=ast.Constant, op=ast.Mod) and isinstance(cast(ast.Constant, cast(ast.BinOp, node).left).value, str) ): # "..."%(...) uses "".join return if inst_match("STORE_SUBSCR") and node_match(ast.AnnAssign): # data: int return if inst_match(("DELETE_NAME", "DELETE_FAST")) and node_match( ast.Name, id=instruction.argval, ctx=ast.Del ): return if inst_match("BUILD_STRING") and ( node_match(ast.JoinedStr) or node_match(ast.BinOp, op=ast.Mod) ): return if inst_match(("BEFORE_WITH","WITH_EXCEPT_START")) and node_match(ast.With): return if inst_match(("STORE_NAME", "STORE_GLOBAL"), argval="__doc__") and node_match( ast.Constant ): # store docstrings return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_GLOBAL", "STORE_DEREF")) and node_match(ast.ExceptHandler) and instruction.argval == mangled_name(node) ): # store exception in variable return if ( inst_match(("STORE_NAME", "STORE_FAST", "STORE_DEREF", "STORE_GLOBAL")) and node_match((ast.Import, ast.ImportFrom)) and any(mangled_name(cast(EnhancedAST, alias)) == instruction.argval for alias in cast(ast.Import, node).names) ): # store imported module in variable return if ( inst_match(("STORE_FAST", "STORE_DEREF", "STORE_NAME", "STORE_GLOBAL")) and ( node_match((ast.FunctionDef, ast.ClassDef, ast.AsyncFunctionDef)) or node_match( ast.Name, ctx=ast.Store, ) ) and instruction.argval == mangled_name(node) ): return if False: # TODO: match expressions are not supported for now if inst_match(("STORE_FAST", "STORE_NAME")) and node_match( ast.MatchAs, name=instruction.argval ): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchSequence): return if inst_match("COMPARE_OP", argval="==") and node_match(ast.MatchValue): return if inst_match("BINARY_OP") and node_match( ast.AugAssign, op=op_type_map[instruction.argrepr.removesuffix("=")] ): # a+=5 return if node_match(ast.Attribute, ctx=ast.Del) and inst_match( "DELETE_ATTR", argval=mangled_name(node) ): return if inst_match( ( "JUMP_IF_TRUE_OR_POP", "JUMP_IF_FALSE_OR_POP", "POP_JUMP_IF_TRUE", "POP_JUMP_IF_FALSE", ) ) and node_match(ast.BoolOp): # and/or short circuit return if inst_match("DELETE_SUBSCR") and node_match(ast.Subscript, ctx=ast.Del): return if ( node_match(ast.Name, ctx=ast.Load) or ( node_match(ast.Name, ctx=ast.Store) and isinstance(node.parent, ast.AugAssign) ) ) and inst_match( ( "LOAD_NAME", "LOAD_FAST", "LOAD_FAST_CHECK", "LOAD_GLOBAL", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF", ), argval=mangled_name(node), ): return if node_match(ast.Name, ctx=ast.Del) and inst_match( ("DELETE_NAME", "DELETE_GLOBAL", "DELETE_DEREF"), argval=mangled_name(node) ): return if node_match(ast.Constant) and inst_match( "LOAD_CONST", argval=cast(ast.Constant, node).value ): return if node_match( (ast.ListComp, ast.SetComp, ast.DictComp, ast.GeneratorExp, ast.For) ) and inst_match(("GET_ITER", "FOR_ITER")): return if sys.version_info >= (3, 12): if node_match(ast.UnaryOp, op=ast.UAdd) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_UNARY_POSITIVE" ): return if node_match(ast.Subscript) and inst_match("BINARY_SLICE"): return if node_match(ast.ImportFrom) and inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_IMPORT_STAR" ): return if ( node_match(ast.Yield) or isinstance(node.parent, ast.GeneratorExp) ) and inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_ASYNC_GEN_WRAP"): return if node_match(ast.Name) and inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match(ast.TypeVar) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVAR") or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_BOUND" ) or inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_TYPEVAR_WITH_CONSTRAINTS" ) or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=mangled_name(node)) ): return if node_match(ast.TypeVarTuple) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEVARTUPLE") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name) ): return if node_match(ast.ParamSpec) and ( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_PARAMSPEC") or inst_match(("STORE_FAST", "STORE_DEREF"), argrepr=node.name)): return if node_match(ast.TypeAlias): if( inst_match("CALL_INTRINSIC_1", argrepr="INTRINSIC_TYPEALIAS") or inst_match( ("STORE_NAME", "STORE_FAST", "STORE_DEREF"), argrepr=node.name.id ) or inst_match("CALL") ): return if node_match(ast.ClassDef) and node.type_params: if inst_match( ("STORE_DEREF", "LOAD_DEREF", "LOAD_FROM_DICT_OR_DEREF"), argrepr=".type_params", ): return if inst_match(("STORE_FAST", "LOAD_FAST"), argrepr=".generic_base"): return if inst_match( "CALL_INTRINSIC_1", argrepr="INTRINSIC_SUBSCRIPT_GENERIC" ): return if inst_match("LOAD_DEREF",argval="__classdict__"): return if node_match((ast.FunctionDef,ast.AsyncFunctionDef)) and node.type_params: if inst_match("CALL"): return if inst_match( "CALL_INTRINSIC_2", argrepr="INTRINSIC_SET_FUNCTION_TYPE_PARAMS" ): return if inst_match("LOAD_FAST",argval=".defaults"): return if inst_match("LOAD_FAST",argval=".kwdefaults"): return if inst_match("STORE_NAME", argval="__classdictcell__"): # this is a general thing return # f-strings if node_match(ast.JoinedStr) and ( inst_match("LOAD_ATTR", argval="join") or inst_match(("LIST_APPEND", "CALL")) ): return if node_match(ast.FormattedValue) and inst_match("FORMAT_VALUE"): return if sys.version_info >= (3, 13): if inst_match("NOP"): return if inst_match("TO_BOOL") and node_match(ast.BoolOp): return if inst_match("CALL_KW") and node_match((ast.Call, ast.ClassDef)): return if inst_match("LOAD_FAST", argval=".type_params"): return if inst_match("LOAD_FAST", argval="__classdict__"): return if inst_match("LOAD_FAST") and node_match( ( ast.FunctionDef, ast.ClassDef, ast.TypeAlias, ast.TypeVar, ast.Lambda, ast.AsyncFunctionDef, ) ): # These are loads for closure variables. # It is difficult to check that this is actually closure variable, see: # https://github.com/alexmojaki/executing/pull/80#discussion_r1716027317 return if ( inst_match("LOAD_FAST") and node_match(ast.TypeAlias) and node.name.id == instruction.argval ): return if inst_match("STORE_NAME",argval="__static_attributes__"): # the node is the first node in the body return if inst_match("LOAD_FAST") and isinstance(node.parent,ast.TypeVar): return # old verifier typ: Type = type(None) op_type: Type = type(None) if op_name.startswith(("BINARY_SUBSCR", "SLICE+")): typ = ast.Subscript ctx = ast.Load elif op_name.startswith("BINARY_"): typ = ast.BinOp op_type = op_type_map[instruction.argrepr] extra_filter = lambda e: isinstance(cast(ast.BinOp, e).op, op_type) elif op_name.startswith("UNARY_"): typ = ast.UnaryOp op_type = dict( UNARY_POSITIVE=ast.UAdd, UNARY_NEGATIVE=ast.USub, UNARY_NOT=ast.Not, UNARY_INVERT=ast.Invert, )[op_name] extra_filter = lambda e: isinstance(cast(ast.UnaryOp, e).op, op_type) elif op_name in ("LOAD_ATTR", "LOAD_METHOD", "LOOKUP_METHOD","LOAD_SUPER_ATTR"): typ = ast.Attribute ctx = ast.Load extra_filter = lambda e: mangled_name(e) == instruction.argval elif op_name in ( "LOAD_NAME", "LOAD_GLOBAL", "LOAD_FAST", "LOAD_DEREF", "LOAD_CLASSDEREF", ): typ = ast.Name ctx = ast.Load extra_filter = lambda e: cast(ast.Name, e).id == instruction.argval elif op_name in ("COMPARE_OP", "IS_OP", "CONTAINS_OP"): typ = ast.Compare extra_filter = lambda e: len(cast(ast.Compare, e).ops) == 1 elif op_name.startswith(("STORE_SLICE", "STORE_SUBSCR")): ctx = ast.Store typ = ast.Subscript elif op_name.startswith("STORE_ATTR"): ctx = ast.Store typ = ast.Attribute extra_filter = lambda e: mangled_name(e) == instruction.argval node_ctx = getattr(node, "ctx", None) ctx_match = ( ctx is not type(None) or not hasattr(node, "ctx") or isinstance(node_ctx, ctx) ) # check for old verifier if isinstance(node, typ) and ctx_match and extra_filter(node): return # generate error title = "ast.%s is not created from %s" % ( type(node).__name__, instruction.opname, ) > raise VerifierFailure(title, node, instruction) E executing._exceptions.VerifierFailure: ast.Name is not created from CALL executing/_position_node_finder.py:878: VerifierFailure ----------------------------- Captured stdout call ----------------------------- check /usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/0675309754ba4277c9cb3c52d7131377fe69c7744a271e2b7471917dabb5aaa1.py VerifierFailure: ast.Name is not created from CALL instruction: Instruction(opname='CALL', opcode=171, arg=2, argval=2, argrepr='', offset=48, starts_line=None, is_jump_target=False, positions=Positions(lineno=2, end_lineno=2, col_offset=9, end_col_offset=15)) node: Name(id='name_0', ctx=Load(), lineno=2, col_offset=9, end_lineno=2, end_col_offset=15) parent node: withitem source code: 1: class name_2: 2: with name_0: # type: ignoresome text 3: 4: class name_2[name_5]: 5: pass None bytecode: =============================== warnings summary =============================== ../../../../lib/python3/site-packages/littleutils/__init__.py:322 /usr/lib/python3/site-packages/littleutils/__init__.py:322: SyntaxWarning: invalid escape sequence '\s' x = list(filter(None, re.split('[,\s]+', x))) tests/test_main.py::test_small_samples[4851dc1b626a95e97dbe0c53f96099d165b755dd1bd552c6ca771f7bca6d30f5.py] /usr/src/RPM/BUILD/python3-module-executing-2.1.0/tests/small_samples/4851dc1b626a95e97dbe0c53f96099d165b755dd1bd552c6ca771f7bca6d30f5.py:16: SyntaxWarning: "is" with 'int' literal. Did you mean "=="? if 1 < 1 > 1 == 1 >= 1 <= 1 != 1 in 1 not in 1 is 1 is not 1: -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ SKIPPED [1] tests/test_main.py:282: These tests are very slow, enable them explicitly SKIPPED [1] tests/test_main.py:297: These tests are very slow, enable them explicitly SKIPPED [14] tests/test_main.py:762: These tests are very slow, enable them explicitly SKIPPED [1] tests/test_main.py:778: These tests are very slow, enable them explicitly FAILED tests/test_main.py::TestStuff::test_iter - executing._exceptions.Verif... FAILED tests/test_main.py::TestStuff::test_with - executing._exceptions.Verif... FAILED tests/test_main.py::test_small_samples[ea94f24a1d9b57c7a7d62c428082790caae2fa16429db2e58b2f4addb67a1964.py] FAILED tests/test_main.py::test_small_samples[c9b64c28f424df67919f825adf4f93dfa774463768fc26cd36964121d34e28dd.py] FAILED tests/test_main.py::test_small_samples[635d56ede8cbcb2824d42291eb9fe9288d5f09c768636aaa19984ffdfc91e9fe.py] FAILED tests/test_main.py::test_small_samples[2fa69a57eb3b16f9ce0d5be427ad471c93a54c6d7e68b5be024b6a046ecc6bb2.py] FAILED tests/test_main.py::test_small_samples[0675309754ba4277c9cb3c52d7131377fe69c7744a271e2b7471917dabb5aaa1.py] ============ 7 failed, 184 passed, 17 skipped, 2 warnings in 5.50s ============= INFO : Command's result: FAILURE INFO : Command's error: Command '['python3', '-m', 'pytest', '-ra', 'tests']' returned non-zero exit status 1. error: Bad exit status from /usr/src/tmp/rpm-tmp.71585 (%check) RPM build errors: Bad exit status from /usr/src/tmp/rpm-tmp.71585 (%check) Command exited with non-zero status 1 7.46user 2.17system 0:09.58elapsed 100%CPU (0avgtext+0avgdata 132424maxresident)k 0inputs+0outputs (0major+256526minor)pagefaults 0swaps hsh-rebuild: rebuild of `python3-module-executing-2.1.0-alt1.src.rpm' failed. Command exited with non-zero status 1 6.66user 5.68system 0:48.51elapsed 25%CPU (0avgtext+0avgdata 136672maxresident)k 15008inputs+0outputs (0major+446755minor)pagefaults 0swaps