2026-02-09T23:41:37,320 Created temporary directory: /tmp/pip-ephem-wheel-cache-mf79zn2v 2026-02-09T23:41:37,322 Created temporary directory: /tmp/pip-build-tracker-howwc_i2 2026-02-09T23:41:37,323 Initialized build tracking at /tmp/pip-build-tracker-howwc_i2 2026-02-09T23:41:37,324 Created build tracker: /tmp/pip-build-tracker-howwc_i2 2026-02-09T23:41:37,324 Entered build tracker: /tmp/pip-build-tracker-howwc_i2 2026-02-09T23:41:37,326 Created temporary directory: /tmp/pip-wheel-0le_xk5v 2026-02-09T23:41:37,329 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2026-02-09T23:41:37,332 Created temporary directory: /tmp/pip-ephem-wheel-cache-cbpo6p98 2026-02-09T23:41:37,360 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-02-09T23:41:37,364 2 location(s) to search for versions of kontra: 2026-02-09T23:41:37,364 * https://pypi.org/simple/kontra/ 2026-02-09T23:41:37,364 * https://www.piwheels.org/simple/kontra/ 2026-02-09T23:41:37,365 Fetching project page and analyzing links: https://pypi.org/simple/kontra/ 2026-02-09T23:41:37,366 Getting page https://pypi.org/simple/kontra/ 2026-02-09T23:41:37,367 Found index url https://pypi.org/simple 2026-02-09T23:41:37,535 Fetched page https://pypi.org/simple/kontra/ as application/vnd.pypi.simple.v1+json 2026-02-09T23:41:37,540 Skipping link: No binaries permitted for kontra: https://files.pythonhosted.org/packages/0a/07/c8518e168cfba25cb77227929ac1937ec07347b2c886237a5d3c6e6a81b2/kontra-0.0.0-py2.py3-none-any.whl (from https://pypi.org/simple/kontra/) 2026-02-09T23:41:37,541 Found link https://files.pythonhosted.org/packages/9f/98/f7e5fdb8e4d4f60400a937f987c2767e8d6158ae51a44af8df72403ce4e6/kontra-0.0.0.tar.gz (from https://pypi.org/simple/kontra/), version: 0.0.0 2026-02-09T23:41:37,542 Skipping link: No binaries permitted for kontra: https://files.pythonhosted.org/packages/f4/97/a6b39f1beae8011b50dc92ceeb27a7a3ac5e8d36ebbdf9fb7f0767e39f74/kontra-0.5.0-py3-none-any.whl (from https://pypi.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,543 Found link https://files.pythonhosted.org/packages/bc/e1/a397c38ccac95532804a8804ce069796e04d28f8492998b9d641ec69c9c3/kontra-0.5.0.tar.gz (from https://pypi.org/simple/kontra/) (requires-python:>=3.10), version: 0.5.0 2026-02-09T23:41:37,544 Skipping link: No binaries permitted for kontra: https://files.pythonhosted.org/packages/9c/3f/471896ee5058f91c3299c1699152b6b50ed4cd21fb3090d0294e9e1e46e1/kontra-0.5.1-py3-none-any.whl (from https://pypi.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,546 Found link https://files.pythonhosted.org/packages/21/59/a06ad9ddc8852579c8bcf86ca17e1c981d6ab91efc26a2ba8e99ab135f3a/kontra-0.5.1.tar.gz (from https://pypi.org/simple/kontra/) (requires-python:>=3.10), version: 0.5.1 2026-02-09T23:41:37,547 Skipping link: No binaries permitted for kontra: https://files.pythonhosted.org/packages/06/09/ae443e085a9d064c8af8fff7961552eef10180e6fda73fb222bddd154829/kontra-0.5.2-py3-none-any.whl (from https://pypi.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,548 Found link https://files.pythonhosted.org/packages/3f/c0/53ba905d657dcf478ff95a61eab5939cd796819067a8a567c37479acef20/kontra-0.5.2.tar.gz (from https://pypi.org/simple/kontra/) (requires-python:>=3.10), version: 0.5.2 2026-02-09T23:41:37,549 Skipping link: No binaries permitted for kontra: https://files.pythonhosted.org/packages/cf/d5/7fb1ff6d06338d55f99d41dc3e39c1f6752f5dfe61c01ed151773ad564aa/kontra-0.5.3-py3-none-any.whl (from https://pypi.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,550 Found link https://files.pythonhosted.org/packages/00/4e/3f05ce884f941011b3791e8fd988d031f9d80fbe3cad6d7151bae7b0fc75/kontra-0.5.3.tar.gz (from https://pypi.org/simple/kontra/) (requires-python:>=3.10), version: 0.5.3 2026-02-09T23:41:37,551 Skipping link: No binaries permitted for kontra: https://files.pythonhosted.org/packages/11/29/8118c0e1f5eeffbd561f7b2f6181108f1f2cec0928704f821afeef011064/kontra-0.5.4-py3-none-any.whl (from https://pypi.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,553 Found link https://files.pythonhosted.org/packages/69/12/03431ed689e71926d1250a8fbda43b99c861e43db472182dfc8b029b0a1d/kontra-0.5.4.tar.gz (from https://pypi.org/simple/kontra/) (requires-python:>=3.10), version: 0.5.4 2026-02-09T23:41:37,554 Skipping link: No binaries permitted for kontra: https://files.pythonhosted.org/packages/0e/27/b0f4951a8e045852f30e70cf386fcb34d26bcdd8a054b409c8542450cc64/kontra-0.6.0-py3-none-any.whl (from https://pypi.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,555 Found link https://files.pythonhosted.org/packages/f1/ca/d9b1aefc3e817ef55a0d4827adcacc3472f909defb7ea3b3ebceb97952de/kontra-0.6.0.tar.gz (from https://pypi.org/simple/kontra/) (requires-python:>=3.10), version: 0.6.0 2026-02-09T23:41:37,555 Skipping link: No binaries permitted for kontra: https://files.pythonhosted.org/packages/8e/8c/0d51d0b667b61294e343ae37fa0d9e35f4e1242dab5199428c7348f32e88/kontra-0.6.1-py3-none-any.whl (from https://pypi.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,556 Found link https://files.pythonhosted.org/packages/ff/08/3d83a7271f52e8ef25125502bebebae5939a95789a00b05fe45250c13866/kontra-0.6.1.tar.gz (from https://pypi.org/simple/kontra/) (requires-python:>=3.10), version: 0.6.1 2026-02-09T23:41:37,557 Skipping link: No binaries permitted for kontra: https://files.pythonhosted.org/packages/8f/06/43e7a461597eb31e7d4c1871982d73d5c41c37870135ada96bff429ec46c/kontra-0.6.2-py3-none-any.whl (from https://pypi.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,558 Found link https://files.pythonhosted.org/packages/c6/09/550250bcf89df425f648005f2a374f49f50359a30f21015e788c58073774/kontra-0.6.2.tar.gz (from https://pypi.org/simple/kontra/) (requires-python:>=3.10), version: 0.6.2 2026-02-09T23:41:37,559 Skipping link: No binaries permitted for kontra: https://files.pythonhosted.org/packages/71/23/55b6fb7ad31c87fdec7cbe6bdc3ad1c77c395d9c78501d6980cfc7370a98/kontra-0.6.3-py3-none-any.whl (from https://pypi.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,560 Found link https://files.pythonhosted.org/packages/2d/23/676bfc9952b36404e97982740bdf7a23c22b66a9b57c3efb6f850bf1fb3f/kontra-0.6.3.tar.gz (from https://pypi.org/simple/kontra/) (requires-python:>=3.10), version: 0.6.3 2026-02-09T23:41:37,562 Fetching project page and analyzing links: https://www.piwheels.org/simple/kontra/ 2026-02-09T23:41:37,563 Getting page https://www.piwheels.org/simple/kontra/ 2026-02-09T23:41:37,564 Found index url https://www.piwheels.org/simple 2026-02-09T23:41:37,758 Fetched page https://www.piwheels.org/simple/kontra/ as text/html 2026-02-09T23:41:37,761 Skipping link: No binaries permitted for kontra: https://www.piwheels.org/simple/kontra/kontra-0.5.2-py3-none-any.whl#sha256=022194aa46e346efdd0d1425a26ca01bb674fcd8f8e60c2522a6fef9bd0981e5 (from https://www.piwheels.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,761 Skipping link: No binaries permitted for kontra: https://www.piwheels.org/simple/kontra/kontra-0.5.1-py3-none-any.whl#sha256=6b47019a1fccf8a03aaf5d61d983ea150a3a4c81365f7439bcc8f06a8722ffb2 (from https://www.piwheels.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,762 Skipping link: No binaries permitted for kontra: https://www.piwheels.org/simple/kontra/kontra-0.5.0-py3-none-any.whl#sha256=f10d2677ec7ddb384cf4b635f5e33d540bb5dcd5ae1ebbf108c0c3224ee3b3df (from https://www.piwheels.org/simple/kontra/) (requires-python:>=3.10) 2026-02-09T23:41:37,763 Skipping link: No binaries permitted for kontra: https://archive1.piwheels.org/simple/kontra/kontra-0.0.0-py2.py3-none-any.whl#sha256=e20805ed205f1e629843ad58d8b0fce87be678f08b49d47c00a759e33419256a (from https://www.piwheels.org/simple/kontra/) 2026-02-09T23:41:37,764 Skipping link: not a file: https://www.piwheels.org/simple/kontra/ 2026-02-09T23:41:37,765 Skipping link: not a file: https://pypi.org/simple/kontra/ 2026-02-09T23:41:37,788 Given no hashes to check 1 links for project 'kontra': discarding no candidates 2026-02-09T23:41:37,810 Collecting kontra==0.5.3 2026-02-09T23:41:37,813 Created temporary directory: /tmp/pip-unpack-lbi20min 2026-02-09T23:41:38,057 Downloading kontra-0.5.3.tar.gz (330 kB) 2026-02-09T23:41:38,618 Added kontra==0.5.3 from https://files.pythonhosted.org/packages/00/4e/3f05ce884f941011b3791e8fd988d031f9d80fbe3cad6d7151bae7b0fc75/kontra-0.5.3.tar.gz to build tracker '/tmp/pip-build-tracker-howwc_i2' 2026-02-09T23:41:38,625 Created temporary directory: /tmp/pip-build-env-jdb4svfc 2026-02-09T23:41:38,631 Installing build dependencies: started 2026-02-09T23:41:38,632 Running command pip subprocess to install build dependencies 2026-02-09T23:41:40,000 Using pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11) 2026-02-09T23:41:40,767 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2026-02-09T23:41:40,797 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-02-09T23:41:42,770 Collecting setuptools>=69 2026-02-09T23:41:42,792 Using cached setuptools-82.0.0-py3-none-any.whl (1.0 MB) 2026-02-09T23:41:43,101 Collecting wheel 2026-02-09T23:41:43,118 Using cached https://www.piwheels.org/simple/wheel/wheel-0.46.3-py3-none-any.whl (30 kB) 2026-02-09T23:41:43,332 Collecting packaging>=24.0 2026-02-09T23:41:43,351 Using cached https://www.piwheels.org/simple/packaging/packaging-26.0-py3-none-any.whl (74 kB) 2026-02-09T23:41:46,879 Installing collected packages: setuptools, packaging, wheel 2026-02-09T23:41:50,875 Creating /tmp/pip-build-env-jdb4svfc/overlay/local/bin 2026-02-09T23:41:50,878 changing mode of /tmp/pip-build-env-jdb4svfc/overlay/local/bin/wheel to 755 2026-02-09T23:41:50,903 Successfully installed packaging-26.0 setuptools-82.0.0 wheel-0.46.3 2026-02-09T23:41:51,258 Installing build dependencies: finished with status 'done' 2026-02-09T23:41:51,267 Getting requirements to build wheel: started 2026-02-09T23:41:51,268 Running command Getting requirements to build wheel 2026-02-09T23:41:52,022 /tmp/pip-build-env-jdb4svfc/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 2026-02-09T23:41:52,023 !! 2026-02-09T23:41:52,024 ******************************************************************************** 2026-02-09T23:41:52,025 Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). 2026-02-09T23:41:52,026 By 2027-Feb-18, you need to update your project and remove deprecated calls 2026-02-09T23:41:52,027 or your builds will no longer be supported. 2026-02-09T23:41:52,029 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T23:41:52,029 ******************************************************************************** 2026-02-09T23:41:52,031 !! 2026-02-09T23:41:52,032 corresp(dist, value, root_dir) 2026-02-09T23:41:52,128 /tmp/pip-build-env-jdb4svfc/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T23:41:52,129 !! 2026-02-09T23:41:52,131 ******************************************************************************** 2026-02-09T23:41:52,131 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T23:41:52,133 License :: OSI Approved :: Apache Software License 2026-02-09T23:41:52,134 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T23:41:52,134 ******************************************************************************** 2026-02-09T23:41:52,136 !! 2026-02-09T23:41:52,136 dist._finalize_license_expression() 2026-02-09T23:41:52,139 /tmp/pip-build-env-jdb4svfc/overlay/local/lib/python3.11/dist-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T23:41:52,140 !! 2026-02-09T23:41:52,141 ******************************************************************************** 2026-02-09T23:41:52,142 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T23:41:52,143 License :: OSI Approved :: Apache Software License 2026-02-09T23:41:52,144 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T23:41:52,145 ******************************************************************************** 2026-02-09T23:41:52,146 !! 2026-02-09T23:41:52,147 self._finalize_license_expression() 2026-02-09T23:41:52,153 running egg_info 2026-02-09T23:41:52,161 writing src/kontra.egg-info/PKG-INFO 2026-02-09T23:41:52,170 writing dependency_links to src/kontra.egg-info/dependency_links.txt 2026-02-09T23:41:52,172 writing entry points to src/kontra.egg-info/entry_points.txt 2026-02-09T23:41:52,177 writing requirements to src/kontra.egg-info/requires.txt 2026-02-09T23:41:52,179 writing top-level names to src/kontra.egg-info/top_level.txt 2026-02-09T23:41:52,238 reading manifest file 'src/kontra.egg-info/SOURCES.txt' 2026-02-09T23:41:52,250 adding license file 'LICENSE' 2026-02-09T23:41:52,261 writing manifest file 'src/kontra.egg-info/SOURCES.txt' 2026-02-09T23:41:52,387 Getting requirements to build wheel: finished with status 'done' 2026-02-09T23:41:52,391 Created temporary directory: /tmp/pip-modern-metadata-b4up37or 2026-02-09T23:41:52,394 Preparing metadata (pyproject.toml): started 2026-02-09T23:41:52,396 Running command Preparing metadata (pyproject.toml) 2026-02-09T23:41:53,069 /tmp/pip-build-env-jdb4svfc/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 2026-02-09T23:41:53,069 !! 2026-02-09T23:41:53,070 ******************************************************************************** 2026-02-09T23:41:53,071 Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). 2026-02-09T23:41:53,072 By 2027-Feb-18, you need to update your project and remove deprecated calls 2026-02-09T23:41:53,073 or your builds will no longer be supported. 2026-02-09T23:41:53,074 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T23:41:53,075 ******************************************************************************** 2026-02-09T23:41:53,076 !! 2026-02-09T23:41:53,077 corresp(dist, value, root_dir) 2026-02-09T23:41:53,167 /tmp/pip-build-env-jdb4svfc/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T23:41:53,167 !! 2026-02-09T23:41:53,170 ******************************************************************************** 2026-02-09T23:41:53,171 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T23:41:53,173 License :: OSI Approved :: Apache Software License 2026-02-09T23:41:53,174 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T23:41:53,174 ******************************************************************************** 2026-02-09T23:41:53,175 !! 2026-02-09T23:41:53,176 dist._finalize_license_expression() 2026-02-09T23:41:53,180 /tmp/pip-build-env-jdb4svfc/overlay/local/lib/python3.11/dist-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T23:41:53,181 !! 2026-02-09T23:41:53,182 ******************************************************************************** 2026-02-09T23:41:53,182 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T23:41:53,184 License :: OSI Approved :: Apache Software License 2026-02-09T23:41:53,185 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T23:41:53,185 ******************************************************************************** 2026-02-09T23:41:53,187 !! 2026-02-09T23:41:53,188 self._finalize_license_expression() 2026-02-09T23:41:53,194 running dist_info 2026-02-09T23:41:53,208 creating /tmp/pip-modern-metadata-b4up37or/kontra.egg-info 2026-02-09T23:41:53,209 writing /tmp/pip-modern-metadata-b4up37or/kontra.egg-info/PKG-INFO 2026-02-09T23:41:53,217 writing dependency_links to /tmp/pip-modern-metadata-b4up37or/kontra.egg-info/dependency_links.txt 2026-02-09T23:41:53,220 writing entry points to /tmp/pip-modern-metadata-b4up37or/kontra.egg-info/entry_points.txt 2026-02-09T23:41:53,225 writing requirements to /tmp/pip-modern-metadata-b4up37or/kontra.egg-info/requires.txt 2026-02-09T23:41:53,226 writing top-level names to /tmp/pip-modern-metadata-b4up37or/kontra.egg-info/top_level.txt 2026-02-09T23:41:53,229 writing manifest file '/tmp/pip-modern-metadata-b4up37or/kontra.egg-info/SOURCES.txt' 2026-02-09T23:41:53,276 reading manifest file '/tmp/pip-modern-metadata-b4up37or/kontra.egg-info/SOURCES.txt' 2026-02-09T23:41:53,279 adding license file 'LICENSE' 2026-02-09T23:41:53,287 writing manifest file '/tmp/pip-modern-metadata-b4up37or/kontra.egg-info/SOURCES.txt' 2026-02-09T23:41:53,289 creating '/tmp/pip-modern-metadata-b4up37or/kontra-0.5.3.dist-info' 2026-02-09T23:41:53,448 Preparing metadata (pyproject.toml): finished with status 'done' 2026-02-09T23:41:53,454 Source in /tmp/pip-wheel-0le_xk5v/kontra_ac39a918b6c8442abe27578eb26778ea has version 0.5.3, which satisfies requirement kontra==0.5.3 from https://files.pythonhosted.org/packages/00/4e/3f05ce884f941011b3791e8fd988d031f9d80fbe3cad6d7151bae7b0fc75/kontra-0.5.3.tar.gz 2026-02-09T23:41:53,455 Removed kontra==0.5.3 from https://files.pythonhosted.org/packages/00/4e/3f05ce884f941011b3791e8fd988d031f9d80fbe3cad6d7151bae7b0fc75/kontra-0.5.3.tar.gz from build tracker '/tmp/pip-build-tracker-howwc_i2' 2026-02-09T23:41:53,462 Created temporary directory: /tmp/pip-unpack-7_tx2b2f 2026-02-09T23:41:53,463 Building wheels for collected packages: kontra 2026-02-09T23:41:53,469 Created temporary directory: /tmp/pip-wheel-iwsrrmiu 2026-02-09T23:41:53,469 Destination directory: /tmp/pip-wheel-iwsrrmiu 2026-02-09T23:41:53,473 Building wheel for kontra (pyproject.toml): started 2026-02-09T23:41:53,474 Running command Building wheel for kontra (pyproject.toml) 2026-02-09T23:41:54,143 /tmp/pip-build-env-jdb4svfc/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 2026-02-09T23:41:54,143 !! 2026-02-09T23:41:54,145 ******************************************************************************** 2026-02-09T23:41:54,146 Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). 2026-02-09T23:41:54,147 By 2027-Feb-18, you need to update your project and remove deprecated calls 2026-02-09T23:41:54,148 or your builds will no longer be supported. 2026-02-09T23:41:54,149 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T23:41:54,150 ******************************************************************************** 2026-02-09T23:41:54,151 !! 2026-02-09T23:41:54,152 corresp(dist, value, root_dir) 2026-02-09T23:41:54,237 /tmp/pip-build-env-jdb4svfc/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T23:41:54,237 !! 2026-02-09T23:41:54,239 ******************************************************************************** 2026-02-09T23:41:54,239 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T23:41:54,240 License :: OSI Approved :: Apache Software License 2026-02-09T23:41:54,241 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T23:41:54,242 ******************************************************************************** 2026-02-09T23:41:54,243 !! 2026-02-09T23:41:54,244 dist._finalize_license_expression() 2026-02-09T23:41:54,249 /tmp/pip-build-env-jdb4svfc/overlay/local/lib/python3.11/dist-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T23:41:54,250 !! 2026-02-09T23:41:54,251 ******************************************************************************** 2026-02-09T23:41:54,252 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T23:41:54,254 License :: OSI Approved :: Apache Software License 2026-02-09T23:41:54,255 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T23:41:54,256 ******************************************************************************** 2026-02-09T23:41:54,258 !! 2026-02-09T23:41:54,259 self._finalize_license_expression() 2026-02-09T23:41:54,260 running bdist_wheel 2026-02-09T23:41:54,280 running build 2026-02-09T23:41:54,281 running build_py 2026-02-09T23:41:54,289 creating build/lib/kontra 2026-02-09T23:41:54,293 copying src/kontra/version.py -> build/lib/kontra 2026-02-09T23:41:54,296 copying src/kontra/errors.py -> build/lib/kontra 2026-02-09T23:41:54,299 copying src/kontra/__init__.py -> build/lib/kontra 2026-02-09T23:41:54,304 copying src/kontra/logging.py -> build/lib/kontra 2026-02-09T23:41:54,307 creating build/lib/kontra/cli 2026-02-09T23:41:54,309 copying src/kontra/cli/renderers.py -> build/lib/kontra/cli 2026-02-09T23:41:54,312 copying src/kontra/cli/__init__.py -> build/lib/kontra/cli 2026-02-09T23:41:54,314 copying src/kontra/cli/utils.py -> build/lib/kontra/cli 2026-02-09T23:41:54,317 copying src/kontra/cli/main.py -> build/lib/kontra/cli 2026-02-09T23:41:54,320 copying src/kontra/cli/constants.py -> build/lib/kontra/cli 2026-02-09T23:41:54,324 creating build/lib/kontra/scout 2026-02-09T23:41:54,325 copying src/kontra/scout/profiler.py -> build/lib/kontra/scout 2026-02-09T23:41:54,330 copying src/kontra/scout/suggest.py -> build/lib/kontra/scout 2026-02-09T23:41:54,333 copying src/kontra/scout/store.py -> build/lib/kontra/scout 2026-02-09T23:41:54,336 copying src/kontra/scout/types.py -> build/lib/kontra/scout 2026-02-09T23:41:54,340 copying src/kontra/scout/dtype_mapping.py -> build/lib/kontra/scout 2026-02-09T23:41:54,343 copying src/kontra/scout/patterns.py -> build/lib/kontra/scout 2026-02-09T23:41:54,346 copying src/kontra/scout/__init__.py -> build/lib/kontra/scout 2026-02-09T23:41:54,349 creating build/lib/kontra/engine 2026-02-09T23:41:54,351 copying src/kontra/engine/result.py -> build/lib/kontra/engine 2026-02-09T23:41:54,354 copying src/kontra/engine/types.py -> build/lib/kontra/engine 2026-02-09T23:41:54,357 copying src/kontra/engine/sql_utils.py -> build/lib/kontra/engine 2026-02-09T23:41:54,361 copying src/kontra/engine/__init__.py -> build/lib/kontra/engine 2026-02-09T23:41:54,363 copying src/kontra/engine/engine.py -> build/lib/kontra/engine 2026-02-09T23:41:54,368 copying src/kontra/engine/stats.py -> build/lib/kontra/engine 2026-02-09T23:41:54,371 copying src/kontra/engine/sql_validator.py -> build/lib/kontra/engine 2026-02-09T23:41:54,375 creating build/lib/kontra/api 2026-02-09T23:41:54,377 copying src/kontra/api/decorators.py -> build/lib/kontra/api 2026-02-09T23:41:54,381 copying src/kontra/api/compare.py -> build/lib/kontra/api 2026-02-09T23:41:54,384 copying src/kontra/api/__init__.py -> build/lib/kontra/api 2026-02-09T23:41:54,387 copying src/kontra/api/results.py -> build/lib/kontra/api 2026-02-09T23:41:54,393 copying src/kontra/api/rules.py -> build/lib/kontra/api 2026-02-09T23:41:54,397 creating build/lib/kontra/preplan 2026-02-09T23:41:54,399 copying src/kontra/preplan/types.py -> build/lib/kontra/preplan 2026-02-09T23:41:54,402 copying src/kontra/preplan/planner.py -> build/lib/kontra/preplan 2026-02-09T23:41:54,405 copying src/kontra/preplan/sqlserver.py -> build/lib/kontra/preplan 2026-02-09T23:41:54,408 copying src/kontra/preplan/postgres.py -> build/lib/kontra/preplan 2026-02-09T23:41:54,411 copying src/kontra/preplan/__init__.py -> build/lib/kontra/preplan 2026-02-09T23:41:54,414 creating build/lib/kontra/state 2026-02-09T23:41:54,416 copying src/kontra/state/types.py -> build/lib/kontra/state 2026-02-09T23:41:54,421 copying src/kontra/state/__init__.py -> build/lib/kontra/state 2026-02-09T23:41:54,423 copying src/kontra/state/fingerprint.py -> build/lib/kontra/state 2026-02-09T23:41:54,427 creating build/lib/kontra/config 2026-02-09T23:41:54,429 copying src/kontra/config/models.py -> build/lib/kontra/config 2026-02-09T23:41:54,432 copying src/kontra/config/loader.py -> build/lib/kontra/config 2026-02-09T23:41:54,435 copying src/kontra/config/__init__.py -> build/lib/kontra/config 2026-02-09T23:41:54,438 copying src/kontra/config/settings.py -> build/lib/kontra/config 2026-02-09T23:41:54,442 creating build/lib/kontra/probes 2026-02-09T23:41:54,444 copying src/kontra/probes/compare.py -> build/lib/kontra/probes 2026-02-09T23:41:54,447 copying src/kontra/probes/__init__.py -> build/lib/kontra/probes 2026-02-09T23:41:54,450 copying src/kontra/probes/relationship.py -> build/lib/kontra/probes 2026-02-09T23:41:54,454 creating build/lib/kontra/reporters 2026-02-09T23:41:54,456 copying src/kontra/reporters/json_reporter.py -> build/lib/kontra/reporters 2026-02-09T23:41:54,459 copying src/kontra/reporters/rich_reporter.py -> build/lib/kontra/reporters 2026-02-09T23:41:54,462 copying src/kontra/reporters/__init__.py -> build/lib/kontra/reporters 2026-02-09T23:41:54,465 creating build/lib/kontra/rules 2026-02-09T23:41:54,467 copying src/kontra/rules/base.py -> build/lib/kontra/rules 2026-02-09T23:41:54,470 copying src/kontra/rules/factory.py -> build/lib/kontra/rules 2026-02-09T23:41:54,473 copying src/kontra/rules/condition_parser.py -> build/lib/kontra/rules 2026-02-09T23:41:54,476 copying src/kontra/rules/__init__.py -> build/lib/kontra/rules 2026-02-09T23:41:54,479 copying src/kontra/rules/registry.py -> build/lib/kontra/rules 2026-02-09T23:41:54,482 copying src/kontra/rules/static_predicates.py -> build/lib/kontra/rules 2026-02-09T23:41:54,485 copying src/kontra/rules/predicates.py -> build/lib/kontra/rules 2026-02-09T23:41:54,488 copying src/kontra/rules/execution_plan.py -> build/lib/kontra/rules 2026-02-09T23:41:54,492 creating build/lib/kontra/connectors 2026-02-09T23:41:54,494 copying src/kontra/connectors/detection.py -> build/lib/kontra/connectors 2026-02-09T23:41:54,498 copying src/kontra/connectors/sqlserver.py -> build/lib/kontra/connectors 2026-02-09T23:41:54,501 copying src/kontra/connectors/db_utils.py -> build/lib/kontra/connectors 2026-02-09T23:41:54,504 copying src/kontra/connectors/postgres.py -> build/lib/kontra/connectors 2026-02-09T23:41:54,507 copying src/kontra/connectors/__init__.py -> build/lib/kontra/connectors 2026-02-09T23:41:54,509 copying src/kontra/connectors/handle.py -> build/lib/kontra/connectors 2026-02-09T23:41:54,513 creating build/lib/kontra/cli/commands 2026-02-09T23:41:54,515 copying src/kontra/cli/commands/history.py -> build/lib/kontra/cli/commands 2026-02-09T23:41:54,518 copying src/kontra/cli/commands/config.py -> build/lib/kontra/cli/commands 2026-02-09T23:41:54,521 copying src/kontra/cli/commands/__init__.py -> build/lib/kontra/cli/commands 2026-02-09T23:41:54,524 copying src/kontra/cli/commands/diff.py -> build/lib/kontra/cli/commands 2026-02-09T23:41:54,528 copying src/kontra/cli/commands/validate.py -> build/lib/kontra/cli/commands 2026-02-09T23:41:54,531 copying src/kontra/cli/commands/profile.py -> build/lib/kontra/cli/commands 2026-02-09T23:41:54,535 creating build/lib/kontra/scout/backends 2026-02-09T23:41:54,537 copying src/kontra/scout/backends/base.py -> build/lib/kontra/scout/backends 2026-02-09T23:41:54,540 copying src/kontra/scout/backends/postgres_backend.py -> build/lib/kontra/scout/backends 2026-02-09T23:41:54,543 copying src/kontra/scout/backends/duckdb_backend.py -> build/lib/kontra/scout/backends 2026-02-09T23:41:54,547 copying src/kontra/scout/backends/__init__.py -> build/lib/kontra/scout/backends 2026-02-09T23:41:54,550 copying src/kontra/scout/backends/sqlserver_backend.py -> build/lib/kontra/scout/backends 2026-02-09T23:41:54,554 creating build/lib/kontra/scout/reporters 2026-02-09T23:41:54,556 copying src/kontra/scout/reporters/json_reporter.py -> build/lib/kontra/scout/reporters 2026-02-09T23:41:54,559 copying src/kontra/scout/reporters/markdown_reporter.py -> build/lib/kontra/scout/reporters 2026-02-09T23:41:54,562 copying src/kontra/scout/reporters/rich_reporter.py -> build/lib/kontra/scout/reporters 2026-02-09T23:41:54,565 copying src/kontra/scout/reporters/__init__.py -> build/lib/kontra/scout/reporters 2026-02-09T23:41:54,568 creating build/lib/kontra/engine/backends 2026-02-09T23:41:54,570 copying src/kontra/engine/backends/polars_backend.py -> build/lib/kontra/engine/backends 2026-02-09T23:41:54,573 copying src/kontra/engine/backends/duckdb_session.py -> build/lib/kontra/engine/backends 2026-02-09T23:41:54,577 copying src/kontra/engine/backends/duckdb_utils.py -> build/lib/kontra/engine/backends 2026-02-09T23:41:54,580 creating build/lib/kontra/engine/materializers 2026-02-09T23:41:54,582 copying src/kontra/engine/materializers/polars_connector.py -> build/lib/kontra/engine/materializers 2026-02-09T23:41:54,585 copying src/kontra/engine/materializers/base.py -> build/lib/kontra/engine/materializers 2026-02-09T23:41:54,588 copying src/kontra/engine/materializers/factory.py -> build/lib/kontra/engine/materializers 2026-02-09T23:41:54,591 copying src/kontra/engine/materializers/sqlserver.py -> build/lib/kontra/engine/materializers 2026-02-09T23:41:54,594 copying src/kontra/engine/materializers/postgres.py -> build/lib/kontra/engine/materializers 2026-02-09T23:41:54,597 copying src/kontra/engine/materializers/__init__.py -> build/lib/kontra/engine/materializers 2026-02-09T23:41:54,600 copying src/kontra/engine/materializers/registry.py -> build/lib/kontra/engine/materializers 2026-02-09T23:41:54,603 copying src/kontra/engine/materializers/duckdb.py -> build/lib/kontra/engine/materializers 2026-02-09T23:41:54,607 creating build/lib/kontra/engine/executors 2026-02-09T23:41:54,608 copying src/kontra/engine/executors/base.py -> build/lib/kontra/engine/executors 2026-02-09T23:41:54,612 copying src/kontra/engine/executors/duckdb_sql.py -> build/lib/kontra/engine/executors 2026-02-09T23:41:54,616 copying src/kontra/engine/executors/sqlserver_sql.py -> build/lib/kontra/engine/executors 2026-02-09T23:41:54,619 copying src/kontra/engine/executors/database_base.py -> build/lib/kontra/engine/executors 2026-02-09T23:41:54,622 copying src/kontra/engine/executors/postgres_sql.py -> build/lib/kontra/engine/executors 2026-02-09T23:41:54,625 copying src/kontra/engine/executors/__init__.py -> build/lib/kontra/engine/executors 2026-02-09T23:41:54,628 copying src/kontra/engine/executors/registry.py -> build/lib/kontra/engine/executors 2026-02-09T23:41:54,632 creating build/lib/kontra/state/backends 2026-02-09T23:41:54,633 copying src/kontra/state/backends/base.py -> build/lib/kontra/state/backends 2026-02-09T23:41:54,637 copying src/kontra/state/backends/local.py -> build/lib/kontra/state/backends 2026-02-09T23:41:54,640 copying src/kontra/state/backends/s3.py -> build/lib/kontra/state/backends 2026-02-09T23:41:54,643 copying src/kontra/state/backends/sqlserver.py -> build/lib/kontra/state/backends 2026-02-09T23:41:54,647 copying src/kontra/state/backends/postgres.py -> build/lib/kontra/state/backends 2026-02-09T23:41:54,651 copying src/kontra/state/backends/__init__.py -> build/lib/kontra/state/backends 2026-02-09T23:41:54,655 creating build/lib/kontra/rules/builtin 2026-02-09T23:41:54,657 copying src/kontra/rules/builtin/allowed_values.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,661 copying src/kontra/rules/builtin/min_rows.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,664 copying src/kontra/rules/builtin/compare.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,667 copying src/kontra/rules/builtin/freshness.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,670 copying src/kontra/rules/builtin/ends_with.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,673 copying src/kontra/rules/builtin/conditional_not_null.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,676 copying src/kontra/rules/builtin/max_rows.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,679 copying src/kontra/rules/builtin/dtype.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,682 copying src/kontra/rules/builtin/custom_sql_check.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,686 copying src/kontra/rules/builtin/length.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,689 copying src/kontra/rules/builtin/range.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,692 copying src/kontra/rules/builtin/__init__.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,695 copying src/kontra/rules/builtin/unique.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,698 copying src/kontra/rules/builtin/disallowed_values.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,701 copying src/kontra/rules/builtin/contains.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,704 copying src/kontra/rules/builtin/conditional_range.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,708 copying src/kontra/rules/builtin/regex.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,711 copying src/kontra/rules/builtin/starts_with.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,714 copying src/kontra/rules/builtin/not_null.py -> build/lib/kontra/rules/builtin 2026-02-09T23:41:54,717 running egg_info 2026-02-09T23:41:54,729 writing src/kontra.egg-info/PKG-INFO 2026-02-09T23:41:54,737 writing dependency_links to src/kontra.egg-info/dependency_links.txt 2026-02-09T23:41:54,739 writing entry points to src/kontra.egg-info/entry_points.txt 2026-02-09T23:41:54,743 writing requirements to src/kontra.egg-info/requires.txt 2026-02-09T23:41:54,745 writing top-level names to src/kontra.egg-info/top_level.txt 2026-02-09T23:41:54,783 reading manifest file 'src/kontra.egg-info/SOURCES.txt' 2026-02-09T23:41:54,794 adding license file 'LICENSE' 2026-02-09T23:41:54,804 writing manifest file 'src/kontra.egg-info/SOURCES.txt' 2026-02-09T23:41:54,843 installing to build/bdist.linux-armv7l/wheel 2026-02-09T23:41:54,844 running install 2026-02-09T23:41:54,869 running install_lib 2026-02-09T23:41:54,876 creating build/bdist.linux-armv7l/wheel 2026-02-09T23:41:54,879 creating build/bdist.linux-armv7l/wheel/kontra 2026-02-09T23:41:54,882 creating build/bdist.linux-armv7l/wheel/kontra/cli 2026-02-09T23:41:54,884 copying build/lib/kontra/cli/renderers.py -> build/bdist.linux-armv7l/wheel/./kontra/cli 2026-02-09T23:41:54,888 copying build/lib/kontra/cli/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/cli 2026-02-09T23:41:54,890 copying build/lib/kontra/cli/utils.py -> build/bdist.linux-armv7l/wheel/./kontra/cli 2026-02-09T23:41:54,893 copying build/lib/kontra/cli/main.py -> build/bdist.linux-armv7l/wheel/./kontra/cli 2026-02-09T23:41:54,896 creating build/bdist.linux-armv7l/wheel/kontra/cli/commands 2026-02-09T23:41:54,898 copying build/lib/kontra/cli/commands/history.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T23:41:54,901 copying build/lib/kontra/cli/commands/config.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T23:41:54,904 copying build/lib/kontra/cli/commands/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T23:41:54,907 copying build/lib/kontra/cli/commands/diff.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T23:41:54,911 copying build/lib/kontra/cli/commands/validate.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T23:41:54,914 copying build/lib/kontra/cli/commands/profile.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T23:41:54,918 copying build/lib/kontra/cli/constants.py -> build/bdist.linux-armv7l/wheel/./kontra/cli 2026-02-09T23:41:54,921 creating build/bdist.linux-armv7l/wheel/kontra/scout 2026-02-09T23:41:54,923 copying build/lib/kontra/scout/profiler.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T23:41:54,927 copying build/lib/kontra/scout/suggest.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T23:41:54,930 copying build/lib/kontra/scout/store.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T23:41:54,933 copying build/lib/kontra/scout/types.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T23:41:54,937 creating build/bdist.linux-armv7l/wheel/kontra/scout/backends 2026-02-09T23:41:54,939 copying build/lib/kontra/scout/backends/base.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/backends 2026-02-09T23:41:54,942 copying build/lib/kontra/scout/backends/postgres_backend.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/backends 2026-02-09T23:41:54,946 copying build/lib/kontra/scout/backends/duckdb_backend.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/backends 2026-02-09T23:41:54,949 copying build/lib/kontra/scout/backends/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/backends 2026-02-09T23:41:54,952 copying build/lib/kontra/scout/backends/sqlserver_backend.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/backends 2026-02-09T23:41:54,956 copying build/lib/kontra/scout/dtype_mapping.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T23:41:54,959 copying build/lib/kontra/scout/patterns.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T23:41:54,961 copying build/lib/kontra/scout/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T23:41:54,965 creating build/bdist.linux-armv7l/wheel/kontra/scout/reporters 2026-02-09T23:41:54,967 copying build/lib/kontra/scout/reporters/json_reporter.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/reporters 2026-02-09T23:41:54,970 copying build/lib/kontra/scout/reporters/markdown_reporter.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/reporters 2026-02-09T23:41:54,973 copying build/lib/kontra/scout/reporters/rich_reporter.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/reporters 2026-02-09T23:41:54,976 copying build/lib/kontra/scout/reporters/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/reporters 2026-02-09T23:41:54,980 creating build/bdist.linux-armv7l/wheel/kontra/engine 2026-02-09T23:41:54,982 copying build/lib/kontra/engine/result.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T23:41:54,985 copying build/lib/kontra/engine/types.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T23:41:54,988 creating build/bdist.linux-armv7l/wheel/kontra/engine/backends 2026-02-09T23:41:54,990 copying build/lib/kontra/engine/backends/polars_backend.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/backends 2026-02-09T23:41:54,993 copying build/lib/kontra/engine/backends/duckdb_session.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/backends 2026-02-09T23:41:54,996 copying build/lib/kontra/engine/backends/duckdb_utils.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/backends 2026-02-09T23:41:54,999 copying build/lib/kontra/engine/sql_utils.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T23:41:55,002 copying build/lib/kontra/engine/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T23:41:55,005 copying build/lib/kontra/engine/engine.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T23:41:55,009 copying build/lib/kontra/engine/stats.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T23:41:55,012 creating build/bdist.linux-armv7l/wheel/kontra/engine/materializers 2026-02-09T23:41:55,014 copying build/lib/kontra/engine/materializers/polars_connector.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T23:41:55,018 copying build/lib/kontra/engine/materializers/base.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T23:41:55,021 copying build/lib/kontra/engine/materializers/factory.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T23:41:55,024 copying build/lib/kontra/engine/materializers/sqlserver.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T23:41:55,028 copying build/lib/kontra/engine/materializers/postgres.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T23:41:55,032 copying build/lib/kontra/engine/materializers/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T23:41:55,036 copying build/lib/kontra/engine/materializers/registry.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T23:41:55,039 copying build/lib/kontra/engine/materializers/duckdb.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T23:41:55,042 copying build/lib/kontra/engine/sql_validator.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T23:41:55,047 creating build/bdist.linux-armv7l/wheel/kontra/engine/executors 2026-02-09T23:41:55,049 copying build/lib/kontra/engine/executors/base.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T23:41:55,051 copying build/lib/kontra/engine/executors/duckdb_sql.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T23:41:55,055 copying build/lib/kontra/engine/executors/sqlserver_sql.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T23:41:55,059 copying build/lib/kontra/engine/executors/database_base.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T23:41:55,064 copying build/lib/kontra/engine/executors/postgres_sql.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T23:41:55,067 copying build/lib/kontra/engine/executors/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T23:41:55,071 copying build/lib/kontra/engine/executors/registry.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T23:41:55,075 creating build/bdist.linux-armv7l/wheel/kontra/api 2026-02-09T23:41:55,077 copying build/lib/kontra/api/decorators.py -> build/bdist.linux-armv7l/wheel/./kontra/api 2026-02-09T23:41:55,081 copying build/lib/kontra/api/compare.py -> build/bdist.linux-armv7l/wheel/./kontra/api 2026-02-09T23:41:55,085 copying build/lib/kontra/api/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/api 2026-02-09T23:41:55,088 copying build/lib/kontra/api/results.py -> build/bdist.linux-armv7l/wheel/./kontra/api 2026-02-09T23:41:55,093 copying build/lib/kontra/api/rules.py -> build/bdist.linux-armv7l/wheel/./kontra/api 2026-02-09T23:41:55,099 creating build/bdist.linux-armv7l/wheel/kontra/preplan 2026-02-09T23:41:55,101 copying build/lib/kontra/preplan/types.py -> build/bdist.linux-armv7l/wheel/./kontra/preplan 2026-02-09T23:41:55,104 copying build/lib/kontra/preplan/planner.py -> build/bdist.linux-armv7l/wheel/./kontra/preplan 2026-02-09T23:41:55,108 copying build/lib/kontra/preplan/sqlserver.py -> build/bdist.linux-armv7l/wheel/./kontra/preplan 2026-02-09T23:41:55,111 copying build/lib/kontra/preplan/postgres.py -> build/bdist.linux-armv7l/wheel/./kontra/preplan 2026-02-09T23:41:55,114 copying build/lib/kontra/preplan/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/preplan 2026-02-09T23:41:55,117 creating build/bdist.linux-armv7l/wheel/kontra/state 2026-02-09T23:41:55,118 copying build/lib/kontra/state/types.py -> build/bdist.linux-armv7l/wheel/./kontra/state 2026-02-09T23:41:55,123 creating build/bdist.linux-armv7l/wheel/kontra/state/backends 2026-02-09T23:41:55,125 copying build/lib/kontra/state/backends/base.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T23:41:55,128 copying build/lib/kontra/state/backends/local.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T23:41:55,131 copying build/lib/kontra/state/backends/s3.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T23:41:55,135 copying build/lib/kontra/state/backends/sqlserver.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T23:41:55,139 copying build/lib/kontra/state/backends/postgres.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T23:41:55,143 copying build/lib/kontra/state/backends/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T23:41:55,146 copying build/lib/kontra/state/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/state 2026-02-09T23:41:55,149 copying build/lib/kontra/state/fingerprint.py -> build/bdist.linux-armv7l/wheel/./kontra/state 2026-02-09T23:41:55,153 creating build/bdist.linux-armv7l/wheel/kontra/config 2026-02-09T23:41:55,155 copying build/lib/kontra/config/models.py -> build/bdist.linux-armv7l/wheel/./kontra/config 2026-02-09T23:41:55,158 copying build/lib/kontra/config/loader.py -> build/bdist.linux-armv7l/wheel/./kontra/config 2026-02-09T23:41:55,161 copying build/lib/kontra/config/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/config 2026-02-09T23:41:55,164 copying build/lib/kontra/config/settings.py -> build/bdist.linux-armv7l/wheel/./kontra/config 2026-02-09T23:41:55,168 copying build/lib/kontra/version.py -> build/bdist.linux-armv7l/wheel/./kontra 2026-02-09T23:41:55,171 creating build/bdist.linux-armv7l/wheel/kontra/probes 2026-02-09T23:41:55,173 copying build/lib/kontra/probes/compare.py -> build/bdist.linux-armv7l/wheel/./kontra/probes 2026-02-09T23:41:55,177 copying build/lib/kontra/probes/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/probes 2026-02-09T23:41:55,179 copying build/lib/kontra/probes/relationship.py -> build/bdist.linux-armv7l/wheel/./kontra/probes 2026-02-09T23:41:55,183 copying build/lib/kontra/errors.py -> build/bdist.linux-armv7l/wheel/./kontra 2026-02-09T23:41:55,187 copying build/lib/kontra/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra 2026-02-09T23:41:55,192 copying build/lib/kontra/logging.py -> build/bdist.linux-armv7l/wheel/./kontra 2026-02-09T23:41:55,196 creating build/bdist.linux-armv7l/wheel/kontra/reporters 2026-02-09T23:41:55,198 copying build/lib/kontra/reporters/json_reporter.py -> build/bdist.linux-armv7l/wheel/./kontra/reporters 2026-02-09T23:41:55,201 copying build/lib/kontra/reporters/rich_reporter.py -> build/bdist.linux-armv7l/wheel/./kontra/reporters 2026-02-09T23:41:55,204 copying build/lib/kontra/reporters/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/reporters 2026-02-09T23:41:55,207 creating build/bdist.linux-armv7l/wheel/kontra/rules 2026-02-09T23:41:55,209 copying build/lib/kontra/rules/base.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T23:41:55,212 copying build/lib/kontra/rules/factory.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T23:41:55,216 copying build/lib/kontra/rules/condition_parser.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T23:41:55,219 copying build/lib/kontra/rules/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T23:41:55,222 copying build/lib/kontra/rules/registry.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T23:41:55,225 copying build/lib/kontra/rules/static_predicates.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T23:41:55,228 copying build/lib/kontra/rules/predicates.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T23:41:55,232 creating build/bdist.linux-armv7l/wheel/kontra/rules/builtin 2026-02-09T23:41:55,234 copying build/lib/kontra/rules/builtin/allowed_values.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,237 copying build/lib/kontra/rules/builtin/min_rows.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,240 copying build/lib/kontra/rules/builtin/compare.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,244 copying build/lib/kontra/rules/builtin/freshness.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,247 copying build/lib/kontra/rules/builtin/ends_with.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,250 copying build/lib/kontra/rules/builtin/conditional_not_null.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,254 copying build/lib/kontra/rules/builtin/max_rows.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,257 copying build/lib/kontra/rules/builtin/dtype.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,260 copying build/lib/kontra/rules/builtin/custom_sql_check.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,263 copying build/lib/kontra/rules/builtin/length.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,266 copying build/lib/kontra/rules/builtin/range.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,270 copying build/lib/kontra/rules/builtin/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,273 copying build/lib/kontra/rules/builtin/unique.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,276 copying build/lib/kontra/rules/builtin/disallowed_values.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,280 copying build/lib/kontra/rules/builtin/contains.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,283 copying build/lib/kontra/rules/builtin/conditional_range.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,287 copying build/lib/kontra/rules/builtin/regex.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,290 copying build/lib/kontra/rules/builtin/starts_with.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,293 copying build/lib/kontra/rules/builtin/not_null.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T23:41:55,296 copying build/lib/kontra/rules/execution_plan.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T23:41:55,301 creating build/bdist.linux-armv7l/wheel/kontra/connectors 2026-02-09T23:41:55,303 copying build/lib/kontra/connectors/detection.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T23:41:55,306 copying build/lib/kontra/connectors/sqlserver.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T23:41:55,310 copying build/lib/kontra/connectors/db_utils.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T23:41:55,313 copying build/lib/kontra/connectors/postgres.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T23:41:55,316 copying build/lib/kontra/connectors/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T23:41:55,318 copying build/lib/kontra/connectors/handle.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T23:41:55,321 running install_egg_info 2026-02-09T23:41:55,327 Copying src/kontra.egg-info to build/bdist.linux-armv7l/wheel/./kontra-0.5.3-py3.11.egg-info 2026-02-09T23:41:55,343 running install_scripts 2026-02-09T23:41:55,357 creating build/bdist.linux-armv7l/wheel/kontra-0.5.3.dist-info/WHEEL 2026-02-09T23:41:55,361 creating '/tmp/pip-wheel-iwsrrmiu/.tmp-f8gcech6/kontra-0.5.3-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2026-02-09T23:41:55,371 adding 'kontra/__init__.py' 2026-02-09T23:41:55,375 adding 'kontra/errors.py' 2026-02-09T23:41:55,378 adding 'kontra/logging.py' 2026-02-09T23:41:55,380 adding 'kontra/version.py' 2026-02-09T23:41:55,382 adding 'kontra/api/__init__.py' 2026-02-09T23:41:55,385 adding 'kontra/api/compare.py' 2026-02-09T23:41:55,388 adding 'kontra/api/decorators.py' 2026-02-09T23:41:55,399 adding 'kontra/api/results.py' 2026-02-09T23:41:55,403 adding 'kontra/api/rules.py' 2026-02-09T23:41:55,405 adding 'kontra/cli/__init__.py' 2026-02-09T23:41:55,407 adding 'kontra/cli/constants.py' 2026-02-09T23:41:55,409 adding 'kontra/cli/main.py' 2026-02-09T23:41:55,412 adding 'kontra/cli/renderers.py' 2026-02-09T23:41:55,414 adding 'kontra/cli/utils.py' 2026-02-09T23:41:55,416 adding 'kontra/cli/commands/__init__.py' 2026-02-09T23:41:55,419 adding 'kontra/cli/commands/config.py' 2026-02-09T23:41:55,422 adding 'kontra/cli/commands/diff.py' 2026-02-09T23:41:55,424 adding 'kontra/cli/commands/history.py' 2026-02-09T23:41:55,427 adding 'kontra/cli/commands/profile.py' 2026-02-09T23:41:55,430 adding 'kontra/cli/commands/validate.py' 2026-02-09T23:41:55,432 adding 'kontra/config/__init__.py' 2026-02-09T23:41:55,435 adding 'kontra/config/loader.py' 2026-02-09T23:41:55,437 adding 'kontra/config/models.py' 2026-02-09T23:41:55,441 adding 'kontra/config/settings.py' 2026-02-09T23:41:55,444 adding 'kontra/connectors/__init__.py' 2026-02-09T23:41:55,446 adding 'kontra/connectors/db_utils.py' 2026-02-09T23:41:55,449 adding 'kontra/connectors/detection.py' 2026-02-09T23:41:55,452 adding 'kontra/connectors/handle.py' 2026-02-09T23:41:55,454 adding 'kontra/connectors/postgres.py' 2026-02-09T23:41:55,457 adding 'kontra/connectors/sqlserver.py' 2026-02-09T23:41:55,460 adding 'kontra/engine/__init__.py' 2026-02-09T23:41:55,467 adding 'kontra/engine/engine.py' 2026-02-09T23:41:55,469 adding 'kontra/engine/result.py' 2026-02-09T23:41:55,472 adding 'kontra/engine/sql_utils.py' 2026-02-09T23:41:55,476 adding 'kontra/engine/sql_validator.py' 2026-02-09T23:41:55,479 adding 'kontra/engine/stats.py' 2026-02-09T23:41:55,481 adding 'kontra/engine/types.py' 2026-02-09T23:41:55,484 adding 'kontra/engine/backends/duckdb_session.py' 2026-02-09T23:41:55,486 adding 'kontra/engine/backends/duckdb_utils.py' 2026-02-09T23:41:55,488 adding 'kontra/engine/backends/polars_backend.py' 2026-02-09T23:41:55,490 adding 'kontra/engine/executors/__init__.py' 2026-02-09T23:41:55,492 adding 'kontra/engine/executors/base.py' 2026-02-09T23:41:55,496 adding 'kontra/engine/executors/database_base.py' 2026-02-09T23:41:55,499 adding 'kontra/engine/executors/duckdb_sql.py' 2026-02-09T23:41:55,502 adding 'kontra/engine/executors/postgres_sql.py' 2026-02-09T23:41:55,504 adding 'kontra/engine/executors/registry.py' 2026-02-09T23:41:55,506 adding 'kontra/engine/executors/sqlserver_sql.py' 2026-02-09T23:41:55,509 adding 'kontra/engine/materializers/__init__.py' 2026-02-09T23:41:55,511 adding 'kontra/engine/materializers/base.py' 2026-02-09T23:41:55,513 adding 'kontra/engine/materializers/duckdb.py' 2026-02-09T23:41:55,516 adding 'kontra/engine/materializers/factory.py' 2026-02-09T23:41:55,518 adding 'kontra/engine/materializers/polars_connector.py' 2026-02-09T23:41:55,521 adding 'kontra/engine/materializers/postgres.py' 2026-02-09T23:41:55,523 adding 'kontra/engine/materializers/registry.py' 2026-02-09T23:41:55,525 adding 'kontra/engine/materializers/sqlserver.py' 2026-02-09T23:41:55,528 adding 'kontra/preplan/__init__.py' 2026-02-09T23:41:55,530 adding 'kontra/preplan/planner.py' 2026-02-09T23:41:55,533 adding 'kontra/preplan/postgres.py' 2026-02-09T23:41:55,535 adding 'kontra/preplan/sqlserver.py' 2026-02-09T23:41:55,537 adding 'kontra/preplan/types.py' 2026-02-09T23:41:55,540 adding 'kontra/probes/__init__.py' 2026-02-09T23:41:55,543 adding 'kontra/probes/compare.py' 2026-02-09T23:41:55,545 adding 'kontra/probes/relationship.py' 2026-02-09T23:41:55,548 adding 'kontra/reporters/__init__.py' 2026-02-09T23:41:55,550 adding 'kontra/reporters/json_reporter.py' 2026-02-09T23:41:55,552 adding 'kontra/reporters/rich_reporter.py' 2026-02-09T23:41:55,555 adding 'kontra/rules/__init__.py' 2026-02-09T23:41:55,557 adding 'kontra/rules/base.py' 2026-02-09T23:41:55,560 adding 'kontra/rules/condition_parser.py' 2026-02-09T23:41:55,563 adding 'kontra/rules/execution_plan.py' 2026-02-09T23:41:55,565 adding 'kontra/rules/factory.py' 2026-02-09T23:41:55,567 adding 'kontra/rules/predicates.py' 2026-02-09T23:41:55,569 adding 'kontra/rules/registry.py' 2026-02-09T23:41:55,572 adding 'kontra/rules/static_predicates.py' 2026-02-09T23:41:55,574 adding 'kontra/rules/builtin/__init__.py' 2026-02-09T23:41:55,577 adding 'kontra/rules/builtin/allowed_values.py' 2026-02-09T23:41:55,579 adding 'kontra/rules/builtin/compare.py' 2026-02-09T23:41:55,582 adding 'kontra/rules/builtin/conditional_not_null.py' 2026-02-09T23:41:55,585 adding 'kontra/rules/builtin/conditional_range.py' 2026-02-09T23:41:55,587 adding 'kontra/rules/builtin/contains.py' 2026-02-09T23:41:55,590 adding 'kontra/rules/builtin/custom_sql_check.py' 2026-02-09T23:41:55,592 adding 'kontra/rules/builtin/disallowed_values.py' 2026-02-09T23:41:55,595 adding 'kontra/rules/builtin/dtype.py' 2026-02-09T23:41:55,597 adding 'kontra/rules/builtin/ends_with.py' 2026-02-09T23:41:55,600 adding 'kontra/rules/builtin/freshness.py' 2026-02-09T23:41:55,602 adding 'kontra/rules/builtin/length.py' 2026-02-09T23:41:55,605 adding 'kontra/rules/builtin/max_rows.py' 2026-02-09T23:41:55,607 adding 'kontra/rules/builtin/min_rows.py' 2026-02-09T23:41:55,609 adding 'kontra/rules/builtin/not_null.py' 2026-02-09T23:41:55,611 adding 'kontra/rules/builtin/range.py' 2026-02-09T23:41:55,614 adding 'kontra/rules/builtin/regex.py' 2026-02-09T23:41:55,616 adding 'kontra/rules/builtin/starts_with.py' 2026-02-09T23:41:55,618 adding 'kontra/rules/builtin/unique.py' 2026-02-09T23:41:55,621 adding 'kontra/scout/__init__.py' 2026-02-09T23:41:55,623 adding 'kontra/scout/dtype_mapping.py' 2026-02-09T23:41:55,625 adding 'kontra/scout/patterns.py' 2026-02-09T23:41:55,630 adding 'kontra/scout/profiler.py' 2026-02-09T23:41:55,632 adding 'kontra/scout/store.py' 2026-02-09T23:41:55,635 adding 'kontra/scout/suggest.py' 2026-02-09T23:41:55,639 adding 'kontra/scout/types.py' 2026-02-09T23:41:55,641 adding 'kontra/scout/backends/__init__.py' 2026-02-09T23:41:55,644 adding 'kontra/scout/backends/base.py' 2026-02-09T23:41:55,646 adding 'kontra/scout/backends/duckdb_backend.py' 2026-02-09T23:41:55,649 adding 'kontra/scout/backends/postgres_backend.py' 2026-02-09T23:41:55,653 adding 'kontra/scout/backends/sqlserver_backend.py' 2026-02-09T23:41:55,656 adding 'kontra/scout/reporters/__init__.py' 2026-02-09T23:41:55,658 adding 'kontra/scout/reporters/json_reporter.py' 2026-02-09T23:41:55,660 adding 'kontra/scout/reporters/markdown_reporter.py' 2026-02-09T23:41:55,663 adding 'kontra/scout/reporters/rich_reporter.py' 2026-02-09T23:41:55,666 adding 'kontra/state/__init__.py' 2026-02-09T23:41:55,668 adding 'kontra/state/fingerprint.py' 2026-02-09T23:41:55,674 adding 'kontra/state/types.py' 2026-02-09T23:41:55,677 adding 'kontra/state/backends/__init__.py' 2026-02-09T23:41:55,680 adding 'kontra/state/backends/base.py' 2026-02-09T23:41:55,683 adding 'kontra/state/backends/local.py' 2026-02-09T23:41:55,687 adding 'kontra/state/backends/postgres.py' 2026-02-09T23:41:55,691 adding 'kontra/state/backends/s3.py' 2026-02-09T23:41:55,695 adding 'kontra/state/backends/sqlserver.py' 2026-02-09T23:41:55,699 adding 'kontra-0.5.3.dist-info/licenses/LICENSE' 2026-02-09T23:41:55,701 adding 'kontra-0.5.3.dist-info/METADATA' 2026-02-09T23:41:55,703 adding 'kontra-0.5.3.dist-info/WHEEL' 2026-02-09T23:41:55,705 adding 'kontra-0.5.3.dist-info/entry_points.txt' 2026-02-09T23:41:55,707 adding 'kontra-0.5.3.dist-info/top_level.txt' 2026-02-09T23:41:55,710 adding 'kontra-0.5.3.dist-info/RECORD' 2026-02-09T23:41:55,720 removing build/bdist.linux-armv7l/wheel 2026-02-09T23:41:55,889 Building wheel for kontra (pyproject.toml): finished with status 'done' 2026-02-09T23:41:55,904 Created wheel for kontra: filename=kontra-0.5.3-py3-none-any.whl size=297638 sha256=3ef2f236a108202d8b8370f7e2a2d498aa9f71cfd06bc85bed546e30dcfab1ea 2026-02-09T23:41:55,905 Stored in directory: /tmp/pip-ephem-wheel-cache-cbpo6p98/wheels/9b/f4/fc/cc96592bba84f7e21f5ac65f79339056b1d8f6b735cc2d09c8 2026-02-09T23:41:55,923 Successfully built kontra 2026-02-09T23:41:55,939 Removed build tracker: '/tmp/pip-build-tracker-howwc_i2'