>>> py3-pytest-mypy: Building testing/py3-pytest-mypy 0.10.3-r2 (using abuild 3.13.0-r3) started Mon, 29 Apr 2024 17:13:09 +0000 >>> py3-pytest-mypy: Checking sanity of /home/buildozer/aports/testing/py3-pytest-mypy/APKBUILD... >>> WARNING: py3-pytest-mypy: No maintainer >>> py3-pytest-mypy: Analyzing dependencies... >>> py3-pytest-mypy: Installing for build: build-base py3-attrs py3-filelock py3-mypy py3-pytest py3-gpep517 py3-setuptools_scm py3-wheel py3-pexpect py3-pytest-xdist (1/55) Installing libbz2 (1.0.8-r6) (2/55) Installing libffi (3.4.6-r0) (3/55) Installing gdbm (1.23-r1) (4/55) Installing xz-libs (5.6.1-r3) (5/55) Installing mpdecimal (4.0.0-r0) (6/55) Installing libpanelw (6.4_p20240330-r0) (7/55) Installing readline (8.2.10-r0) (8/55) Installing sqlite-libs (3.45.3-r0) (9/55) Installing python3 (3.12.3-r1) (10/55) Installing python3-pycache-pyc0 (3.12.3-r1) (11/55) Installing pyc (3.12.3-r1) (12/55) Installing py3-attrs-pyc (23.2.0-r1) (13/55) Installing python3-pyc (3.12.3-r1) (14/55) Installing py3-attrs (23.2.0-r1) (15/55) Installing py3-filelock (3.13.1-r1) (16/55) Installing py3-filelock-pyc (3.13.1-r1) (17/55) Installing py3-mypy-extensions (1.0.0-r3) (18/55) Installing py3-mypy-extensions-pyc (1.0.0-r3) (19/55) Installing py3-typing-extensions (4.11.0-r1) (20/55) Installing py3-typing-extensions-pyc (4.11.0-r1) (21/55) Installing py3-mypy (1.9.0-r1) (22/55) Installing py3-mypy-pyc (1.9.0-r1) (23/55) Installing py3-iniconfig (2.0.0-r1) (24/55) Installing py3-iniconfig-pyc (2.0.0-r1) (25/55) Installing py3-parsing (3.1.2-r1) (26/55) Installing py3-parsing-pyc (3.1.2-r1) (27/55) Installing py3-packaging (24.0-r1) (28/55) Installing py3-packaging-pyc (24.0-r1) (29/55) Installing py3-pluggy (1.4.0-r1) (30/55) Installing py3-pluggy-pyc (1.4.0-r1) (31/55) Installing py3-py (1.11.0-r3) (32/55) Installing py3-py-pyc (1.11.0-r3) (33/55) Installing py3-pytest (8.1.1-r1) (34/55) Installing py3-pytest-pyc (8.1.1-r1) (35/55) Installing py3-installer (0.7.0-r2) (36/55) Installing py3-installer-pyc (0.7.0-r2) (37/55) Installing py3-gpep517 (15-r2) (38/55) Installing py3-gpep517-pyc (15-r2) (39/55) Installing py3-setuptools (69.5.1-r0) (40/55) Installing py3-setuptools-pyc (69.5.1-r0) (41/55) Installing py3-setuptools_scm (8.0.4-r2) (42/55) Installing py3-setuptools_scm-pyc (8.0.4-r2) (43/55) Installing py3-wheel (0.42.0-r1) (44/55) Installing py3-wheel-pyc (0.42.0-r1) (45/55) Installing py3-ptyprocess (0.7.0-r6) (46/55) Installing py3-ptyprocess-pyc (0.7.0-r6) (47/55) Installing py3-pexpect (4.9-r1) (48/55) Installing py3-pexpect-pyc (4.9-r1) (49/55) Installing py3-apipkg (2.1.0-r3) (50/55) Installing py3-apipkg-pyc (2.1.0-r3) (51/55) Installing py3-execnet (1.9.0-r3) (52/55) Installing py3-execnet-pyc (1.9.0-r3) (53/55) Installing py3-pytest-xdist (3.5.0-r1) (54/55) Installing py3-pytest-xdist-pyc (3.5.0-r1) (55/55) Installing .makedepends-py3-pytest-mypy (20240429.171314) Executing busybox-1.36.1-r26.trigger OK: 303 MiB in 157 packages >>> py3-pytest-mypy: Cleaning up srcdir >>> py3-pytest-mypy: Cleaning up pkgdir >>> py3-pytest-mypy: Cleaning up tmpdir >>> py3-pytest-mypy: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-pytest-mypy-0.10.3.tar.gz >>> py3-pytest-mypy: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-pytest-mypy-0.10.3.tar.gz >>> py3-pytest-mypy: Checking sha512sums... py3-pytest-mypy-0.10.3.tar.gz: OK >>> py3-pytest-mypy: Unpacking /var/cache/distfiles/py3-pytest-mypy-0.10.3.tar.gz... 2024-04-29 17:13:17,984 gpep517 INFO Building wheel via backend setuptools.build_meta 2024-04-29 17:13:18,158 root INFO running bdist_wheel 2024-04-29 17:13:18,253 root INFO running build 2024-04-29 17:13:18,254 root INFO running build_py 2024-04-29 17:13:18,268 root INFO creating build 2024-04-29 17:13:18,269 root INFO creating build/lib 2024-04-29 17:13:18,270 root INFO copying src/pytest_mypy.py -> build/lib 2024-04-29 17:13:18,300 wheel INFO installing to build/bdist.linux-riscv64/wheel 2024-04-29 17:13:18,300 root INFO running install 2024-04-29 17:13:18,342 root INFO running install_lib 2024-04-29 17:13:18,356 root INFO creating build/bdist.linux-riscv64 2024-04-29 17:13:18,357 root INFO creating build/bdist.linux-riscv64/wheel 2024-04-29 17:13:18,357 root INFO copying build/lib/pytest_mypy.py -> build/bdist.linux-riscv64/wheel 2024-04-29 17:13:18,358 root INFO running install_egg_info 2024-04-29 17:13:18,373 root INFO running egg_info 2024-04-29 17:13:18,374 root INFO creating src/pytest_mypy.egg-info 2024-04-29 17:13:18,385 root INFO writing src/pytest_mypy.egg-info/PKG-INFO 2024-04-29 17:13:18,387 root INFO writing dependency_links to src/pytest_mypy.egg-info/dependency_links.txt 2024-04-29 17:13:18,388 root INFO writing entry points to src/pytest_mypy.egg-info/entry_points.txt 2024-04-29 17:13:18,394 root INFO writing requirements to src/pytest_mypy.egg-info/requires.txt 2024-04-29 17:13:18,395 root INFO writing top-level names to src/pytest_mypy.egg-info/top_level.txt 2024-04-29 17:13:18,395 root INFO writing manifest file 'src/pytest_mypy.egg-info/SOURCES.txt' 2024-04-29 17:13:27,026 root INFO reading manifest file 'src/pytest_mypy.egg-info/SOURCES.txt' 2024-04-29 17:13:27,027 root INFO adding license file 'LICENSE' 2024-04-29 17:13:27,030 root INFO writing manifest file 'src/pytest_mypy.egg-info/SOURCES.txt' 2024-04-29 17:13:27,031 root INFO Copying src/pytest_mypy.egg-info to build/bdist.linux-riscv64/wheel/pytest_mypy-0.10.3-py3.12.egg-info 2024-04-29 17:13:27,036 root INFO running install_scripts 2024-04-29 17:13:27,048 wheel INFO creating build/bdist.linux-riscv64/wheel/pytest_mypy-0.10.3.dist-info/WHEEL 2024-04-29 17:13:27,050 wheel INFO creating '/home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/.dist/.tmp-sx4lb625/pytest_mypy-0.10.3-py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it 2024-04-29 17:13:27,052 wheel INFO adding 'pytest_mypy.py' 2024-04-29 17:13:27,054 wheel INFO adding 'pytest_mypy-0.10.3.dist-info/LICENSE' 2024-04-29 17:13:27,055 wheel INFO adding 'pytest_mypy-0.10.3.dist-info/METADATA' 2024-04-29 17:13:27,056 wheel INFO adding 'pytest_mypy-0.10.3.dist-info/WHEEL' 2024-04-29 17:13:27,057 wheel INFO adding 'pytest_mypy-0.10.3.dist-info/entry_points.txt' 2024-04-29 17:13:27,058 wheel INFO adding 'pytest_mypy-0.10.3.dist-info/top_level.txt' 2024-04-29 17:13:27,059 wheel INFO adding 'pytest_mypy-0.10.3.dist-info/RECORD' 2024-04-29 17:13:27,059 wheel INFO removing build/bdist.linux-riscv64/wheel 2024-04-29 17:13:27,062 gpep517 INFO The backend produced .dist/pytest_mypy-0.10.3-py3-none-any.whl pytest_mypy-0.10.3-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.1, pluggy-1.4.0 rootdir: /home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3 configfile: tox.ini testpaths: tests plugins: mypy-0.10.3, xdist-3.5.0 created: 64/64 workers 64 workers [56 items] .........FFx....x.......x......x.......x..x............. [100%] =================================== FAILURES =================================== __________________________ test_looponfail[__init__] ___________________________ [gw51] linux -- Python 3.12.3 /home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/.testenv/bin/python3 testdir = module_name = '__init__' @pytest.mark.parametrize("module_name", ["__init__", "test_demo"]) def test_looponfail(testdir, module_name): """Ensure that the plugin works with --looponfail.""" pass_source = textwrap.dedent( """\ def pyfunc(x: int) -> int: return x * 2 """, ) fail_source = textwrap.dedent( """\ def pyfunc(x: int) -> str: return x * 2 """, ) pyfile = testdir.makepyfile(**{module_name: fail_source}) looponfailroot = testdir.mkdir("looponfailroot") looponfailroot_pyfile = looponfailroot.join(pyfile.basename) pyfile.move(looponfailroot_pyfile) pyfile = looponfailroot_pyfile testdir.makeini( textwrap.dedent( """\ [pytest] looponfailroots = {looponfailroots} """.format( looponfailroots=looponfailroot, ), ), ) child = testdir.spawn_pytest( "--mypy --looponfail " + str(pyfile), expect_timeout=60.0, ) num_tests = 2 if module_name == "__init__" and Version("3.10") <= PYTEST_VERSION < Version("6.2"): # https://github.com/pytest-dev/pytest/issues/8016 # Pytest had a bug where it assumed only a Package would have a basename of # __init__.py. In this test, Pytest mistakes MypyFile for a Package and # returns after collecting only one object (the MypyFileItem). num_tests = 1 def _expect_session(): child.expect("==== test session starts ====") def _expect_failure(): _expect_session() child.expect("==== FAILURES ====") child.expect(pyfile.basename + " ____") child.expect("2: error: Incompatible return value") # if num_tests == 2: # # These only show with mypy>=0.730: # child.expect("==== mypy ====") # child.expect("Found 1 error in 1 file (checked 1 source file)") child.expect(str(num_tests) + " failed") child.expect("#### LOOPONFAILING ####") _expect_waiting() def _expect_waiting(): child.expect("#### waiting for changes ####") child.expect("Watching") def _fix(): pyfile.write(pass_source) _expect_changed() _expect_success() def _expect_changed(): child.expect("MODIFIED " + str(pyfile)) def _expect_success(): for _ in range(2): _expect_session() # if num_tests == 2: # # These only show with mypy>=0.730: # child.expect("==== mypy ====") # child.expect("Success: no issues found in 1 source file") try: child.expect(str(num_tests) + " passed") except pexpect.exceptions.TIMEOUT: if module_name == "__init__" and ( Version("6.0") <= PYTEST_VERSION < Version("6.2") ): # MypyItems hit the __init__.py bug too when --looponfail # re-collects them after the failing file is modified. # Unlike MypyFile, MypyItem is not a Collector, so this used # to cause an AttributeError until a workaround was added # (MypyItem.collect was defined to yield itself). # Mypy probably noticed the __init__.py problem during the # development of Pytest 6.0, but the error was addressed # with an isinstance assertion, which broke the workaround. # Here, we hit that assertion: child.expect("AssertionError") child.expect("1 error") pytest.xfail("https://github.com/pytest-dev/pytest/issues/8016") raise _expect_waiting() def _break(): pyfile.write(fail_source) _expect_changed() _expect_failure() > _expect_failure() /home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/tests/test_pytest_mypy.py:504: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/tests/test_pytest_mypy.py:448: in _expect_failure child.expect("==== FAILURES ====") /usr/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect return self.expect_list(compiled_pattern_list, /usr/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list return exp.expect_loop(timeout) /usr/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop return self.timeout(e) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = err = TIMEOUT('Timeout exceeded.') def timeout(self, err=None): spawn = self.spawn spawn.before = spawn._before.getvalue() spawn.after = TIMEOUT index = self.searcher.timeout_index if index >= 0: spawn.match = TIMEOUT spawn.match_index = index return index else: spawn.match = None spawn.match_index = None msg = str(spawn) msg += '\nsearcher: %s' % self.searcher if err is not None: msg = str(err) + '\n' + msg exc = TIMEOUT(msg) exc.__cause__ = None # in Python 3.x we can use "raise exc from None" > raise exc E pexpect.exceptions.TIMEOUT: Timeout exceeded. E E command: /home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/.testenv/bin/python3 E args: ['/home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/.testenv/bin/python3', '-mpytest', '--basetemp=/tmp/pytest-of-buildozer/pytest-493/popen-gw51/test_looponfail0/temp-pexpect', '--mypy', '--looponfail', '/tmp/pytest-of-buildozer/pytest-493/popen-gw51/test_looponfail0/looponfailroot/__init__.py'] E buffer (last 100 chars): b'ugins: mypy-0.10.3, xdist-3.5.0\r\ncollected 2 items\r\ncollected 2 items\r\n\r\nlooponfailroot/__init__.py ' E before (last 100 chars): b'ugins: mypy-0.10.3, xdist-3.5.0\r\ncollected 2 items\r\ncollected 2 items\r\n\r\nlooponfailroot/__init__.py ' E after: E match: None E match_index: None E exitstatus: None E flag_eof: False E pid: 1197 E child_fd: 16 E closed: False E timeout: 60.0 E delimiter: E logfile: <_io.BufferedWriter name='/tmp/pytest-of-buildozer/pytest-493/popen-gw51/test_looponfail0/spawn.out'> E logfile_read: None E logfile_send: None E maxread: 2000 E ignorecase: False E searchwindowsize: None E delaybeforesend: 0.05 E delayafterclose: 0.1 E delayafterterminate: 0.1 E searcher: searcher_re: E 0: re.compile(b'==== FAILURES ====') /usr/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT __________________________ test_looponfail[test_demo] __________________________ [gw52] linux -- Python 3.12.3 /home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/.testenv/bin/python3 testdir = module_name = 'test_demo' @pytest.mark.parametrize("module_name", ["__init__", "test_demo"]) def test_looponfail(testdir, module_name): """Ensure that the plugin works with --looponfail.""" pass_source = textwrap.dedent( """\ def pyfunc(x: int) -> int: return x * 2 """, ) fail_source = textwrap.dedent( """\ def pyfunc(x: int) -> str: return x * 2 """, ) pyfile = testdir.makepyfile(**{module_name: fail_source}) looponfailroot = testdir.mkdir("looponfailroot") looponfailroot_pyfile = looponfailroot.join(pyfile.basename) pyfile.move(looponfailroot_pyfile) pyfile = looponfailroot_pyfile testdir.makeini( textwrap.dedent( """\ [pytest] looponfailroots = {looponfailroots} """.format( looponfailroots=looponfailroot, ), ), ) child = testdir.spawn_pytest( "--mypy --looponfail " + str(pyfile), expect_timeout=60.0, ) num_tests = 2 if module_name == "__init__" and Version("3.10") <= PYTEST_VERSION < Version("6.2"): # https://github.com/pytest-dev/pytest/issues/8016 # Pytest had a bug where it assumed only a Package would have a basename of # __init__.py. In this test, Pytest mistakes MypyFile for a Package and # returns after collecting only one object (the MypyFileItem). num_tests = 1 def _expect_session(): child.expect("==== test session starts ====") def _expect_failure(): _expect_session() child.expect("==== FAILURES ====") child.expect(pyfile.basename + " ____") child.expect("2: error: Incompatible return value") # if num_tests == 2: # # These only show with mypy>=0.730: # child.expect("==== mypy ====") # child.expect("Found 1 error in 1 file (checked 1 source file)") child.expect(str(num_tests) + " failed") child.expect("#### LOOPONFAILING ####") _expect_waiting() def _expect_waiting(): child.expect("#### waiting for changes ####") child.expect("Watching") def _fix(): pyfile.write(pass_source) _expect_changed() _expect_success() def _expect_changed(): child.expect("MODIFIED " + str(pyfile)) def _expect_success(): for _ in range(2): _expect_session() # if num_tests == 2: # # These only show with mypy>=0.730: # child.expect("==== mypy ====") # child.expect("Success: no issues found in 1 source file") try: child.expect(str(num_tests) + " passed") except pexpect.exceptions.TIMEOUT: if module_name == "__init__" and ( Version("6.0") <= PYTEST_VERSION < Version("6.2") ): # MypyItems hit the __init__.py bug too when --looponfail # re-collects them after the failing file is modified. # Unlike MypyFile, MypyItem is not a Collector, so this used # to cause an AttributeError until a workaround was added # (MypyItem.collect was defined to yield itself). # Mypy probably noticed the __init__.py problem during the # development of Pytest 6.0, but the error was addressed # with an isinstance assertion, which broke the workaround. # Here, we hit that assertion: child.expect("AssertionError") child.expect("1 error") pytest.xfail("https://github.com/pytest-dev/pytest/issues/8016") raise _expect_waiting() def _break(): pyfile.write(fail_source) _expect_changed() _expect_failure() > _expect_failure() /home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/tests/test_pytest_mypy.py:504: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/tests/test_pytest_mypy.py:448: in _expect_failure child.expect("==== FAILURES ====") /usr/lib/python3.12/site-packages/pexpect/spawnbase.py:354: in expect return self.expect_list(compiled_pattern_list, /usr/lib/python3.12/site-packages/pexpect/spawnbase.py:383: in expect_list return exp.expect_loop(timeout) /usr/lib/python3.12/site-packages/pexpect/expect.py:181: in expect_loop return self.timeout(e) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = err = TIMEOUT('Timeout exceeded.') def timeout(self, err=None): spawn = self.spawn spawn.before = spawn._before.getvalue() spawn.after = TIMEOUT index = self.searcher.timeout_index if index >= 0: spawn.match = TIMEOUT spawn.match_index = index return index else: spawn.match = None spawn.match_index = None msg = str(spawn) msg += '\nsearcher: %s' % self.searcher if err is not None: msg = str(err) + '\n' + msg exc = TIMEOUT(msg) exc.__cause__ = None # in Python 3.x we can use "raise exc from None" > raise exc E pexpect.exceptions.TIMEOUT: Timeout exceeded. E E command: /home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/.testenv/bin/python3 E args: ['/home/buildozer/aports/testing/py3-pytest-mypy/src/pytest-mypy-0.10.3/.testenv/bin/python3', '-mpytest', '--basetemp=/tmp/pytest-of-buildozer/pytest-493/popen-gw52/test_looponfail0/temp-pexpect', '--mypy', '--looponfail', '/tmp/pytest-of-buildozer/pytest-493/popen-gw52/test_looponfail0/looponfailroot/test_demo.py'] E buffer (last 100 chars): b'gins: mypy-0.10.3, xdist-3.5.0\r\ncollected 2 items\r\ncollected 2 items\r\n\r\nlooponfailroot/test_demo.py ' E before (last 100 chars): b'gins: mypy-0.10.3, xdist-3.5.0\r\ncollected 2 items\r\ncollected 2 items\r\n\r\nlooponfailroot/test_demo.py ' E after: E match: None E match_index: None E exitstatus: None E flag_eof: False E pid: 1196 E child_fd: 16 E closed: False E timeout: 60.0 E delimiter: E logfile: <_io.BufferedWriter name='/tmp/pytest-of-buildozer/pytest-493/popen-gw52/test_looponfail0/spawn.out'> E logfile_read: None E logfile_send: None E maxread: 2000 E ignorecase: False E searchwindowsize: None E delaybeforesend: 0.05 E delayafterclose: 0.1 E delayafterterminate: 0.1 E searcher: searcher_re: E 0: re.compile(b'==== FAILURES ====') /usr/lib/python3.12/site-packages/pexpect/expect.py:144: TIMEOUT =============================== warnings summary =============================== tests/test_pytest_mypy.py::test_looponfail[__init__] /usr/lib/python3.12/pty.py:95: DeprecationWarning: This process (pid=1084) is multi-threaded, use of forkpty() may lead to deadlocks in the child. pid, fd = os.forkpty() tests/test_pytest_mypy.py::test_looponfail[test_demo] /usr/lib/python3.12/pty.py:95: DeprecationWarning: This process (pid=1088) is multi-threaded, use of forkpty() may lead to deadlocks in the child. pid, fd = os.forkpty() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_pytest_mypy.py::test_looponfail[__init__] - pexpect.excepti... FAILED tests/test_pytest_mypy.py::test_looponfail[test_demo] - pexpect.except... ======= 2 failed, 48 passed, 6 xfailed, 2 warnings in 151.07s (0:02:31) ======== >>> ERROR: py3-pytest-mypy: check failed >>> py3-pytest-mypy: Uninstalling dependencies... (1/55) Purging .makedepends-py3-pytest-mypy (20240429.171314) (2/55) Purging py3-attrs-pyc (23.2.0-r1) (3/55) Purging py3-attrs (23.2.0-r1) (4/55) Purging py3-filelock-pyc (3.13.1-r1) (5/55) Purging py3-filelock (3.13.1-r1) (6/55) Purging py3-mypy-pyc (1.9.0-r1) (7/55) Purging py3-mypy (1.9.0-r1) (8/55) Purging py3-mypy-extensions-pyc (1.0.0-r3) (9/55) Purging py3-mypy-extensions (1.0.0-r3) (10/55) Purging py3-typing-extensions-pyc (4.11.0-r1) (11/55) Purging py3-typing-extensions (4.11.0-r1) (12/55) Purging py3-gpep517-pyc (15-r2) (13/55) Purging py3-gpep517 (15-r2) (14/55) Purging py3-installer-pyc (0.7.0-r2) (15/55) Purging py3-installer (0.7.0-r2) (16/55) Purging py3-setuptools_scm-pyc (8.0.4-r2) (17/55) Purging py3-setuptools_scm (8.0.4-r2) (18/55) Purging py3-setuptools-pyc (69.5.1-r0) (19/55) Purging py3-setuptools (69.5.1-r0) (20/55) Purging py3-wheel-pyc (0.42.0-r1) (21/55) Purging py3-wheel (0.42.0-r1) (22/55) Purging py3-pexpect-pyc (4.9-r1) (23/55) Purging py3-pexpect (4.9-r1) (24/55) Purging py3-ptyprocess-pyc (0.7.0-r6) (25/55) Purging py3-ptyprocess (0.7.0-r6) (26/55) Purging py3-pytest-xdist-pyc (3.5.0-r1) (27/55) Purging py3-pytest-xdist (3.5.0-r1) (28/55) Purging py3-execnet-pyc (1.9.0-r3) (29/55) Purging py3-execnet (1.9.0-r3) (30/55) Purging py3-apipkg-pyc (2.1.0-r3) (31/55) Purging py3-apipkg (2.1.0-r3) (32/55) Purging py3-pytest-pyc (8.1.1-r1) (33/55) Purging py3-pytest (8.1.1-r1) (34/55) Purging py3-iniconfig-pyc (2.0.0-r1) (35/55) Purging py3-iniconfig (2.0.0-r1) (36/55) Purging py3-packaging-pyc (24.0-r1) (37/55) Purging py3-packaging (24.0-r1) (38/55) Purging py3-parsing-pyc (3.1.2-r1) (39/55) Purging py3-parsing (3.1.2-r1) (40/55) Purging py3-pluggy-pyc (1.4.0-r1) (41/55) Purging py3-pluggy (1.4.0-r1) (42/55) Purging py3-py-pyc (1.11.0-r3) (43/55) Purging py3-py (1.11.0-r3) (44/55) Purging python3-pyc (3.12.3-r1) (45/55) Purging python3-pycache-pyc0 (3.12.3-r1) (46/55) Purging pyc (3.12.3-r1) (47/55) Purging python3 (3.12.3-r1) (48/55) Purging gdbm (1.23-r1) (49/55) Purging libbz2 (1.0.8-r6) (50/55) Purging libffi (3.4.6-r0) (51/55) Purging libpanelw (6.4_p20240330-r0) (52/55) Purging mpdecimal (4.0.0-r0) (53/55) Purging readline (8.2.10-r0) (54/55) Purging sqlite-libs (3.45.3-r0) (55/55) Purging xz-libs (5.6.1-r3) Executing busybox-1.36.1-r26.trigger OK: 227 MiB in 102 packages