2025-09-08T09:39:35,323 Created temporary directory: /tmp/pip-build-tracker-tbyb9tc5 2025-09-08T09:39:35,324 Initialized build tracking at /tmp/pip-build-tracker-tbyb9tc5 2025-09-08T09:39:35,324 Created build tracker: /tmp/pip-build-tracker-tbyb9tc5 2025-09-08T09:39:35,324 Entered build tracker: /tmp/pip-build-tracker-tbyb9tc5 2025-09-08T09:39:35,324 Created temporary directory: /tmp/pip-wheel-zwvgfyzo 2025-09-08T09:39:35,328 Created temporary directory: /tmp/pip-ephem-wheel-cache-sm2sopc8 2025-09-08T09:39:35,391 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-09-08T09:39:35,394 2 location(s) to search for versions of keep-password: 2025-09-08T09:39:35,394 * https://pypi.org/simple/keep-password/ 2025-09-08T09:39:35,394 * https://www.piwheels.org/simple/keep-password/ 2025-09-08T09:39:35,394 Fetching project page and analyzing links: https://pypi.org/simple/keep-password/ 2025-09-08T09:39:35,394 Getting page https://pypi.org/simple/keep-password/ 2025-09-08T09:39:35,396 Found index url https://pypi.org/simple/ 2025-09-08T09:39:35,467 Fetched page https://pypi.org/simple/keep-password/ as application/vnd.pypi.simple.v1+json 2025-09-08T09:39:35,469 Skipping link: No binaries permitted for keep-password: https://files.pythonhosted.org/packages/2f/0d/6a799573157f2d532bfcc4554fbf6261ffcda558f401ec3326a10ad804ff/keep_password-1.0-py2-none-any.whl (from https://pypi.org/simple/keep-password/) 2025-09-08T09:39:35,469 Found link https://files.pythonhosted.org/packages/b5/3c/0d63e0aeb36a46733321d00e3f8fb5e56ef27024c541d01ad23f9c234841/keep_password-1.0.tar.gz (from https://pypi.org/simple/keep-password/), version: 1.0 2025-09-08T09:39:35,469 Found link https://files.pythonhosted.org/packages/92/5f/d629632abf09782ca6ef051b97acd6661c57a11c3e5f48b6e757941a101e/keep-password-1.1.tar.gz (from https://pypi.org/simple/keep-password/), version: 1.1 2025-09-08T09:39:35,470 Skipping link: No binaries permitted for keep-password: https://files.pythonhosted.org/packages/0a/5a/956da80222c88ab1ea97729fddfd804dd2f91685d68e88d062e81fccbacc/keep_password-1.1-py2-none-any.whl (from https://pypi.org/simple/keep-password/) 2025-09-08T09:39:35,470 Found link https://files.pythonhosted.org/packages/b8/61/cb6bca8ec703b52753aafc05eb1ff1004540b5c15c058667d5f7deaace4d/keep-password-1.2.tar.gz (from https://pypi.org/simple/keep-password/), version: 1.2 2025-09-08T09:39:35,470 Skipping link: No binaries permitted for keep-password: https://files.pythonhosted.org/packages/36/63/87442239972f493b458f576455c79023d2b8da51eb2d2461feb81c4f2662/keep_password-1.2-py2-none-any.whl (from https://pypi.org/simple/keep-password/) 2025-09-08T09:39:35,470 Found link https://files.pythonhosted.org/packages/26/c0/62dbf53f62e9bd262f949aaa3b69e9b673d851223b6246a53b1c92c8b854/keep-password-1.3.tar.gz (from https://pypi.org/simple/keep-password/), version: 1.3 2025-09-08T09:39:35,470 Skipping link: No binaries permitted for keep-password: https://files.pythonhosted.org/packages/7c/47/aed7fd62c0de6520141c0054205e4fa6f1c16f5ec7d0ab061ec44427b71f/keep_password-1.3-py2-none-any.whl (from https://pypi.org/simple/keep-password/) 2025-09-08T09:39:35,470 Found link https://files.pythonhosted.org/packages/15/7b/23c0cfaf2535eae78c031ffd42a249b4a9d31ad529c1e29f29284d8f0337/keep-password-1.4.tar.gz (from https://pypi.org/simple/keep-password/), version: 1.4 2025-09-08T09:39:35,471 Skipping link: No binaries permitted for keep-password: https://files.pythonhosted.org/packages/22/6f/16e3cbb43ea16caf60ee9e2a8d3e71321023228247563345fe79ab0583d5/keep_password-1.4-py2-none-any.whl (from https://pypi.org/simple/keep-password/) 2025-09-08T09:39:35,471 Found link https://files.pythonhosted.org/packages/02/4e/a7591da448238b9e3268252c5ddc9384b4924e007b638d93ae9a9ccb6cc0/keep-password-1.5.tar.gz (from https://pypi.org/simple/keep-password/), version: 1.5 2025-09-08T09:39:35,471 Skipping link: No binaries permitted for keep-password: https://files.pythonhosted.org/packages/a2/e0/637a80dd57a5eaf080c36b2978b888dc24d0d67c364817c8337b858f655f/keep_password-1.5-py2-none-any.whl (from https://pypi.org/simple/keep-password/) 2025-09-08T09:39:35,471 Found link https://files.pythonhosted.org/packages/82/38/1c8f5a1c3762d9d13572f4c20a78aa3745d2ad2baed487a4f32b09be14d8/keep-password-1.6.tar.gz (from https://pypi.org/simple/keep-password/), version: 1.6 2025-09-08T09:39:35,471 Skipping link: No binaries permitted for keep-password: https://files.pythonhosted.org/packages/65/00/2e5f2516248ebf68b15b39c7e4cde6182b852b54153c67e34e1c29fdbf88/keep_password-1.6-py2-none-any.whl (from https://pypi.org/simple/keep-password/) 2025-09-08T09:39:35,472 Fetching project page and analyzing links: https://www.piwheels.org/simple/keep-password/ 2025-09-08T09:39:35,472 Getting page https://www.piwheels.org/simple/keep-password/ 2025-09-08T09:39:35,473 Found index url https://www.piwheels.org/simple/ 2025-09-08T09:39:35,570 Fetched page https://www.piwheels.org/simple/keep-password/ as text/html 2025-09-08T09:39:35,572 Skipping link: No binaries permitted for keep-password: https://archive1.piwheels.org/simple/keep-password/keep_password-1.6-py3-none-any.whl#sha256=89d334a06573221944e657c6fe954217a1397a0a3e1ad7677c1a1660a9ac7da1 (from https://www.piwheels.org/simple/keep-password/) 2025-09-08T09:39:35,572 Skipping link: No binaries permitted for keep-password: https://archive1.piwheels.org/simple/keep-password/keep_password-1.5-py3-none-any.whl#sha256=faed6c26f45de9e06dfd4302aa81abfc825f2b1813da893f43808814a0179751 (from https://www.piwheels.org/simple/keep-password/) 2025-09-08T09:39:35,572 Skipping link: No binaries permitted for keep-password: https://archive1.piwheels.org/simple/keep-password/keep_password-1.4-py3-none-any.whl#sha256=badaec0d2e541b816e6c8a19f0ecedf655ab8d27d5798b299b320efd61300f3d (from https://www.piwheels.org/simple/keep-password/) 2025-09-08T09:39:35,572 Skipping link: No binaries permitted for keep-password: https://archive1.piwheels.org/simple/keep-password/keep_password-1.3-py3-none-any.whl#sha256=53567b4c2f30cf63a2de8d28ba3365f123d42a94088862c55c1abbf9fa39dd4f (from https://www.piwheels.org/simple/keep-password/) 2025-09-08T09:39:35,573 Skipping link: not a file: https://www.piwheels.org/simple/keep-password/ 2025-09-08T09:39:35,573 Skipping link: not a file: https://pypi.org/simple/keep-password/ 2025-09-08T09:39:35,596 Given no hashes to check 1 links for project 'keep-password': discarding no candidates 2025-09-08T09:39:35,597 Collecting keep-password==1.2 2025-09-08T09:39:35,599 Created temporary directory: /tmp/pip-unpack-xlhbpydn 2025-09-08T09:39:35,737 Downloading keep-password-1.2.tar.gz (1.1 kB) 2025-09-08T09:39:35,759 Added keep-password==1.2 from https://files.pythonhosted.org/packages/b8/61/cb6bca8ec703b52753aafc05eb1ff1004540b5c15c058667d5f7deaace4d/keep-password-1.2.tar.gz to build tracker '/tmp/pip-build-tracker-tbyb9tc5' 2025-09-08T09:39:35,762 Running setup.py (path:/tmp/pip-wheel-zwvgfyzo/keep-password_b87c599d7dac4a93bba3adba36f03fb1/setup.py) egg_info for package keep-password 2025-09-08T09:39:35,762 Created temporary directory: /tmp/pip-pip-egg-info-aqfr0zgs 2025-09-08T09:39:35,763 Preparing metadata (setup.py): started 2025-09-08T09:39:35,764 Running command python setup.py egg_info 2025-09-08T09:39:36,271 Traceback (most recent call last): 2025-09-08T09:39:36,272 File "", line 2, in 2025-09-08T09:39:36,272 exec(compile(''' 2025-09-08T09:39:36,272 ~~~~^^^^^^^^^^^^ 2025-09-08T09:39:36,273 # This is -- a caller that pip uses to run setup.py 2025-09-08T09:39:36,273 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,273 ...<32 lines>... 2025-09-08T09:39:36,273 exec(compile(setup_py_code, filename, "exec")) 2025-09-08T09:39:36,273 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,273 ''' % ('/tmp/pip-wheel-zwvgfyzo/keep-password_b87c599d7dac4a93bba3adba36f03fb1/setup.py',), "", "exec")) 2025-09-08T09:39:36,273 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,273 File "", line 35, in 2025-09-08T09:39:36,274 File "/tmp/pip-wheel-zwvgfyzo/keep-password_b87c599d7dac4a93bba3adba36f03fb1/setup.py", line 13, in 2025-09-08T09:39:36,274 requirements = [pkg.split('=')[0] for pkg in open('requirements.txt').readlines()] 2025-09-08T09:39:36,274 ~~~~^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,274 FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt' 2025-09-08T09:39:36,357 ERROR: python setup.py egg_info exited with 1 2025-09-08T09:39:36,369 [bold magenta]full command[/]: [blue]/usr/bin/python3 -c ' 2025-09-08T09:39:36,369 exec(compile('"'"''"'"''"'"' 2025-09-08T09:39:36,369 # This is -- a caller that pip uses to run setup.py 2025-09-08T09:39:36,369 # 2025-09-08T09:39:36,369 # - It imports setuptools before invoking setup.py, to enable projects that directly 2025-09-08T09:39:36,369 # import from `distutils.core` to work with newer packaging standards. 2025-09-08T09:39:36,369 # - It provides a clear error message when setuptools is not installed. 2025-09-08T09:39:36,369 # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so 2025-09-08T09:39:36,369 # setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning: 2025-09-08T09:39:36,369 # manifest_maker: standard file '"'"'-c'"'"' not found". 2025-09-08T09:39:36,369 # - It generates a shim setup.py, for handling setup.cfg-only projects. 2025-09-08T09:39:36,369 import os, sys, tokenize, traceback 2025-09-08T09:39:36,369 2025-09-08T09:39:36,369 try: 2025-09-08T09:39:36,369 import setuptools 2025-09-08T09:39:36,369 except ImportError: 2025-09-08T09:39:36,369 print( 2025-09-08T09:39:36,369 "ERROR: Can not execute `setup.py` since setuptools failed to import in " 2025-09-08T09:39:36,369 "the build environment with exception:", 2025-09-08T09:39:36,369 file=sys.stderr, 2025-09-08T09:39:36,369 ) 2025-09-08T09:39:36,369 traceback.print_exc() 2025-09-08T09:39:36,369 sys.exit(1) 2025-09-08T09:39:36,369 2025-09-08T09:39:36,369 __file__ = %r 2025-09-08T09:39:36,369 sys.argv[0] = __file__ 2025-09-08T09:39:36,369 2025-09-08T09:39:36,369 if os.path.exists(__file__): 2025-09-08T09:39:36,369 filename = __file__ 2025-09-08T09:39:36,369 with tokenize.open(__file__) as f: 2025-09-08T09:39:36,369 setup_py_code = f.read() 2025-09-08T09:39:36,369 else: 2025-09-08T09:39:36,369 filename = "" 2025-09-08T09:39:36,369 setup_py_code = "from setuptools import setup; setup()" 2025-09-08T09:39:36,369 2025-09-08T09:39:36,369 exec(compile(setup_py_code, filename, "exec")) 2025-09-08T09:39:36,369 '"'"''"'"''"'"' % ('"'"'/tmp/pip-wheel-zwvgfyzo/keep-password_b87c599d7dac4a93bba3adba36f03fb1/setup.py'"'"',), "", "exec"))' egg_info --egg-base /tmp/pip-pip-egg-info-aqfr0zgs[/] 2025-09-08T09:39:36,369 [bold magenta]cwd[/]: /tmp/pip-wheel-zwvgfyzo/keep-password_b87c599d7dac4a93bba3adba36f03fb1/ 2025-09-08T09:39:36,369 Preparing metadata (setup.py): finished with status 'error' 2025-09-08T09:39:36,370 ERROR: metadata generation failed 2025-09-08T09:39:36,375 Exception information: 2025-09-08T09:39:36,375 Traceback (most recent call last): 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 63, in generate_metadata 2025-09-08T09:39:36,375 call_subprocess( 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,375 args, 2025-09-08T09:39:36,375 ^^^^^ 2025-09-08T09:39:36,375 ...<2 lines>... 2025-09-08T09:39:36,375 spinner=spinner, 2025-09-08T09:39:36,375 ^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 ) 2025-09-08T09:39:36,375 ^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/utils/subprocess.py", line 209, in call_subprocess 2025-09-08T09:39:36,375 raise error 2025-09-08T09:39:36,375 pip._internal.exceptions.InstallationSubprocessError: python setup.py egg_info exited with 1 2025-09-08T09:39:36,375 2025-09-08T09:39:36,375 The above exception was the direct cause of the following exception: 2025-09-08T09:39:36,375 2025-09-08T09:39:36,375 Traceback (most recent call last): 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper 2025-09-08T09:39:36,375 status = _inner_run() 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run 2025-09-08T09:39:36,375 return self.run(options, args) 2025-09-08T09:39:36,375 ~~~~~~~~^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 68, in wrapper 2025-09-08T09:39:36,375 return func(self, options, args) 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/commands/wheel.py", line 147, in run 2025-09-08T09:39:36,375 requirement_set = resolver.resolve(reqs, check_supported_wheels=True) 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 96, in resolve 2025-09-08T09:39:36,375 result = self._result = resolver.resolve( 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,375 collected.requirements, max_rounds=limit_how_complex_resolution_can_be 2025-09-08T09:39:36,375 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 ) 2025-09-08T09:39:36,375 ^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 515, in resolve 2025-09-08T09:39:36,375 state = resolution.resolve(requirements, max_rounds=max_rounds) 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 388, in resolve 2025-09-08T09:39:36,375 self._add_to_criteria(self.state.criteria, r, parent=None) 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 141, in _add_to_criteria 2025-09-08T09:39:36,375 if not criterion.candidates: 2025-09-08T09:39:36,375 ^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/structs.py", line 194, in __bool__ 2025-09-08T09:39:36,375 return bool(self._sequence) 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 163, in __bool__ 2025-09-08T09:39:36,375 self._bool = any(self) 2025-09-08T09:39:36,375 ~~~^^^^^^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 147, in 2025-09-08T09:39:36,375 return (c for c in iterator if id(c) not in self._incompatible_ids) 2025-09-08T09:39:36,375 ^^^^^^^^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 37, in _iter_built 2025-09-08T09:39:36,375 candidate = func() 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 187, in _make_candidate_from_link 2025-09-08T09:39:36,375 base: Optional[BaseCandidate] = self._make_base_candidate_from_link( 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,375 link, template, name, version 2025-09-08T09:39:36,375 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 ) 2025-09-08T09:39:36,375 ^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 233, in _make_base_candidate_from_link 2025-09-08T09:39:36,375 self._link_candidate_cache[link] = LinkCandidate( 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~^ 2025-09-08T09:39:36,375 link, 2025-09-08T09:39:36,375 ^^^^^ 2025-09-08T09:39:36,375 ...<3 lines>... 2025-09-08T09:39:36,375 version=version, 2025-09-08T09:39:36,375 ^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 ) 2025-09-08T09:39:36,375 ^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 306, in __init__ 2025-09-08T09:39:36,375 super().__init__( 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,375 link=link, 2025-09-08T09:39:36,375 ^^^^^^^^^^ 2025-09-08T09:39:36,375 ...<4 lines>... 2025-09-08T09:39:36,375 version=version, 2025-09-08T09:39:36,375 ^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 ) 2025-09-08T09:39:36,375 ^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 159, in __init__ 2025-09-08T09:39:36,375 self.dist = self._prepare() 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~^^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 236, in _prepare 2025-09-08T09:39:36,375 dist = self._prepare_distribution() 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 317, in _prepare_distribution 2025-09-08T09:39:36,375 return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 532, in prepare_linked_requirement 2025-09-08T09:39:36,375 return self._prepare_linked_requirement(req, parallel_builds) 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 647, in _prepare_linked_requirement 2025-09-08T09:39:36,375 dist = _get_prepared_distribution( 2025-09-08T09:39:36,375 req, 2025-09-08T09:39:36,375 ...<3 lines>... 2025-09-08T09:39:36,375 self.check_build_deps, 2025-09-08T09:39:36,375 ) 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution 2025-09-08T09:39:36,375 abstract_dist.prepare_distribution_metadata( 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,375 finder, build_isolation, check_build_deps 2025-09-08T09:39:36,375 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 ) 2025-09-08T09:39:36,375 ^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/distributions/sdist.py", line 69, in prepare_distribution_metadata 2025-09-08T09:39:36,375 self.req.prepare_metadata() 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~~~~~~~~~~~~~^^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 581, in prepare_metadata 2025-09-08T09:39:36,375 self.metadata_directory = generate_metadata_legacy( 2025-09-08T09:39:36,375 ~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,375 build_env=self.build_env, 2025-09-08T09:39:36,375 ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 ...<3 lines>... 2025-09-08T09:39:36,375 details=details, 2025-09-08T09:39:36,375 ^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,375 ) 2025-09-08T09:39:36,375 ^ 2025-09-08T09:39:36,375 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 70, in generate_metadata 2025-09-08T09:39:36,375 raise MetadataGenerationFailed(package_details=details) from error 2025-09-08T09:39:36,375 pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed 2025-09-08T09:39:36,400 Removed keep-password==1.2 from https://files.pythonhosted.org/packages/b8/61/cb6bca8ec703b52753aafc05eb1ff1004540b5c15c058667d5f7deaace4d/keep-password-1.2.tar.gz from build tracker '/tmp/pip-build-tracker-tbyb9tc5' 2025-09-08T09:39:36,401 Removed build tracker: '/tmp/pip-build-tracker-tbyb9tc5'