2026-08-06T00:46:52,918 Created temporary directory: /tmp/pip-ephem-wheel-cache-67fv44pk 2026-08-06T00:46:52,920 Created temporary directory: /tmp/pip-build-tracker-apxu9a1e 2026-08-06T00:46:52,920 Initialized build tracking at /tmp/pip-build-tracker-apxu9a1e 2026-08-06T00:46:52,921 Created build tracker: /tmp/pip-build-tracker-apxu9a1e 2026-08-06T00:46:52,921 Entered build tracker: /tmp/pip-build-tracker-apxu9a1e 2026-08-06T00:46:52,922 Created temporary directory: /tmp/pip-wheel-j21piie6 2026-08-06T00:46:52,925 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-08-06T00:46:52,928 Created temporary directory: /tmp/pip-ephem-wheel-cache-hdzv6zbs 2026-08-06T00:46:52,950 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-08-06T00:46:52,953 2 location(s) to search for versions of tinkerscope: 2026-08-06T00:46:52,953 * https://pypi.org/simple/tinkerscope/ 2026-08-06T00:46:52,953 * https://www.piwheels.org/simple/tinkerscope/ 2026-08-06T00:46:52,954 Fetching project page and analyzing links: https://pypi.org/simple/tinkerscope/ 2026-08-06T00:46:52,955 Getting page https://pypi.org/simple/tinkerscope/ 2026-08-06T00:46:52,956 Found index url https://pypi.org/simple 2026-08-06T00:46:53,185 Fetched page https://pypi.org/simple/tinkerscope/ as application/vnd.pypi.simple.v1+json 2026-08-06T00:46:53,187 Skipping link: No binaries permitted for tinkerscope: https://files.pythonhosted.org/packages/bf/23/bf5119b31b434afc62ef4c6dae31d2484e4faabd231c306a8daba7ba7c19/tinkerscope-1.0.0-py3-none-any.whl (from https://pypi.org/simple/tinkerscope/) (requires-python:>=3.11) 2026-08-06T00:46:53,188 Found link https://files.pythonhosted.org/packages/84/ed/5f75c33014a32d19f69fefe6766941c564efd8636ffc6c93389bbc52780e/tinkerscope-1.0.0.tar.gz (from https://pypi.org/simple/tinkerscope/) (requires-python:>=3.11), version: 1.0.0 2026-08-06T00:46:53,189 Fetching project page and analyzing links: https://www.piwheels.org/simple/tinkerscope/ 2026-08-06T00:46:53,190 Getting page https://www.piwheels.org/simple/tinkerscope/ 2026-08-06T00:46:53,191 Found index url https://www.piwheels.org/simple 2026-08-06T00:46:53,408 Fetched page https://www.piwheels.org/simple/tinkerscope/ as text/html 2026-08-06T00:46:53,409 Skipping link: not a file: https://www.piwheels.org/simple/tinkerscope/ 2026-08-06T00:46:53,410 Skipping link: not a file: https://pypi.org/simple/tinkerscope/ 2026-08-06T00:46:53,430 Given no hashes to check 1 links for project 'tinkerscope': discarding no candidates 2026-08-06T00:46:53,449 Collecting tinkerscope==1.0.0 2026-08-06T00:46:53,452 Created temporary directory: /tmp/pip-unpack-xgiyp39o 2026-08-06T00:46:53,604 Downloading tinkerscope-1.0.0.tar.gz (441 kB) 2026-08-06T00:46:54,019 Added tinkerscope==1.0.0 from https://files.pythonhosted.org/packages/84/ed/5f75c33014a32d19f69fefe6766941c564efd8636ffc6c93389bbc52780e/tinkerscope-1.0.0.tar.gz to build tracker '/tmp/pip-build-tracker-apxu9a1e' 2026-08-06T00:46:54,025 Created temporary directory: /tmp/pip-build-env-ec2yjouz 2026-08-06T00:46:54,029 Installing build dependencies: started 2026-08-06T00:46:54,031 Running command pip subprocess to install build dependencies 2026-08-06T00:46:55,173 Using pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11) 2026-08-06T00:46:56,059 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-08-06T00:46:56,082 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-08-06T00:46:56,656 Collecting hatchling 2026-08-06T00:46:56,657 Obtaining dependency information for hatchling from https://www.piwheels.org/simple/hatchling/hatchling-1.31.0-py3-none-any.whl.metadata 2026-08-06T00:46:56,671 Using cached https://www.piwheels.org/simple/hatchling/hatchling-1.31.0-py3-none-any.whl.metadata (3.8 kB) 2026-08-06T00:46:56,866 Collecting packaging>=24.2 2026-08-06T00:46:56,868 Obtaining dependency information for packaging>=24.2 from https://www.piwheels.org/simple/packaging/packaging-26.3-py3-none-any.whl.metadata 2026-08-06T00:46:56,882 Using cached https://www.piwheels.org/simple/packaging/packaging-26.3-py3-none-any.whl.metadata (3.6 kB) 2026-08-06T00:46:57,005 Collecting pathspec>=0.10.1 2026-08-06T00:46:57,006 Obtaining dependency information for pathspec>=0.10.1 from https://www.piwheels.org/simple/pathspec/pathspec-1.1.1-py3-none-any.whl.metadata 2026-08-06T00:46:57,021 Using cached https://www.piwheels.org/simple/pathspec/pathspec-1.1.1-py3-none-any.whl.metadata (14 kB) 2026-08-06T00:46:57,147 Collecting pluggy>=1.0.0 2026-08-06T00:46:57,148 Obtaining dependency information for pluggy>=1.0.0 from https://www.piwheels.org/simple/pluggy/pluggy-1.6.0-py3-none-any.whl.metadata 2026-08-06T00:46:57,162 Using cached https://www.piwheels.org/simple/pluggy/pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) 2026-08-06T00:46:57,419 Collecting trove-classifiers 2026-08-06T00:46:57,421 Obtaining dependency information for trove-classifiers from https://www.piwheels.org/simple/trove-classifiers/trove_classifiers-2026.6.1.19-py3-none-any.whl.metadata 2026-08-06T00:46:57,434 Using cached https://www.piwheels.org/simple/trove-classifiers/trove_classifiers-2026.6.1.19-py3-none-any.whl.metadata (2.3 kB) 2026-08-06T00:46:57,494 Using cached https://www.piwheels.org/simple/hatchling/hatchling-1.31.0-py3-none-any.whl (77 kB) 2026-08-06T00:46:57,515 Using cached https://www.piwheels.org/simple/packaging/packaging-26.3-py3-none-any.whl (129 kB) 2026-08-06T00:46:57,538 Using cached https://www.piwheels.org/simple/pathspec/pathspec-1.1.1-py3-none-any.whl (57 kB) 2026-08-06T00:46:57,557 Using cached https://www.piwheels.org/simple/pluggy/pluggy-1.6.0-py3-none-any.whl (20 kB) 2026-08-06T00:46:57,574 Using cached https://www.piwheels.org/simple/trove-classifiers/trove_classifiers-2026.6.1.19-py3-none-any.whl (14 kB) 2026-08-06T00:46:57,592 Using cached https://www.piwheels.org/simple/hatchling/hatchling-1.31.0-py3-none-any.whl (77 kB) 2026-08-06T00:46:57,622 Using cached https://www.piwheels.org/simple/packaging/packaging-26.3-py3-none-any.whl (129 kB) 2026-08-06T00:46:57,647 Using cached https://www.piwheels.org/simple/pathspec/pathspec-1.1.1-py3-none-any.whl (57 kB) 2026-08-06T00:46:57,670 Using cached https://www.piwheels.org/simple/pluggy/pluggy-1.6.0-py3-none-any.whl (20 kB) 2026-08-06T00:46:57,693 Using cached https://www.piwheels.org/simple/trove-classifiers/trove_classifiers-2026.6.1.19-py3-none-any.whl (14 kB) 2026-08-06T00:47:00,294 Installing collected packages: trove-classifiers, pluggy, pathspec, packaging, hatchling 2026-08-06T00:47:00,332 Creating /tmp/pip-build-env-ec2yjouz/overlay/local/bin 2026-08-06T00:47:00,335 changing mode of /tmp/pip-build-env-ec2yjouz/overlay/local/bin/trove-classifiers to 755 2026-08-06T00:47:01,408 changing mode of /tmp/pip-build-env-ec2yjouz/overlay/local/bin/hatchling to 755 2026-08-06T00:47:01,445 Successfully installed hatchling-1.31.0 packaging-26.3 pathspec-1.1.1 pluggy-1.6.0 trove-classifiers-2026.6.1.19 2026-08-06T00:47:01,707 Installing build dependencies: finished with status 'done' 2026-08-06T00:47:01,713 Getting requirements to build wheel: started 2026-08-06T00:47:01,714 Running command Getting requirements to build wheel 2026-08-06T00:47:02,100 Getting requirements to build wheel: finished with status 'done' 2026-08-06T00:47:02,103 Created temporary directory: /tmp/pip-modern-metadata-ih65e4r9 2026-08-06T00:47:02,106 Preparing metadata (pyproject.toml): started 2026-08-06T00:47:02,107 Running command Preparing metadata (pyproject.toml) 2026-08-06T00:47:02,559 Traceback (most recent call last): 2026-08-06T00:47:02,559 File "/usr/lib/python3/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in 2026-08-06T00:47:02,559 main() 2026-08-06T00:47:02,560 File "/usr/lib/python3/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main 2026-08-06T00:47:02,560 json_out['return_val'] = hook(**hook_input['kwargs']) 2026-08-06T00:47:02,561 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,561 File "/usr/lib/python3/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 152, in prepare_metadata_for_build_wheel 2026-08-06T00:47:02,562 whl_basename = backend.build_wheel(metadata_directory, config_settings) 2026-08-06T00:47:02,563 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,563 File "/tmp/pip-build-env-ec2yjouz/overlay/local/lib/python3.11/dist-packages/hatchling/build.py", line 58, in build_wheel 2026-08-06T00:47:02,564 return os.path.basename(next(builder.build(directory=wheel_directory, versions=["standard"]))) 2026-08-06T00:47:02,565 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,566 File "/tmp/pip-build-env-ec2yjouz/overlay/local/lib/python3.11/dist-packages/hatchling/builders/plugin/interface.py", line 149, in build 2026-08-06T00:47:02,566 build_hook.initialize(version, build_data) 2026-08-06T00:47:02,567 File "/tmp/pip-wheel-j21piie6/tinkerscope_0e422536b0b94ccba5521a6c0b37ab44/hatch_build.py", line 51, in initialize 2026-08-06T00:47:02,568 raise RuntimeError( 2026-08-06T00:47:02,569 RuntimeError: npm is required to build the tinkerscope wheel (it compiles the web UI). Install node, or set TINKERSCOPE_SKIP_WEB_BUILD=1 to reuse a previous build. 2026-08-06T00:47:02,618 ERROR: [present-rich] Preparing metadata (pyproject.toml) exited with 1 2026-08-06T00:47:02,631 [bold magenta]full command[/]: [blue]/usr/bin/python3 /usr/lib/python3/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py prepare_metadata_for_build_wheel /tmp/tmpxrlpxc2l[/] 2026-08-06T00:47:02,631 [bold magenta]cwd[/]: /tmp/pip-wheel-j21piie6/tinkerscope_0e422536b0b94ccba5521a6c0b37ab44 2026-08-06T00:47:02,632 Preparing metadata (pyproject.toml): finished with status 'error' 2026-08-06T00:47:02,634 ERROR: [present-rich] metadata generation failed 2026-08-06T00:47:02,640 Exception information: 2026-08-06T00:47:02,640 Traceback (most recent call last): 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata.py", line 35, in generate_metadata 2026-08-06T00:47:02,640 distinfo_dir = backend.prepare_metadata_for_build_wheel(metadata_dir) 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/utils/misc.py", line 746, in prepare_metadata_for_build_wheel 2026-08-06T00:47:02,640 return super().prepare_metadata_for_build_wheel( 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_vendor/pyproject_hooks/_impl.py", line 186, in prepare_metadata_for_build_wheel 2026-08-06T00:47:02,640 return self._call_hook('prepare_metadata_for_build_wheel', { 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_vendor/pyproject_hooks/_impl.py", line 311, in _call_hook 2026-08-06T00:47:02,640 self._subprocess_runner( 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/utils/subprocess.py", line 252, in runner 2026-08-06T00:47:02,640 call_subprocess( 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/utils/subprocess.py", line 224, in call_subprocess 2026-08-06T00:47:02,640 raise error 2026-08-06T00:47:02,640 pip._internal.exceptions.InstallationSubprocessError: Preparing metadata (pyproject.toml) exited with 1 2026-08-06T00:47:02,640 2026-08-06T00:47:02,640 The above exception was the direct cause of the following exception: 2026-08-06T00:47:02,640 2026-08-06T00:47:02,640 Traceback (most recent call last): 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper 2026-08-06T00:47:02,640 status = run_func(*args) 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 247, in wrapper 2026-08-06T00:47:02,640 return func(self, options, args) 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/commands/wheel.py", line 170, in run 2026-08-06T00:47:02,640 requirement_set = resolver.resolve(reqs, check_supported_wheels=True) 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve 2026-08-06T00:47:02,640 result = self._result = resolver.resolve( 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 481, in resolve 2026-08-06T00:47:02,640 state = resolution.resolve(requirements, max_rounds=max_rounds) 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 348, in resolve 2026-08-06T00:47:02,640 self._add_to_criteria(self.state.criteria, r, parent=None) 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 172, in _add_to_criteria 2026-08-06T00:47:02,640 if not criterion.candidates: 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/structs.py", line 151, in __bool__ 2026-08-06T00:47:02,640 return bool(self._sequence) 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__ 2026-08-06T00:47:02,640 return any(self) 2026-08-06T00:47:02,640 ^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in 2026-08-06T00:47:02,640 return (c for c in iterator if id(c) not in self._incompatible_ids) 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built 2026-08-06T00:47:02,640 candidate = func() 2026-08-06T00:47:02,640 ^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link 2026-08-06T00:47:02,640 self._link_candidate_cache[link] = LinkCandidate( 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 297, in __init__ 2026-08-06T00:47:02,640 super().__init__( 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 162, in __init__ 2026-08-06T00:47:02,640 self.dist = self._prepare() 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 231, in _prepare 2026-08-06T00:47:02,640 dist = self._prepare_distribution() 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 308, in _prepare_distribution 2026-08-06T00:47:02,640 return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 491, in prepare_linked_requirement 2026-08-06T00:47:02,640 return self._prepare_linked_requirement(req, parallel_builds) 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 577, in _prepare_linked_requirement 2026-08-06T00:47:02,640 dist = _get_prepared_distribution( 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 69, in _get_prepared_distribution 2026-08-06T00:47:02,640 abstract_dist.prepare_distribution_metadata( 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/distributions/sdist.py", line 61, in prepare_distribution_metadata 2026-08-06T00:47:02,640 self.req.prepare_metadata() 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 539, in prepare_metadata 2026-08-06T00:47:02,640 self.metadata_directory = generate_metadata( 2026-08-06T00:47:02,640 ^^^^^^^^^^^^^^^^^^ 2026-08-06T00:47:02,640 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata.py", line 37, in generate_metadata 2026-08-06T00:47:02,640 raise MetadataGenerationFailed(package_details=details) from error 2026-08-06T00:47:02,640 pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed 2026-08-06T00:47:02,654 Removed tinkerscope==1.0.0 from https://files.pythonhosted.org/packages/84/ed/5f75c33014a32d19f69fefe6766941c564efd8636ffc6c93389bbc52780e/tinkerscope-1.0.0.tar.gz from build tracker '/tmp/pip-build-tracker-apxu9a1e' 2026-08-06T00:47:02,655 Removed build tracker: '/tmp/pip-build-tracker-apxu9a1e'