2026-02-09T22:25:38,999 Created temporary directory: /tmp/pip-ephem-wheel-cache-_1w79d2e 2026-02-09T22:25:39,001 Created temporary directory: /tmp/pip-build-tracker-yrzsv2na 2026-02-09T22:25:39,001 Initialized build tracking at /tmp/pip-build-tracker-yrzsv2na 2026-02-09T22:25:39,002 Created build tracker: /tmp/pip-build-tracker-yrzsv2na 2026-02-09T22:25:39,002 Entered build tracker: /tmp/pip-build-tracker-yrzsv2na 2026-02-09T22:25:39,003 Created temporary directory: /tmp/pip-wheel-biy1pk6y 2026-02-09T22:25:39,006 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-09T22:25:39,008 Created temporary directory: /tmp/pip-ephem-wheel-cache-s_k0wzyi 2026-02-09T22:25:39,030 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-02-09T22:25:39,033 2 location(s) to search for versions of kontra: 2026-02-09T22:25:39,033 * https://pypi.org/simple/kontra/ 2026-02-09T22:25:39,033 * https://www.piwheels.org/simple/kontra/ 2026-02-09T22:25:39,034 Fetching project page and analyzing links: https://pypi.org/simple/kontra/ 2026-02-09T22:25:39,035 Getting page https://pypi.org/simple/kontra/ 2026-02-09T22:25:39,036 Found index url https://pypi.org/simple 2026-02-09T22:25:39,248 Fetched page https://pypi.org/simple/kontra/ as application/vnd.pypi.simple.v1+json 2026-02-09T22:25:39,252 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-09T22:25:39,253 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-09T22:25:39,254 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-09T22:25:39,255 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-09T22:25:39,256 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-09T22:25:39,257 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-09T22:25:39,258 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-09T22:25:39,259 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-09T22:25:39,259 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-09T22:25:39,260 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-09T22:25:39,261 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-09T22:25:39,262 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-09T22:25:39,263 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-09T22:25:39,263 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-09T22:25:39,264 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-09T22:25:39,265 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-09T22:25:39,266 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-09T22:25:39,267 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-09T22:25:39,267 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-09T22:25:39,268 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-09T22:25:39,269 Fetching project page and analyzing links: https://www.piwheels.org/simple/kontra/ 2026-02-09T22:25:39,270 Getting page https://www.piwheels.org/simple/kontra/ 2026-02-09T22:25:39,271 Found index url https://www.piwheels.org/simple 2026-02-09T22:25:39,428 Fetched page https://www.piwheels.org/simple/kontra/ as text/html 2026-02-09T22:25:39,430 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-09T22:25:39,430 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-09T22:25:39,431 Skipping link: not a file: https://www.piwheels.org/simple/kontra/ 2026-02-09T22:25:39,431 Skipping link: not a file: https://pypi.org/simple/kontra/ 2026-02-09T22:25:39,451 Given no hashes to check 1 links for project 'kontra': discarding no candidates 2026-02-09T22:25:39,469 Collecting kontra==0.5.1 2026-02-09T22:25:39,472 Created temporary directory: /tmp/pip-unpack-qej170zh 2026-02-09T22:25:39,761 Downloading kontra-0.5.1.tar.gz (318 kB) 2026-02-09T22:25:40,208 Added kontra==0.5.1 from https://files.pythonhosted.org/packages/21/59/a06ad9ddc8852579c8bcf86ca17e1c981d6ab91efc26a2ba8e99ab135f3a/kontra-0.5.1.tar.gz to build tracker '/tmp/pip-build-tracker-yrzsv2na' 2026-02-09T22:25:40,214 Created temporary directory: /tmp/pip-build-env-da0oc1os 2026-02-09T22:25:40,218 Installing build dependencies: started 2026-02-09T22:25:40,219 Running command pip subprocess to install build dependencies 2026-02-09T22:25:41,335 Using pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11) 2026-02-09T22:25:41,938 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-09T22:25:41,960 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-02-09T22:25:43,664 Collecting setuptools>=69 2026-02-09T22:25:43,683 Using cached setuptools-82.0.0-py3-none-any.whl (1.0 MB) 2026-02-09T22:25:43,948 Collecting wheel 2026-02-09T22:25:43,964 Using cached https://www.piwheels.org/simple/wheel/wheel-0.46.3-py3-none-any.whl (30 kB) 2026-02-09T22:25:44,366 Collecting packaging>=24.0 2026-02-09T22:25:44,382 Using cached https://www.piwheels.org/simple/packaging/packaging-26.0-py3-none-any.whl (74 kB) 2026-02-09T22:25:47,383 Installing collected packages: setuptools, packaging, wheel 2026-02-09T22:25:50,715 Creating /tmp/pip-build-env-da0oc1os/overlay/local/bin 2026-02-09T22:25:50,717 changing mode of /tmp/pip-build-env-da0oc1os/overlay/local/bin/wheel to 755 2026-02-09T22:25:50,737 Successfully installed packaging-26.0 setuptools-82.0.0 wheel-0.46.3 2026-02-09T22:25:51,011 Installing build dependencies: finished with status 'done' 2026-02-09T22:25:51,017 Getting requirements to build wheel: started 2026-02-09T22:25:51,018 Running command Getting requirements to build wheel 2026-02-09T22:25:51,658 /tmp/pip-build-env-da0oc1os/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 2026-02-09T22:25:51,659 !! 2026-02-09T22:25:51,660 ******************************************************************************** 2026-02-09T22:25:51,660 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-09T22:25:51,662 By 2027-Feb-18, you need to update your project and remove deprecated calls 2026-02-09T22:25:51,662 or your builds will no longer be supported. 2026-02-09T22:25:51,663 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T22:25:51,664 ******************************************************************************** 2026-02-09T22:25:51,665 !! 2026-02-09T22:25:51,665 corresp(dist, value, root_dir) 2026-02-09T22:25:51,735 /tmp/pip-build-env-da0oc1os/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T22:25:51,735 !! 2026-02-09T22:25:51,737 ******************************************************************************** 2026-02-09T22:25:51,737 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T22:25:51,738 License :: OSI Approved :: Apache Software License 2026-02-09T22:25:51,740 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T22:25:51,740 ******************************************************************************** 2026-02-09T22:25:51,741 !! 2026-02-09T22:25:51,742 dist._finalize_license_expression() 2026-02-09T22:25:51,742 /tmp/pip-build-env-da0oc1os/overlay/local/lib/python3.11/dist-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T22:25:51,743 !! 2026-02-09T22:25:51,744 ******************************************************************************** 2026-02-09T22:25:51,744 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T22:25:51,745 License :: OSI Approved :: Apache Software License 2026-02-09T22:25:51,746 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T22:25:51,747 ******************************************************************************** 2026-02-09T22:25:51,747 !! 2026-02-09T22:25:51,748 self._finalize_license_expression() 2026-02-09T22:25:51,748 running egg_info 2026-02-09T22:25:51,750 writing src/kontra.egg-info/PKG-INFO 2026-02-09T22:25:51,756 writing dependency_links to src/kontra.egg-info/dependency_links.txt 2026-02-09T22:25:51,758 writing entry points to src/kontra.egg-info/entry_points.txt 2026-02-09T22:25:51,762 writing requirements to src/kontra.egg-info/requires.txt 2026-02-09T22:25:51,763 writing top-level names to src/kontra.egg-info/top_level.txt 2026-02-09T22:25:51,806 reading manifest file 'src/kontra.egg-info/SOURCES.txt' 2026-02-09T22:25:51,815 adding license file 'LICENSE' 2026-02-09T22:25:51,824 writing manifest file 'src/kontra.egg-info/SOURCES.txt' 2026-02-09T22:25:51,920 Getting requirements to build wheel: finished with status 'done' 2026-02-09T22:25:51,923 Created temporary directory: /tmp/pip-modern-metadata-006304cj 2026-02-09T22:25:51,926 Preparing metadata (pyproject.toml): started 2026-02-09T22:25:51,927 Running command Preparing metadata (pyproject.toml) 2026-02-09T22:25:52,485 /tmp/pip-build-env-da0oc1os/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 2026-02-09T22:25:52,485 !! 2026-02-09T22:25:52,486 ******************************************************************************** 2026-02-09T22:25:52,487 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-09T22:25:52,488 By 2027-Feb-18, you need to update your project and remove deprecated calls 2026-02-09T22:25:52,489 or your builds will no longer be supported. 2026-02-09T22:25:52,490 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T22:25:52,491 ******************************************************************************** 2026-02-09T22:25:52,492 !! 2026-02-09T22:25:52,492 corresp(dist, value, root_dir) 2026-02-09T22:25:52,560 /tmp/pip-build-env-da0oc1os/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T22:25:52,560 !! 2026-02-09T22:25:52,561 ******************************************************************************** 2026-02-09T22:25:52,562 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T22:25:52,563 License :: OSI Approved :: Apache Software License 2026-02-09T22:25:52,564 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T22:25:52,565 ******************************************************************************** 2026-02-09T22:25:52,566 !! 2026-02-09T22:25:52,567 dist._finalize_license_expression() 2026-02-09T22:25:52,568 /tmp/pip-build-env-da0oc1os/overlay/local/lib/python3.11/dist-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T22:25:52,568 !! 2026-02-09T22:25:52,570 ******************************************************************************** 2026-02-09T22:25:52,570 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T22:25:52,571 License :: OSI Approved :: Apache Software License 2026-02-09T22:25:52,572 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T22:25:52,572 ******************************************************************************** 2026-02-09T22:25:52,573 !! 2026-02-09T22:25:52,574 self._finalize_license_expression() 2026-02-09T22:25:52,574 running dist_info 2026-02-09T22:25:52,582 creating /tmp/pip-modern-metadata-006304cj/kontra.egg-info 2026-02-09T22:25:52,583 writing /tmp/pip-modern-metadata-006304cj/kontra.egg-info/PKG-INFO 2026-02-09T22:25:52,589 writing dependency_links to /tmp/pip-modern-metadata-006304cj/kontra.egg-info/dependency_links.txt 2026-02-09T22:25:52,590 writing entry points to /tmp/pip-modern-metadata-006304cj/kontra.egg-info/entry_points.txt 2026-02-09T22:25:52,594 writing requirements to /tmp/pip-modern-metadata-006304cj/kontra.egg-info/requires.txt 2026-02-09T22:25:52,595 writing top-level names to /tmp/pip-modern-metadata-006304cj/kontra.egg-info/top_level.txt 2026-02-09T22:25:52,596 writing manifest file '/tmp/pip-modern-metadata-006304cj/kontra.egg-info/SOURCES.txt' 2026-02-09T22:25:52,634 reading manifest file '/tmp/pip-modern-metadata-006304cj/kontra.egg-info/SOURCES.txt' 2026-02-09T22:25:52,636 adding license file 'LICENSE' 2026-02-09T22:25:52,643 writing manifest file '/tmp/pip-modern-metadata-006304cj/kontra.egg-info/SOURCES.txt' 2026-02-09T22:25:52,644 creating '/tmp/pip-modern-metadata-006304cj/kontra-0.5.1.dist-info' 2026-02-09T22:25:52,771 Preparing metadata (pyproject.toml): finished with status 'done' 2026-02-09T22:25:52,775 Source in /tmp/pip-wheel-biy1pk6y/kontra_44fe47ea3397465b9cc3e99cc764eabf has version 0.5.1, which satisfies requirement kontra==0.5.1 from https://files.pythonhosted.org/packages/21/59/a06ad9ddc8852579c8bcf86ca17e1c981d6ab91efc26a2ba8e99ab135f3a/kontra-0.5.1.tar.gz 2026-02-09T22:25:52,776 Removed kontra==0.5.1 from https://files.pythonhosted.org/packages/21/59/a06ad9ddc8852579c8bcf86ca17e1c981d6ab91efc26a2ba8e99ab135f3a/kontra-0.5.1.tar.gz from build tracker '/tmp/pip-build-tracker-yrzsv2na' 2026-02-09T22:25:52,782 Created temporary directory: /tmp/pip-unpack-6kdv12pm 2026-02-09T22:25:52,782 Building wheels for collected packages: kontra 2026-02-09T22:25:52,787 Created temporary directory: /tmp/pip-wheel-qgcnttaz 2026-02-09T22:25:52,787 Destination directory: /tmp/pip-wheel-qgcnttaz 2026-02-09T22:25:52,789 Building wheel for kontra (pyproject.toml): started 2026-02-09T22:25:52,790 Running command Building wheel for kontra (pyproject.toml) 2026-02-09T22:25:53,342 /tmp/pip-build-env-da0oc1os/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 2026-02-09T22:25:53,343 !! 2026-02-09T22:25:53,344 ******************************************************************************** 2026-02-09T22:25:53,344 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-09T22:25:53,345 By 2027-Feb-18, you need to update your project and remove deprecated calls 2026-02-09T22:25:53,346 or your builds will no longer be supported. 2026-02-09T22:25:53,347 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T22:25:53,348 ******************************************************************************** 2026-02-09T22:25:53,349 !! 2026-02-09T22:25:53,349 corresp(dist, value, root_dir) 2026-02-09T22:25:53,414 /tmp/pip-build-env-da0oc1os/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T22:25:53,415 !! 2026-02-09T22:25:53,415 ******************************************************************************** 2026-02-09T22:25:53,416 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T22:25:53,417 License :: OSI Approved :: Apache Software License 2026-02-09T22:25:53,418 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T22:25:53,419 ******************************************************************************** 2026-02-09T22:25:53,420 !! 2026-02-09T22:25:53,420 dist._finalize_license_expression() 2026-02-09T22:25:53,421 /tmp/pip-build-env-da0oc1os/overlay/local/lib/python3.11/dist-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T22:25:53,421 !! 2026-02-09T22:25:53,423 ******************************************************************************** 2026-02-09T22:25:53,423 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T22:25:53,424 License :: OSI Approved :: Apache Software License 2026-02-09T22:25:53,425 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T22:25:53,426 ******************************************************************************** 2026-02-09T22:25:53,427 !! 2026-02-09T22:25:53,428 self._finalize_license_expression() 2026-02-09T22:25:53,428 running bdist_wheel 2026-02-09T22:25:53,441 running build 2026-02-09T22:25:53,442 running build_py 2026-02-09T22:25:53,448 creating build/lib/kontra 2026-02-09T22:25:53,450 copying src/kontra/logging.py -> build/lib/kontra 2026-02-09T22:25:53,453 copying src/kontra/__init__.py -> build/lib/kontra 2026-02-09T22:25:53,457 copying src/kontra/version.py -> build/lib/kontra 2026-02-09T22:25:53,460 copying src/kontra/errors.py -> build/lib/kontra 2026-02-09T22:25:53,463 creating build/lib/kontra/engine 2026-02-09T22:25:53,464 copying src/kontra/engine/sql_utils.py -> build/lib/kontra/engine 2026-02-09T22:25:53,467 copying src/kontra/engine/types.py -> build/lib/kontra/engine 2026-02-09T22:25:53,470 copying src/kontra/engine/engine.py -> build/lib/kontra/engine 2026-02-09T22:25:53,474 copying src/kontra/engine/__init__.py -> build/lib/kontra/engine 2026-02-09T22:25:53,476 copying src/kontra/engine/result.py -> build/lib/kontra/engine 2026-02-09T22:25:53,478 copying src/kontra/engine/stats.py -> build/lib/kontra/engine 2026-02-09T22:25:53,481 copying src/kontra/engine/sql_validator.py -> build/lib/kontra/engine 2026-02-09T22:25:53,484 creating build/lib/kontra/connectors 2026-02-09T22:25:53,485 copying src/kontra/connectors/detection.py -> build/lib/kontra/connectors 2026-02-09T22:25:53,488 copying src/kontra/connectors/postgres.py -> build/lib/kontra/connectors 2026-02-09T22:25:53,490 copying src/kontra/connectors/__init__.py -> build/lib/kontra/connectors 2026-02-09T22:25:53,492 copying src/kontra/connectors/db_utils.py -> build/lib/kontra/connectors 2026-02-09T22:25:53,495 copying src/kontra/connectors/sqlserver.py -> build/lib/kontra/connectors 2026-02-09T22:25:53,497 copying src/kontra/connectors/handle.py -> build/lib/kontra/connectors 2026-02-09T22:25:53,501 creating build/lib/kontra/scout 2026-02-09T22:25:53,502 copying src/kontra/scout/profiler.py -> build/lib/kontra/scout 2026-02-09T22:25:53,505 copying src/kontra/scout/types.py -> build/lib/kontra/scout 2026-02-09T22:25:53,509 copying src/kontra/scout/patterns.py -> build/lib/kontra/scout 2026-02-09T22:25:53,511 copying src/kontra/scout/__init__.py -> build/lib/kontra/scout 2026-02-09T22:25:53,514 copying src/kontra/scout/dtype_mapping.py -> build/lib/kontra/scout 2026-02-09T22:25:53,516 copying src/kontra/scout/suggest.py -> build/lib/kontra/scout 2026-02-09T22:25:53,519 copying src/kontra/scout/store.py -> build/lib/kontra/scout 2026-02-09T22:25:53,522 creating build/lib/kontra/reporters 2026-02-09T22:25:53,524 copying src/kontra/reporters/rich_reporter.py -> build/lib/kontra/reporters 2026-02-09T22:25:53,526 copying src/kontra/reporters/__init__.py -> build/lib/kontra/reporters 2026-02-09T22:25:53,528 copying src/kontra/reporters/json_reporter.py -> build/lib/kontra/reporters 2026-02-09T22:25:53,531 creating build/lib/kontra/preplan 2026-02-09T22:25:53,533 copying src/kontra/preplan/types.py -> build/lib/kontra/preplan 2026-02-09T22:25:53,535 copying src/kontra/preplan/postgres.py -> build/lib/kontra/preplan 2026-02-09T22:25:53,537 copying src/kontra/preplan/__init__.py -> build/lib/kontra/preplan 2026-02-09T22:25:53,540 copying src/kontra/preplan/planner.py -> build/lib/kontra/preplan 2026-02-09T22:25:53,542 copying src/kontra/preplan/sqlserver.py -> build/lib/kontra/preplan 2026-02-09T22:25:53,545 creating build/lib/kontra/state 2026-02-09T22:25:53,546 copying src/kontra/state/types.py -> build/lib/kontra/state 2026-02-09T22:25:53,549 copying src/kontra/state/__init__.py -> build/lib/kontra/state 2026-02-09T22:25:53,551 copying src/kontra/state/fingerprint.py -> build/lib/kontra/state 2026-02-09T22:25:53,554 creating build/lib/kontra/cli 2026-02-09T22:25:53,554 copying src/kontra/cli/renderers.py -> build/lib/kontra/cli 2026-02-09T22:25:53,557 copying src/kontra/cli/utils.py -> build/lib/kontra/cli 2026-02-09T22:25:53,558 copying src/kontra/cli/__init__.py -> build/lib/kontra/cli 2026-02-09T22:25:53,560 copying src/kontra/cli/main.py -> build/lib/kontra/cli 2026-02-09T22:25:53,562 copying src/kontra/cli/constants.py -> build/lib/kontra/cli 2026-02-09T22:25:53,564 creating build/lib/kontra/config 2026-02-09T22:25:53,565 copying src/kontra/config/models.py -> build/lib/kontra/config 2026-02-09T22:25:53,567 copying src/kontra/config/__init__.py -> build/lib/kontra/config 2026-02-09T22:25:53,569 copying src/kontra/config/loader.py -> build/lib/kontra/config 2026-02-09T22:25:53,571 copying src/kontra/config/settings.py -> build/lib/kontra/config 2026-02-09T22:25:53,574 creating build/lib/kontra/rules 2026-02-09T22:25:53,575 copying src/kontra/rules/factory.py -> build/lib/kontra/rules 2026-02-09T22:25:53,577 copying src/kontra/rules/static_predicates.py -> build/lib/kontra/rules 2026-02-09T22:25:53,579 copying src/kontra/rules/__init__.py -> build/lib/kontra/rules 2026-02-09T22:25:53,581 copying src/kontra/rules/predicates.py -> build/lib/kontra/rules 2026-02-09T22:25:53,582 copying src/kontra/rules/base.py -> build/lib/kontra/rules 2026-02-09T22:25:53,585 copying src/kontra/rules/execution_plan.py -> build/lib/kontra/rules 2026-02-09T22:25:53,587 copying src/kontra/rules/registry.py -> build/lib/kontra/rules 2026-02-09T22:25:53,589 copying src/kontra/rules/condition_parser.py -> build/lib/kontra/rules 2026-02-09T22:25:53,591 creating build/lib/kontra/probes 2026-02-09T22:25:53,592 copying src/kontra/probes/relationship.py -> build/lib/kontra/probes 2026-02-09T22:25:53,595 copying src/kontra/probes/__init__.py -> build/lib/kontra/probes 2026-02-09T22:25:53,597 copying src/kontra/probes/compare.py -> build/lib/kontra/probes 2026-02-09T22:25:53,599 creating build/lib/kontra/api 2026-02-09T22:25:53,600 copying src/kontra/api/decorators.py -> build/lib/kontra/api 2026-02-09T22:25:53,603 copying src/kontra/api/rules.py -> build/lib/kontra/api 2026-02-09T22:25:53,605 copying src/kontra/api/__init__.py -> build/lib/kontra/api 2026-02-09T22:25:53,607 copying src/kontra/api/results.py -> build/lib/kontra/api 2026-02-09T22:25:53,610 copying src/kontra/api/compare.py -> build/lib/kontra/api 2026-02-09T22:25:53,613 creating build/lib/kontra/engine/executors 2026-02-09T22:25:53,614 copying src/kontra/engine/executors/sqlserver_sql.py -> build/lib/kontra/engine/executors 2026-02-09T22:25:53,616 copying src/kontra/engine/executors/__init__.py -> build/lib/kontra/engine/executors 2026-02-09T22:25:53,618 copying src/kontra/engine/executors/base.py -> build/lib/kontra/engine/executors 2026-02-09T22:25:53,620 copying src/kontra/engine/executors/duckdb_sql.py -> build/lib/kontra/engine/executors 2026-02-09T22:25:53,622 copying src/kontra/engine/executors/registry.py -> build/lib/kontra/engine/executors 2026-02-09T22:25:53,624 copying src/kontra/engine/executors/postgres_sql.py -> build/lib/kontra/engine/executors 2026-02-09T22:25:53,626 copying src/kontra/engine/executors/database_base.py -> build/lib/kontra/engine/executors 2026-02-09T22:25:53,629 creating build/lib/kontra/engine/materializers 2026-02-09T22:25:53,630 copying src/kontra/engine/materializers/factory.py -> build/lib/kontra/engine/materializers 2026-02-09T22:25:53,632 copying src/kontra/engine/materializers/postgres.py -> build/lib/kontra/engine/materializers 2026-02-09T22:25:53,634 copying src/kontra/engine/materializers/__init__.py -> build/lib/kontra/engine/materializers 2026-02-09T22:25:53,635 copying src/kontra/engine/materializers/base.py -> build/lib/kontra/engine/materializers 2026-02-09T22:25:53,637 copying src/kontra/engine/materializers/sqlserver.py -> build/lib/kontra/engine/materializers 2026-02-09T22:25:53,639 copying src/kontra/engine/materializers/registry.py -> build/lib/kontra/engine/materializers 2026-02-09T22:25:53,641 copying src/kontra/engine/materializers/duckdb.py -> build/lib/kontra/engine/materializers 2026-02-09T22:25:53,643 copying src/kontra/engine/materializers/polars_connector.py -> build/lib/kontra/engine/materializers 2026-02-09T22:25:53,646 creating build/lib/kontra/engine/backends 2026-02-09T22:25:53,647 copying src/kontra/engine/backends/polars_backend.py -> build/lib/kontra/engine/backends 2026-02-09T22:25:53,649 copying src/kontra/engine/backends/duckdb_session.py -> build/lib/kontra/engine/backends 2026-02-09T22:25:53,651 copying src/kontra/engine/backends/duckdb_utils.py -> build/lib/kontra/engine/backends 2026-02-09T22:25:53,653 creating build/lib/kontra/scout/reporters 2026-02-09T22:25:53,654 copying src/kontra/scout/reporters/rich_reporter.py -> build/lib/kontra/scout/reporters 2026-02-09T22:25:53,657 copying src/kontra/scout/reporters/__init__.py -> build/lib/kontra/scout/reporters 2026-02-09T22:25:53,658 copying src/kontra/scout/reporters/markdown_reporter.py -> build/lib/kontra/scout/reporters 2026-02-09T22:25:53,661 copying src/kontra/scout/reporters/json_reporter.py -> build/lib/kontra/scout/reporters 2026-02-09T22:25:53,663 creating build/lib/kontra/scout/backends 2026-02-09T22:25:53,664 copying src/kontra/scout/backends/sqlserver_backend.py -> build/lib/kontra/scout/backends 2026-02-09T22:25:53,667 copying src/kontra/scout/backends/postgres_backend.py -> build/lib/kontra/scout/backends 2026-02-09T22:25:53,670 copying src/kontra/scout/backends/__init__.py -> build/lib/kontra/scout/backends 2026-02-09T22:25:53,672 copying src/kontra/scout/backends/base.py -> build/lib/kontra/scout/backends 2026-02-09T22:25:53,673 copying src/kontra/scout/backends/duckdb_backend.py -> build/lib/kontra/scout/backends 2026-02-09T22:25:53,677 creating build/lib/kontra/state/backends 2026-02-09T22:25:53,678 copying src/kontra/state/backends/postgres.py -> build/lib/kontra/state/backends 2026-02-09T22:25:53,681 copying src/kontra/state/backends/__init__.py -> build/lib/kontra/state/backends 2026-02-09T22:25:53,683 copying src/kontra/state/backends/base.py -> build/lib/kontra/state/backends 2026-02-09T22:25:53,685 copying src/kontra/state/backends/sqlserver.py -> build/lib/kontra/state/backends 2026-02-09T22:25:53,688 copying src/kontra/state/backends/local.py -> build/lib/kontra/state/backends 2026-02-09T22:25:53,691 copying src/kontra/state/backends/s3.py -> build/lib/kontra/state/backends 2026-02-09T22:25:53,694 creating build/lib/kontra/cli/commands 2026-02-09T22:25:53,695 copying src/kontra/cli/commands/history.py -> build/lib/kontra/cli/commands 2026-02-09T22:25:53,698 copying src/kontra/cli/commands/config.py -> build/lib/kontra/cli/commands 2026-02-09T22:25:53,700 copying src/kontra/cli/commands/__init__.py -> build/lib/kontra/cli/commands 2026-02-09T22:25:53,702 copying src/kontra/cli/commands/validate.py -> build/lib/kontra/cli/commands 2026-02-09T22:25:53,704 copying src/kontra/cli/commands/profile.py -> build/lib/kontra/cli/commands 2026-02-09T22:25:53,706 copying src/kontra/cli/commands/diff.py -> build/lib/kontra/cli/commands 2026-02-09T22:25:53,709 creating build/lib/kontra/rules/builtin 2026-02-09T22:25:53,710 copying src/kontra/rules/builtin/unique.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,712 copying src/kontra/rules/builtin/dtype.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,714 copying src/kontra/rules/builtin/range.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,716 copying src/kontra/rules/builtin/allowed_values.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,719 copying src/kontra/rules/builtin/regex.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,721 copying src/kontra/rules/builtin/__init__.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,722 copying src/kontra/rules/builtin/custom_sql_check.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,724 copying src/kontra/rules/builtin/conditional_range.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,726 copying src/kontra/rules/builtin/freshness.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,728 copying src/kontra/rules/builtin/max_rows.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,730 copying src/kontra/rules/builtin/conditional_not_null.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,732 copying src/kontra/rules/builtin/compare.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,734 copying src/kontra/rules/builtin/not_null.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,736 copying src/kontra/rules/builtin/min_rows.py -> build/lib/kontra/rules/builtin 2026-02-09T22:25:53,738 running egg_info 2026-02-09T22:25:53,748 writing src/kontra.egg-info/PKG-INFO 2026-02-09T22:25:53,753 writing dependency_links to src/kontra.egg-info/dependency_links.txt 2026-02-09T22:25:53,755 writing entry points to src/kontra.egg-info/entry_points.txt 2026-02-09T22:25:53,758 writing requirements to src/kontra.egg-info/requires.txt 2026-02-09T22:25:53,759 writing top-level names to src/kontra.egg-info/top_level.txt 2026-02-09T22:25:53,787 reading manifest file 'src/kontra.egg-info/SOURCES.txt' 2026-02-09T22:25:53,797 adding license file 'LICENSE' 2026-02-09T22:25:53,805 writing manifest file 'src/kontra.egg-info/SOURCES.txt' 2026-02-09T22:25:53,836 installing to build/bdist.linux-armv7l/wheel 2026-02-09T22:25:53,837 running install 2026-02-09T22:25:53,861 running install_lib 2026-02-09T22:25:53,867 creating build/bdist.linux-armv7l/wheel 2026-02-09T22:25:53,869 creating build/bdist.linux-armv7l/wheel/kontra 2026-02-09T22:25:53,870 creating build/bdist.linux-armv7l/wheel/kontra/engine 2026-02-09T22:25:53,871 copying build/lib/kontra/engine/sql_utils.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T22:25:53,875 creating build/bdist.linux-armv7l/wheel/kontra/engine/executors 2026-02-09T22:25:53,876 copying build/lib/kontra/engine/executors/sqlserver_sql.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T22:25:53,878 copying build/lib/kontra/engine/executors/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T22:25:53,880 copying build/lib/kontra/engine/executors/base.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T22:25:53,882 copying build/lib/kontra/engine/executors/duckdb_sql.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T22:25:53,884 copying build/lib/kontra/engine/executors/registry.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T22:25:53,886 copying build/lib/kontra/engine/executors/postgres_sql.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T22:25:53,889 copying build/lib/kontra/engine/executors/database_base.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/executors 2026-02-09T22:25:53,891 copying build/lib/kontra/engine/types.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T22:25:53,893 copying build/lib/kontra/engine/engine.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T22:25:53,896 copying build/lib/kontra/engine/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T22:25:53,898 creating build/bdist.linux-armv7l/wheel/kontra/engine/materializers 2026-02-09T22:25:53,899 copying build/lib/kontra/engine/materializers/factory.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T22:25:53,901 copying build/lib/kontra/engine/materializers/postgres.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T22:25:53,903 copying build/lib/kontra/engine/materializers/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T22:25:53,905 copying build/lib/kontra/engine/materializers/base.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T22:25:53,906 copying build/lib/kontra/engine/materializers/sqlserver.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T22:25:53,909 copying build/lib/kontra/engine/materializers/registry.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T22:25:53,911 copying build/lib/kontra/engine/materializers/duckdb.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T22:25:53,913 copying build/lib/kontra/engine/materializers/polars_connector.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/materializers 2026-02-09T22:25:53,915 creating build/bdist.linux-armv7l/wheel/kontra/engine/backends 2026-02-09T22:25:53,916 copying build/lib/kontra/engine/backends/polars_backend.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/backends 2026-02-09T22:25:53,918 copying build/lib/kontra/engine/backends/duckdb_session.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/backends 2026-02-09T22:25:53,920 copying build/lib/kontra/engine/backends/duckdb_utils.py -> build/bdist.linux-armv7l/wheel/./kontra/engine/backends 2026-02-09T22:25:53,922 copying build/lib/kontra/engine/result.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T22:25:53,924 copying build/lib/kontra/engine/stats.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T22:25:53,926 copying build/lib/kontra/engine/sql_validator.py -> build/bdist.linux-armv7l/wheel/./kontra/engine 2026-02-09T22:25:53,929 creating build/bdist.linux-armv7l/wheel/kontra/connectors 2026-02-09T22:25:53,929 copying build/lib/kontra/connectors/detection.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T22:25:53,932 copying build/lib/kontra/connectors/postgres.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T22:25:53,934 copying build/lib/kontra/connectors/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T22:25:53,935 copying build/lib/kontra/connectors/db_utils.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T22:25:53,937 copying build/lib/kontra/connectors/sqlserver.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T22:25:53,939 copying build/lib/kontra/connectors/handle.py -> build/bdist.linux-armv7l/wheel/./kontra/connectors 2026-02-09T22:25:53,942 copying build/lib/kontra/logging.py -> build/bdist.linux-armv7l/wheel/./kontra 2026-02-09T22:25:53,944 copying build/lib/kontra/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra 2026-02-09T22:25:53,948 creating build/bdist.linux-armv7l/wheel/kontra/scout 2026-02-09T22:25:53,949 copying build/lib/kontra/scout/profiler.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T22:25:53,952 copying build/lib/kontra/scout/types.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T22:25:53,955 copying build/lib/kontra/scout/patterns.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T22:25:53,957 copying build/lib/kontra/scout/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T22:25:53,958 copying build/lib/kontra/scout/dtype_mapping.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T22:25:53,960 copying build/lib/kontra/scout/suggest.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T22:25:53,963 creating build/bdist.linux-armv7l/wheel/kontra/scout/reporters 2026-02-09T22:25:53,964 copying build/lib/kontra/scout/reporters/rich_reporter.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/reporters 2026-02-09T22:25:53,966 copying build/lib/kontra/scout/reporters/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/reporters 2026-02-09T22:25:53,967 copying build/lib/kontra/scout/reporters/markdown_reporter.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/reporters 2026-02-09T22:25:53,969 copying build/lib/kontra/scout/reporters/json_reporter.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/reporters 2026-02-09T22:25:53,972 creating build/bdist.linux-armv7l/wheel/kontra/scout/backends 2026-02-09T22:25:53,973 copying build/lib/kontra/scout/backends/sqlserver_backend.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/backends 2026-02-09T22:25:53,975 copying build/lib/kontra/scout/backends/postgres_backend.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/backends 2026-02-09T22:25:53,978 copying build/lib/kontra/scout/backends/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/backends 2026-02-09T22:25:53,979 copying build/lib/kontra/scout/backends/base.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/backends 2026-02-09T22:25:53,981 copying build/lib/kontra/scout/backends/duckdb_backend.py -> build/bdist.linux-armv7l/wheel/./kontra/scout/backends 2026-02-09T22:25:53,983 copying build/lib/kontra/scout/store.py -> build/bdist.linux-armv7l/wheel/./kontra/scout 2026-02-09T22:25:53,986 creating build/bdist.linux-armv7l/wheel/kontra/reporters 2026-02-09T22:25:53,987 copying build/lib/kontra/reporters/rich_reporter.py -> build/bdist.linux-armv7l/wheel/./kontra/reporters 2026-02-09T22:25:53,989 copying build/lib/kontra/reporters/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/reporters 2026-02-09T22:25:53,991 copying build/lib/kontra/reporters/json_reporter.py -> build/bdist.linux-armv7l/wheel/./kontra/reporters 2026-02-09T22:25:53,993 creating build/bdist.linux-armv7l/wheel/kontra/preplan 2026-02-09T22:25:53,994 copying build/lib/kontra/preplan/types.py -> build/bdist.linux-armv7l/wheel/./kontra/preplan 2026-02-09T22:25:53,996 copying build/lib/kontra/preplan/postgres.py -> build/bdist.linux-armv7l/wheel/./kontra/preplan 2026-02-09T22:25:53,999 copying build/lib/kontra/preplan/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/preplan 2026-02-09T22:25:54,000 copying build/lib/kontra/preplan/planner.py -> build/bdist.linux-armv7l/wheel/./kontra/preplan 2026-02-09T22:25:54,002 copying build/lib/kontra/preplan/sqlserver.py -> build/bdist.linux-armv7l/wheel/./kontra/preplan 2026-02-09T22:25:54,005 copying build/lib/kontra/version.py -> build/bdist.linux-armv7l/wheel/./kontra 2026-02-09T22:25:54,007 creating build/bdist.linux-armv7l/wheel/kontra/state 2026-02-09T22:25:54,008 copying build/lib/kontra/state/types.py -> build/bdist.linux-armv7l/wheel/./kontra/state 2026-02-09T22:25:54,010 copying build/lib/kontra/state/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/state 2026-02-09T22:25:54,013 creating build/bdist.linux-armv7l/wheel/kontra/state/backends 2026-02-09T22:25:54,014 copying build/lib/kontra/state/backends/postgres.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T22:25:54,016 copying build/lib/kontra/state/backends/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T22:25:54,018 copying build/lib/kontra/state/backends/base.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T22:25:54,020 copying build/lib/kontra/state/backends/sqlserver.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T22:25:54,023 copying build/lib/kontra/state/backends/local.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T22:25:54,025 copying build/lib/kontra/state/backends/s3.py -> build/bdist.linux-armv7l/wheel/./kontra/state/backends 2026-02-09T22:25:54,028 copying build/lib/kontra/state/fingerprint.py -> build/bdist.linux-armv7l/wheel/./kontra/state 2026-02-09T22:25:54,030 creating build/bdist.linux-armv7l/wheel/kontra/cli 2026-02-09T22:25:54,031 copying build/lib/kontra/cli/renderers.py -> build/bdist.linux-armv7l/wheel/./kontra/cli 2026-02-09T22:25:54,034 copying build/lib/kontra/cli/utils.py -> build/bdist.linux-armv7l/wheel/./kontra/cli 2026-02-09T22:25:54,035 copying build/lib/kontra/cli/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/cli 2026-02-09T22:25:54,037 copying build/lib/kontra/cli/main.py -> build/bdist.linux-armv7l/wheel/./kontra/cli 2026-02-09T22:25:54,039 creating build/bdist.linux-armv7l/wheel/kontra/cli/commands 2026-02-09T22:25:54,040 copying build/lib/kontra/cli/commands/history.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T22:25:54,042 copying build/lib/kontra/cli/commands/config.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T22:25:54,044 copying build/lib/kontra/cli/commands/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T22:25:54,046 copying build/lib/kontra/cli/commands/validate.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T22:25:54,048 copying build/lib/kontra/cli/commands/profile.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T22:25:54,050 copying build/lib/kontra/cli/commands/diff.py -> build/bdist.linux-armv7l/wheel/./kontra/cli/commands 2026-02-09T22:25:54,053 copying build/lib/kontra/cli/constants.py -> build/bdist.linux-armv7l/wheel/./kontra/cli 2026-02-09T22:25:54,055 creating build/bdist.linux-armv7l/wheel/kontra/config 2026-02-09T22:25:54,056 copying build/lib/kontra/config/models.py -> build/bdist.linux-armv7l/wheel/./kontra/config 2026-02-09T22:25:54,058 copying build/lib/kontra/config/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/config 2026-02-09T22:25:54,060 copying build/lib/kontra/config/loader.py -> build/bdist.linux-armv7l/wheel/./kontra/config 2026-02-09T22:25:54,062 copying build/lib/kontra/config/settings.py -> build/bdist.linux-armv7l/wheel/./kontra/config 2026-02-09T22:25:54,066 creating build/bdist.linux-armv7l/wheel/kontra/rules 2026-02-09T22:25:54,067 copying build/lib/kontra/rules/factory.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T22:25:54,069 copying build/lib/kontra/rules/static_predicates.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T22:25:54,071 copying build/lib/kontra/rules/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T22:25:54,073 copying build/lib/kontra/rules/predicates.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T22:25:54,074 copying build/lib/kontra/rules/base.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T22:25:54,077 copying build/lib/kontra/rules/execution_plan.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T22:25:54,080 creating build/bdist.linux-armv7l/wheel/kontra/rules/builtin 2026-02-09T22:25:54,081 copying build/lib/kontra/rules/builtin/unique.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,083 copying build/lib/kontra/rules/builtin/dtype.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,085 copying build/lib/kontra/rules/builtin/range.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,087 copying build/lib/kontra/rules/builtin/allowed_values.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,090 copying build/lib/kontra/rules/builtin/regex.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,092 copying build/lib/kontra/rules/builtin/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,094 copying build/lib/kontra/rules/builtin/custom_sql_check.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,096 copying build/lib/kontra/rules/builtin/conditional_range.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,099 copying build/lib/kontra/rules/builtin/freshness.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,101 copying build/lib/kontra/rules/builtin/max_rows.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,102 copying build/lib/kontra/rules/builtin/conditional_not_null.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,104 copying build/lib/kontra/rules/builtin/compare.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,107 copying build/lib/kontra/rules/builtin/not_null.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,109 copying build/lib/kontra/rules/builtin/min_rows.py -> build/bdist.linux-armv7l/wheel/./kontra/rules/builtin 2026-02-09T22:25:54,110 copying build/lib/kontra/rules/registry.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T22:25:54,112 copying build/lib/kontra/rules/condition_parser.py -> build/bdist.linux-armv7l/wheel/./kontra/rules 2026-02-09T22:25:54,115 creating build/bdist.linux-armv7l/wheel/kontra/probes 2026-02-09T22:25:54,116 copying build/lib/kontra/probes/relationship.py -> build/bdist.linux-armv7l/wheel/./kontra/probes 2026-02-09T22:25:54,118 copying build/lib/kontra/probes/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/probes 2026-02-09T22:25:54,120 copying build/lib/kontra/probes/compare.py -> build/bdist.linux-armv7l/wheel/./kontra/probes 2026-02-09T22:25:54,123 creating build/bdist.linux-armv7l/wheel/kontra/api 2026-02-09T22:25:54,124 copying build/lib/kontra/api/decorators.py -> build/bdist.linux-armv7l/wheel/./kontra/api 2026-02-09T22:25:54,126 copying build/lib/kontra/api/rules.py -> build/bdist.linux-armv7l/wheel/./kontra/api 2026-02-09T22:25:54,129 copying build/lib/kontra/api/__init__.py -> build/bdist.linux-armv7l/wheel/./kontra/api 2026-02-09T22:25:54,130 copying build/lib/kontra/api/results.py -> build/bdist.linux-armv7l/wheel/./kontra/api 2026-02-09T22:25:54,134 copying build/lib/kontra/api/compare.py -> build/bdist.linux-armv7l/wheel/./kontra/api 2026-02-09T22:25:54,137 copying build/lib/kontra/errors.py -> build/bdist.linux-armv7l/wheel/./kontra 2026-02-09T22:25:54,139 running install_egg_info 2026-02-09T22:25:54,144 Copying src/kontra.egg-info to build/bdist.linux-armv7l/wheel/./kontra-0.5.1-py3.11.egg-info 2026-02-09T22:25:54,156 running install_scripts 2026-02-09T22:25:54,166 creating build/bdist.linux-armv7l/wheel/kontra-0.5.1.dist-info/WHEEL 2026-02-09T22:25:54,169 creating '/tmp/pip-wheel-qgcnttaz/.tmp-1i05vg2w/kontra-0.5.1-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2026-02-09T22:25:54,178 adding 'kontra/__init__.py' 2026-02-09T22:25:54,181 adding 'kontra/errors.py' 2026-02-09T22:25:54,182 adding 'kontra/logging.py' 2026-02-09T22:25:54,183 adding 'kontra/version.py' 2026-02-09T22:25:54,185 adding 'kontra/api/__init__.py' 2026-02-09T22:25:54,187 adding 'kontra/api/compare.py' 2026-02-09T22:25:54,189 adding 'kontra/api/decorators.py' 2026-02-09T22:25:54,197 adding 'kontra/api/results.py' 2026-02-09T22:25:54,200 adding 'kontra/api/rules.py' 2026-02-09T22:25:54,201 adding 'kontra/cli/__init__.py' 2026-02-09T22:25:54,202 adding 'kontra/cli/constants.py' 2026-02-09T22:25:54,204 adding 'kontra/cli/main.py' 2026-02-09T22:25:54,206 adding 'kontra/cli/renderers.py' 2026-02-09T22:25:54,207 adding 'kontra/cli/utils.py' 2026-02-09T22:25:54,208 adding 'kontra/cli/commands/__init__.py' 2026-02-09T22:25:54,210 adding 'kontra/cli/commands/config.py' 2026-02-09T22:25:54,212 adding 'kontra/cli/commands/diff.py' 2026-02-09T22:25:54,214 adding 'kontra/cli/commands/history.py' 2026-02-09T22:25:54,215 adding 'kontra/cli/commands/profile.py' 2026-02-09T22:25:54,218 adding 'kontra/cli/commands/validate.py' 2026-02-09T22:25:54,219 adding 'kontra/config/__init__.py' 2026-02-09T22:25:54,221 adding 'kontra/config/loader.py' 2026-02-09T22:25:54,222 adding 'kontra/config/models.py' 2026-02-09T22:25:54,226 adding 'kontra/config/settings.py' 2026-02-09T22:25:54,228 adding 'kontra/connectors/__init__.py' 2026-02-09T22:25:54,229 adding 'kontra/connectors/db_utils.py' 2026-02-09T22:25:54,231 adding 'kontra/connectors/detection.py' 2026-02-09T22:25:54,233 adding 'kontra/connectors/handle.py' 2026-02-09T22:25:54,235 adding 'kontra/connectors/postgres.py' 2026-02-09T22:25:54,236 adding 'kontra/connectors/sqlserver.py' 2026-02-09T22:25:54,238 adding 'kontra/engine/__init__.py' 2026-02-09T22:25:54,243 adding 'kontra/engine/engine.py' 2026-02-09T22:25:54,245 adding 'kontra/engine/result.py' 2026-02-09T22:25:54,247 adding 'kontra/engine/sql_utils.py' 2026-02-09T22:25:54,249 adding 'kontra/engine/sql_validator.py' 2026-02-09T22:25:54,251 adding 'kontra/engine/stats.py' 2026-02-09T22:25:54,252 adding 'kontra/engine/types.py' 2026-02-09T22:25:54,255 adding 'kontra/engine/backends/duckdb_session.py' 2026-02-09T22:25:54,256 adding 'kontra/engine/backends/duckdb_utils.py' 2026-02-09T22:25:54,257 adding 'kontra/engine/backends/polars_backend.py' 2026-02-09T22:25:54,259 adding 'kontra/engine/executors/__init__.py' 2026-02-09T22:25:54,260 adding 'kontra/engine/executors/base.py' 2026-02-09T22:25:54,262 adding 'kontra/engine/executors/database_base.py' 2026-02-09T22:25:54,265 adding 'kontra/engine/executors/duckdb_sql.py' 2026-02-09T22:25:54,266 adding 'kontra/engine/executors/postgres_sql.py' 2026-02-09T22:25:54,268 adding 'kontra/engine/executors/registry.py' 2026-02-09T22:25:54,269 adding 'kontra/engine/executors/sqlserver_sql.py' 2026-02-09T22:25:54,271 adding 'kontra/engine/materializers/__init__.py' 2026-02-09T22:25:54,272 adding 'kontra/engine/materializers/base.py' 2026-02-09T22:25:54,274 adding 'kontra/engine/materializers/duckdb.py' 2026-02-09T22:25:54,275 adding 'kontra/engine/materializers/factory.py' 2026-02-09T22:25:54,276 adding 'kontra/engine/materializers/polars_connector.py' 2026-02-09T22:25:54,278 adding 'kontra/engine/materializers/postgres.py' 2026-02-09T22:25:54,279 adding 'kontra/engine/materializers/registry.py' 2026-02-09T22:25:54,281 adding 'kontra/engine/materializers/sqlserver.py' 2026-02-09T22:25:54,283 adding 'kontra/preplan/__init__.py' 2026-02-09T22:25:54,285 adding 'kontra/preplan/planner.py' 2026-02-09T22:25:54,286 adding 'kontra/preplan/postgres.py' 2026-02-09T22:25:54,288 adding 'kontra/preplan/sqlserver.py' 2026-02-09T22:25:54,289 adding 'kontra/preplan/types.py' 2026-02-09T22:25:54,291 adding 'kontra/probes/__init__.py' 2026-02-09T22:25:54,293 adding 'kontra/probes/compare.py' 2026-02-09T22:25:54,295 adding 'kontra/probes/relationship.py' 2026-02-09T22:25:54,297 adding 'kontra/reporters/__init__.py' 2026-02-09T22:25:54,298 adding 'kontra/reporters/json_reporter.py' 2026-02-09T22:25:54,299 adding 'kontra/reporters/rich_reporter.py' 2026-02-09T22:25:54,301 adding 'kontra/rules/__init__.py' 2026-02-09T22:25:54,303 adding 'kontra/rules/base.py' 2026-02-09T22:25:54,304 adding 'kontra/rules/condition_parser.py' 2026-02-09T22:25:54,307 adding 'kontra/rules/execution_plan.py' 2026-02-09T22:25:54,308 adding 'kontra/rules/factory.py' 2026-02-09T22:25:54,310 adding 'kontra/rules/predicates.py' 2026-02-09T22:25:54,311 adding 'kontra/rules/registry.py' 2026-02-09T22:25:54,312 adding 'kontra/rules/static_predicates.py' 2026-02-09T22:25:54,314 adding 'kontra/rules/builtin/__init__.py' 2026-02-09T22:25:54,316 adding 'kontra/rules/builtin/allowed_values.py' 2026-02-09T22:25:54,317 adding 'kontra/rules/builtin/compare.py' 2026-02-09T22:25:54,319 adding 'kontra/rules/builtin/conditional_not_null.py' 2026-02-09T22:25:54,321 adding 'kontra/rules/builtin/conditional_range.py' 2026-02-09T22:25:54,322 adding 'kontra/rules/builtin/custom_sql_check.py' 2026-02-09T22:25:54,324 adding 'kontra/rules/builtin/dtype.py' 2026-02-09T22:25:54,326 adding 'kontra/rules/builtin/freshness.py' 2026-02-09T22:25:54,327 adding 'kontra/rules/builtin/max_rows.py' 2026-02-09T22:25:54,328 adding 'kontra/rules/builtin/min_rows.py' 2026-02-09T22:25:54,329 adding 'kontra/rules/builtin/not_null.py' 2026-02-09T22:25:54,331 adding 'kontra/rules/builtin/range.py' 2026-02-09T22:25:54,332 adding 'kontra/rules/builtin/regex.py' 2026-02-09T22:25:54,333 adding 'kontra/rules/builtin/unique.py' 2026-02-09T22:25:54,335 adding 'kontra/scout/__init__.py' 2026-02-09T22:25:54,336 adding 'kontra/scout/dtype_mapping.py' 2026-02-09T22:25:54,338 adding 'kontra/scout/patterns.py' 2026-02-09T22:25:54,341 adding 'kontra/scout/profiler.py' 2026-02-09T22:25:54,343 adding 'kontra/scout/store.py' 2026-02-09T22:25:54,344 adding 'kontra/scout/suggest.py' 2026-02-09T22:25:54,347 adding 'kontra/scout/types.py' 2026-02-09T22:25:54,349 adding 'kontra/scout/backends/__init__.py' 2026-02-09T22:25:54,350 adding 'kontra/scout/backends/base.py' 2026-02-09T22:25:54,352 adding 'kontra/scout/backends/duckdb_backend.py' 2026-02-09T22:25:54,355 adding 'kontra/scout/backends/postgres_backend.py' 2026-02-09T22:25:54,357 adding 'kontra/scout/backends/sqlserver_backend.py' 2026-02-09T22:25:54,359 adding 'kontra/scout/reporters/__init__.py' 2026-02-09T22:25:54,360 adding 'kontra/scout/reporters/json_reporter.py' 2026-02-09T22:25:54,362 adding 'kontra/scout/reporters/markdown_reporter.py' 2026-02-09T22:25:54,363 adding 'kontra/scout/reporters/rich_reporter.py' 2026-02-09T22:25:54,365 adding 'kontra/state/__init__.py' 2026-02-09T22:25:54,367 adding 'kontra/state/fingerprint.py' 2026-02-09T22:25:54,371 adding 'kontra/state/types.py' 2026-02-09T22:25:54,373 adding 'kontra/state/backends/__init__.py' 2026-02-09T22:25:54,375 adding 'kontra/state/backends/base.py' 2026-02-09T22:25:54,377 adding 'kontra/state/backends/local.py' 2026-02-09T22:25:54,380 adding 'kontra/state/backends/postgres.py' 2026-02-09T22:25:54,383 adding 'kontra/state/backends/s3.py' 2026-02-09T22:25:54,386 adding 'kontra/state/backends/sqlserver.py' 2026-02-09T22:25:54,389 adding 'kontra-0.5.1.dist-info/licenses/LICENSE' 2026-02-09T22:25:54,390 adding 'kontra-0.5.1.dist-info/METADATA' 2026-02-09T22:25:54,391 adding 'kontra-0.5.1.dist-info/WHEEL' 2026-02-09T22:25:54,392 adding 'kontra-0.5.1.dist-info/entry_points.txt' 2026-02-09T22:25:54,393 adding 'kontra-0.5.1.dist-info/top_level.txt' 2026-02-09T22:25:54,395 adding 'kontra-0.5.1.dist-info/RECORD' 2026-02-09T22:25:54,400 removing build/bdist.linux-armv7l/wheel 2026-02-09T22:25:54,527 Building wheel for kontra (pyproject.toml): finished with status 'done' 2026-02-09T22:25:54,536 Created wheel for kontra: filename=kontra-0.5.1-py3-none-any.whl size=281637 sha256=6b47019a1fccf8a03aaf5d61d983ea150a3a4c81365f7439bcc8f06a8722ffb2 2026-02-09T22:25:54,538 Stored in directory: /tmp/pip-ephem-wheel-cache-s_k0wzyi/wheels/6a/34/8b/d7e22e1bd1b6f813847549c6df0469d8f549da0818aa366222 2026-02-09T22:25:54,552 Successfully built kontra 2026-02-09T22:25:54,562 Removed build tracker: '/tmp/pip-build-tracker-yrzsv2na'