2025-09-14T02:50:54,087 Created temporary directory: /tmp/pip-build-tracker-n9ads699 2025-09-14T02:50:54,088 Initialized build tracking at /tmp/pip-build-tracker-n9ads699 2025-09-14T02:50:54,088 Created build tracker: /tmp/pip-build-tracker-n9ads699 2025-09-14T02:50:54,088 Entered build tracker: /tmp/pip-build-tracker-n9ads699 2025-09-14T02:50:54,088 Created temporary directory: /tmp/pip-wheel-e4ni_2rp 2025-09-14T02:50:54,092 Created temporary directory: /tmp/pip-ephem-wheel-cache-r34n3adg 2025-09-14T02:50:54,157 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-09-14T02:50:54,160 2 location(s) to search for versions of cnspy-spatial-csv-formats: 2025-09-14T02:50:54,160 * https://pypi.org/simple/cnspy-spatial-csv-formats/ 2025-09-14T02:50:54,160 * https://www.piwheels.org/simple/cnspy-spatial-csv-formats/ 2025-09-14T02:50:54,160 Fetching project page and analyzing links: https://pypi.org/simple/cnspy-spatial-csv-formats/ 2025-09-14T02:50:54,161 Getting page https://pypi.org/simple/cnspy-spatial-csv-formats/ 2025-09-14T02:50:54,162 Found index url https://pypi.org/simple/ 2025-09-14T02:50:54,320 Fetched page https://pypi.org/simple/cnspy-spatial-csv-formats/ as application/vnd.pypi.simple.v1+json 2025-09-14T02:50:54,322 Skipping link: No binaries permitted for cnspy-spatial-csv-formats: https://files.pythonhosted.org/packages/f1/cc/9140a8fce82efdb746c89d01b51d51a5e51e33f10c6a7f304da69a3eca19/cnspy_spatial_csv_formats-0.1.0-py3-none-any.whl (from https://pypi.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6) 2025-09-14T02:50:54,323 Found link https://files.pythonhosted.org/packages/be/8d/973dd6926a2a6659bfa15f9a2b8dc77bdde5f937e9f049c6fe9f15d3ee4e/cnspy_spatial_csv_formats-0.1.0.tar.gz (from https://pypi.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6), version: 0.1.0 2025-09-14T02:50:54,323 Skipping link: No binaries permitted for cnspy-spatial-csv-formats: https://files.pythonhosted.org/packages/97/2e/a33f23daa543c60f7e464a7ef449e2abcc4eff0b06333000d7b137a69647/cnspy_spatial_csv_formats-0.1.1-py3-none-any.whl (from https://pypi.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6) 2025-09-14T02:50:54,324 Found link https://files.pythonhosted.org/packages/3d/39/49b3ac79310ae51486ecf4d6002daacfc54dc51f9f22b3842776830a43e4/cnspy_spatial_csv_formats-0.1.1.tar.gz (from https://pypi.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6), version: 0.1.1 2025-09-14T02:50:54,324 Found link https://files.pythonhosted.org/packages/4b/c0/19f8c2e0d0eae8cd6533955ecb8319f3759c9ce0a550d2dba60612dd408a/cnspy_spatial_csv_formats-0.2.0.tar.gz (from https://pypi.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6), version: 0.2.0 2025-09-14T02:50:54,324 Skipping link: No binaries permitted for cnspy-spatial-csv-formats: https://files.pythonhosted.org/packages/b8/ad/3e89c03e33797eb5532e4787d3424d17f7229ce8593433d92fc3d4edc9d0/cnspy_spatial_csv_formats-0.2.1-py3-none-any.whl (from https://pypi.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6) 2025-09-14T02:50:54,325 Found link https://files.pythonhosted.org/packages/d2/e5/8d1051f30bbbb015efac41ff3d8356973aa3be971f4fba8e8d98fe6cb819/cnspy_spatial_csv_formats-0.2.1.tar.gz (from https://pypi.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6), version: 0.2.1 2025-09-14T02:50:54,325 Skipping link: No binaries permitted for cnspy-spatial-csv-formats: https://files.pythonhosted.org/packages/fd/95/915b596d9e10e39a4f05ade61761801cc2c53df191cd53beeeda8b9104bd/cnspy_spatial_csv_formats-0.2.2-py3-none-any.whl (from https://pypi.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6) 2025-09-14T02:50:54,325 Found link https://files.pythonhosted.org/packages/89/98/bfcf53284a8b831300ec9fb1ffbf5a8b15bef656d02bdd399d3290afd716/cnspy_spatial_csv_formats-0.2.2.tar.gz (from https://pypi.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6), version: 0.2.2 2025-09-14T02:50:54,326 Fetching project page and analyzing links: https://www.piwheels.org/simple/cnspy-spatial-csv-formats/ 2025-09-14T02:50:54,326 Getting page https://www.piwheels.org/simple/cnspy-spatial-csv-formats/ 2025-09-14T02:50:54,327 Found index url https://www.piwheels.org/simple/ 2025-09-14T02:50:54,431 Fetched page https://www.piwheels.org/simple/cnspy-spatial-csv-formats/ as text/html 2025-09-14T02:50:54,433 Skipping link: No binaries permitted for cnspy-spatial-csv-formats: https://archive1.piwheels.org/simple/cnspy-spatial-csv-formats/cnspy_spatial_csv_formats-0.2.2-py3-none-any.whl#sha256=d0daef2fd5aa9363b270024e44e34654eeee149bce8b31358f2cea3f3e0e1d5f (from https://www.piwheels.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6) 2025-09-14T02:50:54,433 Skipping link: No binaries permitted for cnspy-spatial-csv-formats: https://archive1.piwheels.org/simple/cnspy-spatial-csv-formats/cnspy_spatial_csv_formats-0.2.1-py3-none-any.whl#sha256=0c3c6c460df55de7fbe845aed6a509d69721b49c810cf4b3a0acd6dfa39ac16f (from https://www.piwheels.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6) 2025-09-14T02:50:54,433 Skipping link: No binaries permitted for cnspy-spatial-csv-formats: https://archive1.piwheels.org/simple/cnspy-spatial-csv-formats/cnspy_spatial_csv_formats-0.1.1-py3-none-any.whl#sha256=6d17c3a634500bca0479cb2849a18a2fc455016d3ec0a1ad8cfb940e35e1cc63 (from https://www.piwheels.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6) 2025-09-14T02:50:54,434 Skipping link: No binaries permitted for cnspy-spatial-csv-formats: https://archive1.piwheels.org/simple/cnspy-spatial-csv-formats/cnspy_spatial_csv_formats-0.1.0-py3-none-any.whl#sha256=e5cf3ffc1099a020a8e13760d4edd2129a9cd3533b20fc66910d344e2a9f1096 (from https://www.piwheels.org/simple/cnspy-spatial-csv-formats/) (requires-python:>=3.6) 2025-09-14T02:50:54,434 Skipping link: not a file: https://www.piwheels.org/simple/cnspy-spatial-csv-formats/ 2025-09-14T02:50:54,434 Skipping link: not a file: https://pypi.org/simple/cnspy-spatial-csv-formats/ 2025-09-14T02:50:54,461 Given no hashes to check 1 links for project 'cnspy-spatial-csv-formats': discarding no candidates 2025-09-14T02:50:54,463 Collecting cnspy-spatial-csv-formats==0.2.0 2025-09-14T02:50:54,464 Created temporary directory: /tmp/pip-unpack-vqdii91m 2025-09-14T02:50:54,611 Downloading cnspy_spatial_csv_formats-0.2.0.tar.gz (21 kB) 2025-09-14T02:50:54,645 Added cnspy-spatial-csv-formats==0.2.0 from https://files.pythonhosted.org/packages/4b/c0/19f8c2e0d0eae8cd6533955ecb8319f3759c9ce0a550d2dba60612dd408a/cnspy_spatial_csv_formats-0.2.0.tar.gz to build tracker '/tmp/pip-build-tracker-n9ads699' 2025-09-14T02:50:54,646 Running setup.py (path:/tmp/pip-wheel-e4ni_2rp/cnspy-spatial-csv-formats_53775d9d5f3d4a9fa1926f2a6143112d/setup.py) egg_info for package cnspy-spatial-csv-formats 2025-09-14T02:50:54,647 Created temporary directory: /tmp/pip-pip-egg-info-f52l4hf4 2025-09-14T02:50:54,647 Preparing metadata (setup.py): started 2025-09-14T02:50:54,648 Running command python setup.py egg_info 2025-09-14T02:50:55,214 Traceback (most recent call last): 2025-09-14T02:50:55,216 File "", line 2, in 2025-09-14T02:50:55,216 exec(compile(''' 2025-09-14T02:50:55,216 ~~~~^^^^^^^^^^^^ 2025-09-14T02:50:55,216 # This is -- a caller that pip uses to run setup.py 2025-09-14T02:50:55,216 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,216 ...<32 lines>... 2025-09-14T02:50:55,217 exec(compile(setup_py_code, filename, "exec")) 2025-09-14T02:50:55,217 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,217 ''' % ('/tmp/pip-wheel-e4ni_2rp/cnspy-spatial-csv-formats_53775d9d5f3d4a9fa1926f2a6143112d/setup.py',), "", "exec")) 2025-09-14T02:50:55,217 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,217 File "", line 35, in 2025-09-14T02:50:55,217 File "/tmp/pip-wheel-e4ni_2rp/cnspy-spatial-csv-formats_53775d9d5f3d4a9fa1926f2a6143112d/setup.py", line 13, in 2025-09-14T02:50:55,218 with open(path.join(here, 'RELEASE'), encoding='utf-8') as f: 2025-09-14T02:50:55,218 ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,218 FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-wheel-e4ni_2rp/cnspy-spatial-csv-formats_53775d9d5f3d4a9fa1926f2a6143112d/RELEASE' 2025-09-14T02:50:55,312 ERROR: python setup.py egg_info exited with 1 2025-09-14T02:50:55,326 [bold magenta]full command[/]: [blue]/usr/bin/python3 -c ' 2025-09-14T02:50:55,326 exec(compile('"'"''"'"''"'"' 2025-09-14T02:50:55,326 # This is -- a caller that pip uses to run setup.py 2025-09-14T02:50:55,326 # 2025-09-14T02:50:55,326 # - It imports setuptools before invoking setup.py, to enable projects that directly 2025-09-14T02:50:55,326 # import from `distutils.core` to work with newer packaging standards. 2025-09-14T02:50:55,326 # - It provides a clear error message when setuptools is not installed. 2025-09-14T02:50:55,326 # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so 2025-09-14T02:50:55,326 # setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning: 2025-09-14T02:50:55,326 # manifest_maker: standard file '"'"'-c'"'"' not found". 2025-09-14T02:50:55,326 # - It generates a shim setup.py, for handling setup.cfg-only projects. 2025-09-14T02:50:55,326 import os, sys, tokenize, traceback 2025-09-14T02:50:55,326 2025-09-14T02:50:55,326 try: 2025-09-14T02:50:55,326 import setuptools 2025-09-14T02:50:55,326 except ImportError: 2025-09-14T02:50:55,326 print( 2025-09-14T02:50:55,326 "ERROR: Can not execute `setup.py` since setuptools failed to import in " 2025-09-14T02:50:55,326 "the build environment with exception:", 2025-09-14T02:50:55,326 file=sys.stderr, 2025-09-14T02:50:55,326 ) 2025-09-14T02:50:55,326 traceback.print_exc() 2025-09-14T02:50:55,326 sys.exit(1) 2025-09-14T02:50:55,326 2025-09-14T02:50:55,326 __file__ = %r 2025-09-14T02:50:55,326 sys.argv[0] = __file__ 2025-09-14T02:50:55,326 2025-09-14T02:50:55,326 if os.path.exists(__file__): 2025-09-14T02:50:55,326 filename = __file__ 2025-09-14T02:50:55,326 with tokenize.open(__file__) as f: 2025-09-14T02:50:55,326 setup_py_code = f.read() 2025-09-14T02:50:55,326 else: 2025-09-14T02:50:55,326 filename = "" 2025-09-14T02:50:55,326 setup_py_code = "from setuptools import setup; setup()" 2025-09-14T02:50:55,326 2025-09-14T02:50:55,326 exec(compile(setup_py_code, filename, "exec")) 2025-09-14T02:50:55,326 '"'"''"'"''"'"' % ('"'"'/tmp/pip-wheel-e4ni_2rp/cnspy-spatial-csv-formats_53775d9d5f3d4a9fa1926f2a6143112d/setup.py'"'"',), "", "exec"))' egg_info --egg-base /tmp/pip-pip-egg-info-f52l4hf4[/] 2025-09-14T02:50:55,327 [bold magenta]cwd[/]: /tmp/pip-wheel-e4ni_2rp/cnspy-spatial-csv-formats_53775d9d5f3d4a9fa1926f2a6143112d/ 2025-09-14T02:50:55,327 Preparing metadata (setup.py): finished with status 'error' 2025-09-14T02:50:55,328 ERROR: metadata generation failed 2025-09-14T02:50:55,336 Exception information: 2025-09-14T02:50:55,336 Traceback (most recent call last): 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 63, in generate_metadata 2025-09-14T02:50:55,336 call_subprocess( 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~~~^ 2025-09-14T02:50:55,336 args, 2025-09-14T02:50:55,336 ^^^^^ 2025-09-14T02:50:55,336 ...<2 lines>... 2025-09-14T02:50:55,336 spinner=spinner, 2025-09-14T02:50:55,336 ^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 ) 2025-09-14T02:50:55,336 ^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/utils/subprocess.py", line 209, in call_subprocess 2025-09-14T02:50:55,336 raise error 2025-09-14T02:50:55,336 pip._internal.exceptions.InstallationSubprocessError: python setup.py egg_info exited with 1 2025-09-14T02:50:55,336 2025-09-14T02:50:55,336 The above exception was the direct cause of the following exception: 2025-09-14T02:50:55,336 2025-09-14T02:50:55,336 Traceback (most recent call last): 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper 2025-09-14T02:50:55,336 status = _inner_run() 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run 2025-09-14T02:50:55,336 return self.run(options, args) 2025-09-14T02:50:55,336 ~~~~~~~~^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 68, in wrapper 2025-09-14T02:50:55,336 return func(self, options, args) 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/commands/wheel.py", line 147, in run 2025-09-14T02:50:55,336 requirement_set = resolver.resolve(reqs, check_supported_wheels=True) 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 96, in resolve 2025-09-14T02:50:55,336 result = self._result = resolver.resolve( 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~~~~^ 2025-09-14T02:50:55,336 collected.requirements, max_rounds=limit_how_complex_resolution_can_be 2025-09-14T02:50:55,336 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 ) 2025-09-14T02:50:55,336 ^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 515, in resolve 2025-09-14T02:50:55,336 state = resolution.resolve(requirements, max_rounds=max_rounds) 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 388, in resolve 2025-09-14T02:50:55,336 self._add_to_criteria(self.state.criteria, r, parent=None) 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 141, in _add_to_criteria 2025-09-14T02:50:55,336 if not criterion.candidates: 2025-09-14T02:50:55,336 ^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/structs.py", line 194, in __bool__ 2025-09-14T02:50:55,336 return bool(self._sequence) 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 163, in __bool__ 2025-09-14T02:50:55,336 self._bool = any(self) 2025-09-14T02:50:55,336 ~~~^^^^^^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 147, in 2025-09-14T02:50:55,336 return (c for c in iterator if id(c) not in self._incompatible_ids) 2025-09-14T02:50:55,336 ^^^^^^^^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 37, in _iter_built 2025-09-14T02:50:55,336 candidate = func() 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 187, in _make_candidate_from_link 2025-09-14T02:50:55,336 base: Optional[BaseCandidate] = self._make_base_candidate_from_link( 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-14T02:50:55,336 link, template, name, version 2025-09-14T02:50:55,336 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 ) 2025-09-14T02:50:55,336 ^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 233, in _make_base_candidate_from_link 2025-09-14T02:50:55,336 self._link_candidate_cache[link] = LinkCandidate( 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~^ 2025-09-14T02:50:55,336 link, 2025-09-14T02:50:55,336 ^^^^^ 2025-09-14T02:50:55,336 ...<3 lines>... 2025-09-14T02:50:55,336 version=version, 2025-09-14T02:50:55,336 ^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 ) 2025-09-14T02:50:55,336 ^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 306, in __init__ 2025-09-14T02:50:55,336 super().__init__( 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~~~~^ 2025-09-14T02:50:55,336 link=link, 2025-09-14T02:50:55,336 ^^^^^^^^^^ 2025-09-14T02:50:55,336 ...<4 lines>... 2025-09-14T02:50:55,336 version=version, 2025-09-14T02:50:55,336 ^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 ) 2025-09-14T02:50:55,336 ^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 159, in __init__ 2025-09-14T02:50:55,336 self.dist = self._prepare() 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~^^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 236, in _prepare 2025-09-14T02:50:55,336 dist = self._prepare_distribution() 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 317, in _prepare_distribution 2025-09-14T02:50:55,336 return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 532, in prepare_linked_requirement 2025-09-14T02:50:55,336 return self._prepare_linked_requirement(req, parallel_builds) 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 647, in _prepare_linked_requirement 2025-09-14T02:50:55,336 dist = _get_prepared_distribution( 2025-09-14T02:50:55,336 req, 2025-09-14T02:50:55,336 ...<3 lines>... 2025-09-14T02:50:55,336 self.check_build_deps, 2025-09-14T02:50:55,336 ) 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution 2025-09-14T02:50:55,336 abstract_dist.prepare_distribution_metadata( 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-14T02:50:55,336 finder, build_isolation, check_build_deps 2025-09-14T02:50:55,336 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 ) 2025-09-14T02:50:55,336 ^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/distributions/sdist.py", line 69, in prepare_distribution_metadata 2025-09-14T02:50:55,336 self.req.prepare_metadata() 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~~~~~~~~~~~~~^^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 581, in prepare_metadata 2025-09-14T02:50:55,336 self.metadata_directory = generate_metadata_legacy( 2025-09-14T02:50:55,336 ~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-14T02:50:55,336 build_env=self.build_env, 2025-09-14T02:50:55,336 ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 ...<3 lines>... 2025-09-14T02:50:55,336 details=details, 2025-09-14T02:50:55,336 ^^^^^^^^^^^^^^^^ 2025-09-14T02:50:55,336 ) 2025-09-14T02:50:55,336 ^ 2025-09-14T02:50:55,336 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 70, in generate_metadata 2025-09-14T02:50:55,336 raise MetadataGenerationFailed(package_details=details) from error 2025-09-14T02:50:55,336 pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed 2025-09-14T02:50:55,364 Removed cnspy-spatial-csv-formats==0.2.0 from https://files.pythonhosted.org/packages/4b/c0/19f8c2e0d0eae8cd6533955ecb8319f3759c9ce0a550d2dba60612dd408a/cnspy_spatial_csv_formats-0.2.0.tar.gz from build tracker '/tmp/pip-build-tracker-n9ads699' 2025-09-14T02:50:55,364 Removed build tracker: '/tmp/pip-build-tracker-n9ads699'