2023-09-20T17:30:21,415 Created temporary directory: /tmp/pip-build-tracker-0ehav121 2023-09-20T17:30:21,416 Initialized build tracking at /tmp/pip-build-tracker-0ehav121 2023-09-20T17:30:21,416 Created build tracker: /tmp/pip-build-tracker-0ehav121 2023-09-20T17:30:21,417 Entered build tracker: /tmp/pip-build-tracker-0ehav121 2023-09-20T17:30:21,418 Created temporary directory: /tmp/pip-wheel-yxh09ksz 2023-09-20T17:30:21,421 Created temporary directory: /tmp/pip-ephem-wheel-cache-7jm2j1py 2023-09-20T17:30:21,443 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-09-20T17:30:21,446 2 location(s) to search for versions of getsubstring: 2023-09-20T17:30:21,446 * https://pypi.org/simple/getsubstring/ 2023-09-20T17:30:21,446 * https://www.piwheels.org/simple/getsubstring/ 2023-09-20T17:30:21,447 Fetching project page and analyzing links: https://pypi.org/simple/getsubstring/ 2023-09-20T17:30:21,448 Getting page https://pypi.org/simple/getsubstring/ 2023-09-20T17:30:21,449 Found index url https://pypi.org/simple/ 2023-09-20T17:30:21,670 Fetched page https://pypi.org/simple/getsubstring/ as application/vnd.pypi.simple.v1+json 2023-09-20T17:30:21,675 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/98/9b/5032f8a28ef3e6df1b8257c0106147d56065fe7203c4a48546df17159732/GetSubString-1.0.1-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,676 Found link https://files.pythonhosted.org/packages/09/94/f37a87f463be4392285bd0293a1b1532a73ed115a6a644094697f5a746f9/GetSubString-1.0.1.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.1 2023-09-20T17:30:21,676 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/40/d5/3f51a127b05ed2545cac5bc75eec1ff119a4d9e9e5a311d90c5c8c71bbd1/GetSubString-1.0.2-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,677 Skipping link: unsupported archive format: .egg: https://files.pythonhosted.org/packages/21/a5/981fcc87ba8e4eb76e50db08bc4efaf5b1035894437aff7bcefb9455244e/GetSubString-1.0.2-py3.8.egg (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,678 Found link https://files.pythonhosted.org/packages/b9/7e/e64226db06662582688688fec56874685a5f5d1f89cfb13f1e3e7d3afff1/GetSubString-1.0.2.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.2 2023-09-20T17:30:21,679 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/c3/ae/183275f0fae9b07e129365df263aa3830744d031f88883a3667041cb8cd3/GetSubString-1.0.3-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,680 Found link https://files.pythonhosted.org/packages/52/d4/09b282f9724f8e3d973b76f9f33e4df7e0a1547a7a2dd1716be352147ce8/GetSubString-1.0.3.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.3 2023-09-20T17:30:21,681 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/f5/69/bdb78aec8a6c52362d4550ba609cadd7e2cc051fac6059d0c307c09f3733/GetSubString-1.0.4-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,682 Found link https://files.pythonhosted.org/packages/13/1c/18f0414fa35e228ad8aa968286c3377cc881fc21a0b549960054f6360f82/GetSubString-1.0.4.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.4 2023-09-20T17:30:21,682 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/ab/f1/a980b726a86938a854bcfa4079f2b8e7e28bed0f931054489a387dc8e865/GetSubString-1.0.5-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,683 Found link https://files.pythonhosted.org/packages/f1/12/2f05f667a514266d9faa75963474b64f402985d6f32ef782c2065f231d25/GetSubString-1.0.5.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.5 2023-09-20T17:30:21,684 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/45/2b/d47bba903ec73f2fc932169b97404c5ad7bb3c5991e7ffa326970a669253/GetSubString-1.0.6-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,686 Found link https://files.pythonhosted.org/packages/9f/91/76bc9cbd659e8bb0e5865f2814010c9b2843ced15bad986fa4c44a6312e3/GetSubString-1.0.6.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.6 2023-09-20T17:30:21,687 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/94/b4/607d9696c08d93040d1237e5aba4a5342270ab26fcf5be67b0f5ba1ec1a7/GetSubString-1.0.7-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,688 Found link https://files.pythonhosted.org/packages/2b/c5/311842ab1826d33ee47e193722bbccef2d0e68d645e849fce93eaa738b47/GetSubString-1.0.7.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.7 2023-09-20T17:30:21,689 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/9d/0a/d2cf8cf8efa3ed5e29d3e821e2ded5b08d266f3c09d932356a4d0c2b1893/GetSubString-1.0.8-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,690 Found link https://files.pythonhosted.org/packages/e8/23/38cdd955533041f1d7ebaba178ccb6d61d27e33d997be7e084a2f2dced04/GetSubString-1.0.8.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.8 2023-09-20T17:30:21,691 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/99/db/27038227903fa080f89c3d81ded43356e3c3c67924da86a39e77c10c2b9c/GetSubString-1.0.9-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,692 Found link https://files.pythonhosted.org/packages/e0/d1/885a4d99800c7124cea71dc7fd7f95c223595de645e55eb4f5bccb2d1e28/GetSubString-1.0.9.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.9 2023-09-20T17:30:21,693 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/33/57/562b85f2a4a48055b0036c1c5c01f3a827db01a9c80b335576a69185e747/GetSubString-1.0.10-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,694 Found link https://files.pythonhosted.org/packages/22/3f/9cf64c33897353e4700b759f7982270313da4e9e467e06e289f11dc992f4/GetSubString-1.0.10.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.10 2023-09-20T17:30:21,695 Skipping link: No binaries permitted for getsubstring: https://files.pythonhosted.org/packages/1c/f7/45e697b45fa406f731e179e42acf350d45c4033d51f766de598692bfc23e/GetSubString-1.0.11-py3-none-any.whl (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,696 Found link https://files.pythonhosted.org/packages/1e/74/97417ddb6bbbf5caa5cd363ad012346db8f36815dc1a14d401243062a91d/GetSubString-1.0.11.tar.gz (from https://pypi.org/simple/getsubstring/) (requires-python:>=3.5), version: 1.0.11 2023-09-20T17:30:21,697 Fetching project page and analyzing links: https://www.piwheels.org/simple/getsubstring/ 2023-09-20T17:30:21,699 Getting page https://www.piwheels.org/simple/getsubstring/ 2023-09-20T17:30:21,700 Found index url https://www.piwheels.org/simple/ 2023-09-20T17:30:21,956 Fetched page https://www.piwheels.org/simple/getsubstring/ as text/html 2023-09-20T17:30:21,959 Skipping link: No binaries permitted for getsubstring: https://www.piwheels.org/simple/getsubstring/GetSubString-1.0.3-py3-none-any.whl#sha256=d9054720b19cb7b7ac50abbce0cea5a52ea058e27686b945851d09bb2d037963 (from https://www.piwheels.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,959 Skipping link: No binaries permitted for getsubstring: https://www.piwheels.org/simple/getsubstring/GetSubString-1.0.2-py3-none-any.whl#sha256=8d5f242e03389a1ef1a84b4274ce018f38451f110b3d2d08c8109ca46708d5b9 (from https://www.piwheels.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,960 Skipping link: No binaries permitted for getsubstring: https://www.piwheels.org/simple/getsubstring/GetSubString-1.0.1-py3-none-any.whl#sha256=c7534bcba696aea0496e470a5e3e819efcd9a0681ab21f039b82a0a1bcc61cca (from https://www.piwheels.org/simple/getsubstring/) (requires-python:>=3.5) 2023-09-20T17:30:21,961 Skipping link: not a file: https://www.piwheels.org/simple/getsubstring/ 2023-09-20T17:30:21,961 Skipping link: not a file: https://pypi.org/simple/getsubstring/ 2023-09-20T17:30:21,981 Given no hashes to check 1 links for project 'getsubstring': discarding no candidates 2023-09-20T17:30:21,999 Collecting getsubstring==1.0.10 2023-09-20T17:30:22,001 Created temporary directory: /tmp/pip-unpack-fvi0bxns 2023-09-20T17:30:22,214 Downloading GetSubString-1.0.10.tar.gz (5.0 kB) 2023-09-20T17:30:22,247 Added getsubstring==1.0.10 from https://files.pythonhosted.org/packages/22/3f/9cf64c33897353e4700b759f7982270313da4e9e467e06e289f11dc992f4/GetSubString-1.0.10.tar.gz to build tracker '/tmp/pip-build-tracker-0ehav121' 2023-09-20T17:30:22,249 Running setup.py (path:/tmp/pip-wheel-yxh09ksz/getsubstring_21910bc10e984b4ebbabdf1363d54e37/setup.py) egg_info for package getsubstring 2023-09-20T17:30:22,250 Created temporary directory: /tmp/pip-pip-egg-info-2r5_a_pu 2023-09-20T17:30:22,250 Preparing metadata (setup.py): started 2023-09-20T17:30:22,252 Running command python setup.py egg_info 2023-09-20T17:30:22,696 Traceback (most recent call last): 2023-09-20T17:30:22,697 File "", line 2, in 2023-09-20T17:30:22,697 File "", line 34, in 2023-09-20T17:30:22,698 File "/tmp/pip-wheel-yxh09ksz/getsubstring_21910bc10e984b4ebbabdf1363d54e37/setup.py", line 8, in 2023-09-20T17:30:22,699 INSTALL_REQUIRES = get_file_content_as_list("requirements.txt") 2023-09-20T17:30:22,700 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,701 File "/tmp/pip-wheel-yxh09ksz/getsubstring_21910bc10e984b4ebbabdf1363d54e37/getsubstr/setuptools.py", line 2, in get_file_content_as_list 2023-09-20T17:30:22,701 with open(file_path, "r", encoding="utf-8") as file: 2023-09-20T17:30:22,702 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,703 FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt' 2023-09-20T17:30:22,704 Found packages: ['getsubstr'] 2023-09-20T17:30:22,768 ERROR: [present-rich] python setup.py egg_info exited with 1 2023-09-20T17:30:22,781 [bold magenta]full command[/]: [blue]/usr/bin/python3 -c ' 2023-09-20T17:30:22,781 exec(compile('"'"''"'"''"'"' 2023-09-20T17:30:22,781 # This is -- a caller that pip uses to run setup.py 2023-09-20T17:30:22,781 # 2023-09-20T17:30:22,781 # - It imports setuptools before invoking setup.py, to enable projects that directly 2023-09-20T17:30:22,781 # import from `distutils.core` to work with newer packaging standards. 2023-09-20T17:30:22,781 # - It provides a clear error message when setuptools is not installed. 2023-09-20T17:30:22,781 # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so 2023-09-20T17:30:22,781 # setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning: 2023-09-20T17:30:22,781 # manifest_maker: standard file '"'"'-c'"'"' not found". 2023-09-20T17:30:22,781 # - It generates a shim setup.py, for handling setup.cfg-only projects. 2023-09-20T17:30:22,781 import os, sys, tokenize 2023-09-20T17:30:22,781 2023-09-20T17:30:22,781 try: 2023-09-20T17:30:22,781 import setuptools 2023-09-20T17:30:22,781 except ImportError as error: 2023-09-20T17:30:22,781 print( 2023-09-20T17:30:22,781 "ERROR: Can not execute `setup.py` since setuptools is not available in " 2023-09-20T17:30:22,781 "the build environment.", 2023-09-20T17:30:22,781 file=sys.stderr, 2023-09-20T17:30:22,781 ) 2023-09-20T17:30:22,781 sys.exit(1) 2023-09-20T17:30:22,781 2023-09-20T17:30:22,781 __file__ = %r 2023-09-20T17:30:22,781 sys.argv[0] = __file__ 2023-09-20T17:30:22,781 2023-09-20T17:30:22,781 if os.path.exists(__file__): 2023-09-20T17:30:22,781 filename = __file__ 2023-09-20T17:30:22,781 with tokenize.open(__file__) as f: 2023-09-20T17:30:22,781 setup_py_code = f.read() 2023-09-20T17:30:22,781 else: 2023-09-20T17:30:22,781 filename = "" 2023-09-20T17:30:22,781 setup_py_code = "from setuptools import setup; setup()" 2023-09-20T17:30:22,781 2023-09-20T17:30:22,781 exec(compile(setup_py_code, filename, "exec")) 2023-09-20T17:30:22,781 '"'"''"'"''"'"' % ('"'"'/tmp/pip-wheel-yxh09ksz/getsubstring_21910bc10e984b4ebbabdf1363d54e37/setup.py'"'"',), "", "exec"))' egg_info --egg-base /tmp/pip-pip-egg-info-2r5_a_pu[/] 2023-09-20T17:30:22,782 [bold magenta]cwd[/]: /tmp/pip-wheel-yxh09ksz/getsubstring_21910bc10e984b4ebbabdf1363d54e37/ 2023-09-20T17:30:22,783 Preparing metadata (setup.py): finished with status 'error' 2023-09-20T17:30:22,784 ERROR: [present-rich] metadata generation failed 2023-09-20T17:30:22,789 Exception information: 2023-09-20T17:30:22,789 Traceback (most recent call last): 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 64, in generate_metadata 2023-09-20T17:30:22,789 call_subprocess( 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/utils/subprocess.py", line 224, in call_subprocess 2023-09-20T17:30:22,789 raise error 2023-09-20T17:30:22,789 pip._internal.exceptions.InstallationSubprocessError: python setup.py egg_info exited with 1 2023-09-20T17:30:22,789 2023-09-20T17:30:22,789 The above exception was the direct cause of the following exception: 2023-09-20T17:30:22,789 2023-09-20T17:30:22,789 Traceback (most recent call last): 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper 2023-09-20T17:30:22,789 status = run_func(*args) 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/cli/req_command.py", line 248, in wrapper 2023-09-20T17:30:22,789 return func(self, options, args) 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/commands/wheel.py", line 147, in run 2023-09-20T17:30:22,789 requirement_set = resolver.resolve(reqs, check_supported_wheels=True) 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve 2023-09-20T17:30:22,789 result = self._result = resolver.resolve( 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve 2023-09-20T17:30:22,789 state = resolution.resolve(requirements, max_rounds=max_rounds) 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 397, in resolve 2023-09-20T17:30:22,789 self._add_to_criteria(self.state.criteria, r, parent=None) 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 173, in _add_to_criteria 2023-09-20T17:30:22,789 if not criterion.candidates: 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_vendor/resolvelib/structs.py", line 156, in __bool__ 2023-09-20T17:30:22,789 return bool(self._sequence) 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__ 2023-09-20T17:30:22,789 return any(self) 2023-09-20T17:30:22,789 ^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in 2023-09-20T17:30:22,789 return (c for c in iterator if id(c) not in self._incompatible_ids) 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built 2023-09-20T17:30:22,789 candidate = func() 2023-09-20T17:30:22,789 ^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link 2023-09-20T17:30:22,789 self._link_candidate_cache[link] = LinkCandidate( 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 293, in __init__ 2023-09-20T17:30:22,789 super().__init__( 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__ 2023-09-20T17:30:22,789 self.dist = self._prepare() 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 225, in _prepare 2023-09-20T17:30:22,789 dist = self._prepare_distribution() 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 304, in _prepare_distribution 2023-09-20T17:30:22,789 return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/operations/prepare.py", line 538, in prepare_linked_requirement 2023-09-20T17:30:22,789 return self._prepare_linked_requirement(req, parallel_builds) 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/operations/prepare.py", line 653, in _prepare_linked_requirement 2023-09-20T17:30:22,789 dist = _get_prepared_distribution( 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/operations/prepare.py", line 69, in _get_prepared_distribution 2023-09-20T17:30:22,789 abstract_dist.prepare_distribution_metadata( 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/distributions/sdist.py", line 61, in prepare_distribution_metadata 2023-09-20T17:30:22,789 self.req.prepare_metadata() 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/req/req_install.py", line 568, in prepare_metadata 2023-09-20T17:30:22,789 self.metadata_directory = generate_metadata_legacy( 2023-09-20T17:30:22,789 ^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-09-20T17:30:22,789 File "/usr/local/lib/python3.11/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 71, in generate_metadata 2023-09-20T17:30:22,789 raise MetadataGenerationFailed(package_details=details) from error 2023-09-20T17:30:22,789 pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed 2023-09-20T17:30:22,802 Removed getsubstring==1.0.10 from https://files.pythonhosted.org/packages/22/3f/9cf64c33897353e4700b759f7982270313da4e9e467e06e289f11dc992f4/GetSubString-1.0.10.tar.gz from build tracker '/tmp/pip-build-tracker-0ehav121' 2023-09-20T17:30:22,802 Removed build tracker: '/tmp/pip-build-tracker-0ehav121'