2025-09-08T09:39:35,031 Created temporary directory: /tmp/pip-build-tracker-sdbt6xss 2025-09-08T09:39:35,032 Initialized build tracking at /tmp/pip-build-tracker-sdbt6xss 2025-09-08T09:39:35,032 Created build tracker: /tmp/pip-build-tracker-sdbt6xss 2025-09-08T09:39:35,032 Entered build tracker: /tmp/pip-build-tracker-sdbt6xss 2025-09-08T09:39:35,032 Created temporary directory: /tmp/pip-wheel-whcqy1yf 2025-09-08T09:39:35,035 Created temporary directory: /tmp/pip-ephem-wheel-cache-zfuinds6 2025-09-08T09:39:35,095 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-09-08T09:39:35,097 2 location(s) to search for versions of keep-password: 2025-09-08T09:39:35,097 * https://pypi.org/simple/keep-password/ 2025-09-08T09:39:35,097 * https://www.piwheels.org/simple/keep-password/ 2025-09-08T09:39:35,097 Fetching project page and analyzing links: https://pypi.org/simple/keep-password/ 2025-09-08T09:39:35,098 Getting page https://pypi.org/simple/keep-password/ 2025-09-08T09:39:35,099 Found index url https://pypi.org/simple/ 2025-09-08T09:39:35,168 Fetched page https://pypi.org/simple/keep-password/ as application/vnd.pypi.simple.v1+json 2025-09-08T09:39:35,170 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,171 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,171 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,171 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,171 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,171 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,172 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,172 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,172 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,172 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,172 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,173 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,173 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,173 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,173 Fetching project page and analyzing links: https://www.piwheels.org/simple/keep-password/ 2025-09-08T09:39:35,174 Getting page https://www.piwheels.org/simple/keep-password/ 2025-09-08T09:39:35,174 Found index url https://www.piwheels.org/simple/ 2025-09-08T09:39:35,266 Fetched page https://www.piwheels.org/simple/keep-password/ as text/html 2025-09-08T09:39:35,268 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,268 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,268 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,268 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,269 Skipping link: not a file: https://www.piwheels.org/simple/keep-password/ 2025-09-08T09:39:35,269 Skipping link: not a file: https://pypi.org/simple/keep-password/ 2025-09-08T09:39:35,291 Given no hashes to check 1 links for project 'keep-password': discarding no candidates 2025-09-08T09:39:35,292 Collecting keep-password==1.1 2025-09-08T09:39:35,294 Created temporary directory: /tmp/pip-unpack-bzi4nv2f 2025-09-08T09:39:35,435 Downloading keep-password-1.1.tar.gz (1.1 kB) 2025-09-08T09:39:35,456 Added keep-password==1.1 from https://files.pythonhosted.org/packages/92/5f/d629632abf09782ca6ef051b97acd6661c57a11c3e5f48b6e757941a101e/keep-password-1.1.tar.gz to build tracker '/tmp/pip-build-tracker-sdbt6xss' 2025-09-08T09:39:35,459 Running setup.py (path:/tmp/pip-wheel-whcqy1yf/keep-password_9a586cac08cf4782bfa4f6d3393245d4/setup.py) egg_info for package keep-password 2025-09-08T09:39:35,459 Created temporary directory: /tmp/pip-pip-egg-info-quvhv6gn 2025-09-08T09:39:35,460 Preparing metadata (setup.py): started 2025-09-08T09:39:35,460 Running command python setup.py egg_info 2025-09-08T09:39:35,975 Traceback (most recent call last): 2025-09-08T09:39:35,977 File "", line 2, in 2025-09-08T09:39:35,977 exec(compile(''' 2025-09-08T09:39:35,977 ~~~~^^^^^^^^^^^^ 2025-09-08T09:39:35,977 # This is -- a caller that pip uses to run setup.py 2025-09-08T09:39:35,977 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:35,977 ...<32 lines>... 2025-09-08T09:39:35,978 exec(compile(setup_py_code, filename, "exec")) 2025-09-08T09:39:35,978 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:35,978 ''' % ('/tmp/pip-wheel-whcqy1yf/keep-password_9a586cac08cf4782bfa4f6d3393245d4/setup.py',), "", "exec")) 2025-09-08T09:39:35,978 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:35,978 File "", line 35, in 2025-09-08T09:39:35,978 File "/tmp/pip-wheel-whcqy1yf/keep-password_9a586cac08cf4782bfa4f6d3393245d4/setup.py", line 6, in 2025-09-08T09:39:35,978 requirements = [pkg.split('=')[0] for pkg in open('requirements.txt').readlines()] 2025-09-08T09:39:35,979 ~~~~^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:35,979 FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt' 2025-09-08T09:39:36,062 ERROR: python setup.py egg_info exited with 1 2025-09-08T09:39:36,074 [bold magenta]full command[/]: [blue]/usr/bin/python3 -c ' 2025-09-08T09:39:36,074 exec(compile('"'"''"'"''"'"' 2025-09-08T09:39:36,074 # This is -- a caller that pip uses to run setup.py 2025-09-08T09:39:36,074 # 2025-09-08T09:39:36,074 # - It imports setuptools before invoking setup.py, to enable projects that directly 2025-09-08T09:39:36,074 # import from `distutils.core` to work with newer packaging standards. 2025-09-08T09:39:36,074 # - It provides a clear error message when setuptools is not installed. 2025-09-08T09:39:36,074 # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so 2025-09-08T09:39:36,074 # setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning: 2025-09-08T09:39:36,074 # manifest_maker: standard file '"'"'-c'"'"' not found". 2025-09-08T09:39:36,074 # - It generates a shim setup.py, for handling setup.cfg-only projects. 2025-09-08T09:39:36,074 import os, sys, tokenize, traceback 2025-09-08T09:39:36,074 2025-09-08T09:39:36,074 try: 2025-09-08T09:39:36,074 import setuptools 2025-09-08T09:39:36,074 except ImportError: 2025-09-08T09:39:36,074 print( 2025-09-08T09:39:36,074 "ERROR: Can not execute `setup.py` since setuptools failed to import in " 2025-09-08T09:39:36,074 "the build environment with exception:", 2025-09-08T09:39:36,074 file=sys.stderr, 2025-09-08T09:39:36,074 ) 2025-09-08T09:39:36,074 traceback.print_exc() 2025-09-08T09:39:36,074 sys.exit(1) 2025-09-08T09:39:36,074 2025-09-08T09:39:36,074 __file__ = %r 2025-09-08T09:39:36,074 sys.argv[0] = __file__ 2025-09-08T09:39:36,074 2025-09-08T09:39:36,074 if os.path.exists(__file__): 2025-09-08T09:39:36,074 filename = __file__ 2025-09-08T09:39:36,074 with tokenize.open(__file__) as f: 2025-09-08T09:39:36,074 setup_py_code = f.read() 2025-09-08T09:39:36,074 else: 2025-09-08T09:39:36,074 filename = "" 2025-09-08T09:39:36,074 setup_py_code = "from setuptools import setup; setup()" 2025-09-08T09:39:36,074 2025-09-08T09:39:36,074 exec(compile(setup_py_code, filename, "exec")) 2025-09-08T09:39:36,074 '"'"''"'"''"'"' % ('"'"'/tmp/pip-wheel-whcqy1yf/keep-password_9a586cac08cf4782bfa4f6d3393245d4/setup.py'"'"',), "", "exec"))' egg_info --egg-base /tmp/pip-pip-egg-info-quvhv6gn[/] 2025-09-08T09:39:36,074 [bold magenta]cwd[/]: /tmp/pip-wheel-whcqy1yf/keep-password_9a586cac08cf4782bfa4f6d3393245d4/ 2025-09-08T09:39:36,075 Preparing metadata (setup.py): finished with status 'error' 2025-09-08T09:39:36,075 ERROR: metadata generation failed 2025-09-08T09:39:36,080 Exception information: 2025-09-08T09:39:36,080 Traceback (most recent call last): 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 63, in generate_metadata 2025-09-08T09:39:36,080 call_subprocess( 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,080 args, 2025-09-08T09:39:36,080 ^^^^^ 2025-09-08T09:39:36,080 ...<2 lines>... 2025-09-08T09:39:36,080 spinner=spinner, 2025-09-08T09:39:36,080 ^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 ) 2025-09-08T09:39:36,080 ^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/utils/subprocess.py", line 209, in call_subprocess 2025-09-08T09:39:36,080 raise error 2025-09-08T09:39:36,080 pip._internal.exceptions.InstallationSubprocessError: python setup.py egg_info exited with 1 2025-09-08T09:39:36,080 2025-09-08T09:39:36,080 The above exception was the direct cause of the following exception: 2025-09-08T09:39:36,080 2025-09-08T09:39:36,080 Traceback (most recent call last): 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper 2025-09-08T09:39:36,080 status = _inner_run() 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run 2025-09-08T09:39:36,080 return self.run(options, args) 2025-09-08T09:39:36,080 ~~~~~~~~^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 68, in wrapper 2025-09-08T09:39:36,080 return func(self, options, args) 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/commands/wheel.py", line 147, in run 2025-09-08T09:39:36,080 requirement_set = resolver.resolve(reqs, check_supported_wheels=True) 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 96, in resolve 2025-09-08T09:39:36,080 result = self._result = resolver.resolve( 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,080 collected.requirements, max_rounds=limit_how_complex_resolution_can_be 2025-09-08T09:39:36,080 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 ) 2025-09-08T09:39:36,080 ^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 515, in resolve 2025-09-08T09:39:36,080 state = resolution.resolve(requirements, max_rounds=max_rounds) 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 388, in resolve 2025-09-08T09:39:36,080 self._add_to_criteria(self.state.criteria, r, parent=None) 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 141, in _add_to_criteria 2025-09-08T09:39:36,080 if not criterion.candidates: 2025-09-08T09:39:36,080 ^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/structs.py", line 194, in __bool__ 2025-09-08T09:39:36,080 return bool(self._sequence) 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 163, in __bool__ 2025-09-08T09:39:36,080 self._bool = any(self) 2025-09-08T09:39:36,080 ~~~^^^^^^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 147, in 2025-09-08T09:39:36,080 return (c for c in iterator if id(c) not in self._incompatible_ids) 2025-09-08T09:39:36,080 ^^^^^^^^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 37, in _iter_built 2025-09-08T09:39:36,080 candidate = func() 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 187, in _make_candidate_from_link 2025-09-08T09:39:36,080 base: Optional[BaseCandidate] = self._make_base_candidate_from_link( 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,080 link, template, name, version 2025-09-08T09:39:36,080 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 ) 2025-09-08T09:39:36,080 ^ 2025-09-08T09:39:36,080 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,080 self._link_candidate_cache[link] = LinkCandidate( 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~^ 2025-09-08T09:39:36,080 link, 2025-09-08T09:39:36,080 ^^^^^ 2025-09-08T09:39:36,080 ...<3 lines>... 2025-09-08T09:39:36,080 version=version, 2025-09-08T09:39:36,080 ^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 ) 2025-09-08T09:39:36,080 ^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 306, in __init__ 2025-09-08T09:39:36,080 super().__init__( 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,080 link=link, 2025-09-08T09:39:36,080 ^^^^^^^^^^ 2025-09-08T09:39:36,080 ...<4 lines>... 2025-09-08T09:39:36,080 version=version, 2025-09-08T09:39:36,080 ^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 ) 2025-09-08T09:39:36,080 ^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 159, in __init__ 2025-09-08T09:39:36,080 self.dist = self._prepare() 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~^^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 236, in _prepare 2025-09-08T09:39:36,080 dist = self._prepare_distribution() 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 317, in _prepare_distribution 2025-09-08T09:39:36,080 return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 532, in prepare_linked_requirement 2025-09-08T09:39:36,080 return self._prepare_linked_requirement(req, parallel_builds) 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 647, in _prepare_linked_requirement 2025-09-08T09:39:36,080 dist = _get_prepared_distribution( 2025-09-08T09:39:36,080 req, 2025-09-08T09:39:36,080 ...<3 lines>... 2025-09-08T09:39:36,080 self.check_build_deps, 2025-09-08T09:39:36,080 ) 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution 2025-09-08T09:39:36,080 abstract_dist.prepare_distribution_metadata( 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,080 finder, build_isolation, check_build_deps 2025-09-08T09:39:36,080 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 ) 2025-09-08T09:39:36,080 ^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/distributions/sdist.py", line 69, in prepare_distribution_metadata 2025-09-08T09:39:36,080 self.req.prepare_metadata() 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~~~~~~~~~~~~~^^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 581, in prepare_metadata 2025-09-08T09:39:36,080 self.metadata_directory = generate_metadata_legacy( 2025-09-08T09:39:36,080 ~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-08T09:39:36,080 build_env=self.build_env, 2025-09-08T09:39:36,080 ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 ...<3 lines>... 2025-09-08T09:39:36,080 details=details, 2025-09-08T09:39:36,080 ^^^^^^^^^^^^^^^^ 2025-09-08T09:39:36,080 ) 2025-09-08T09:39:36,080 ^ 2025-09-08T09:39:36,080 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 70, in generate_metadata 2025-09-08T09:39:36,080 raise MetadataGenerationFailed(package_details=details) from error 2025-09-08T09:39:36,080 pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed 2025-09-08T09:39:36,103 Removed keep-password==1.1 from https://files.pythonhosted.org/packages/92/5f/d629632abf09782ca6ef051b97acd6661c57a11c3e5f48b6e757941a101e/keep-password-1.1.tar.gz from build tracker '/tmp/pip-build-tracker-sdbt6xss' 2025-09-08T09:39:36,103 Removed build tracker: '/tmp/pip-build-tracker-sdbt6xss'