2025-09-08T04:48:25,420 Created temporary directory: /tmp/pip-build-tracker-n3gzjoty 2025-09-08T04:48:25,420 Initialized build tracking at /tmp/pip-build-tracker-n3gzjoty 2025-09-08T04:48:25,420 Created build tracker: /tmp/pip-build-tracker-n3gzjoty 2025-09-08T04:48:25,420 Entered build tracker: /tmp/pip-build-tracker-n3gzjoty 2025-09-08T04:48:25,421 Created temporary directory: /tmp/pip-wheel-p6f_ou70 2025-09-08T04:48:25,424 Created temporary directory: /tmp/pip-ephem-wheel-cache-p_anwgwa 2025-09-08T04:48:25,482 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-09-08T04:48:25,484 2 location(s) to search for versions of m2mclient: 2025-09-08T04:48:25,484 * https://pypi.org/simple/m2mclient/ 2025-09-08T04:48:25,484 * https://www.piwheels.org/simple/m2mclient/ 2025-09-08T04:48:25,485 Fetching project page and analyzing links: https://pypi.org/simple/m2mclient/ 2025-09-08T04:48:25,485 Getting page https://pypi.org/simple/m2mclient/ 2025-09-08T04:48:25,486 Found index url https://pypi.org/simple/ 2025-09-08T04:48:25,556 Fetched page https://pypi.org/simple/m2mclient/ as application/vnd.pypi.simple.v1+json 2025-09-08T04:48:25,558 Skipping link: No binaries permitted for m2mclient: https://files.pythonhosted.org/packages/f5/d5/718d2c47d8240089d52b65187a729d8d292131ccc586d4fcfecf8924dda6/m2mclient-0.0.1a0-py3-none-any.whl (from https://pypi.org/simple/m2mclient/) 2025-09-08T04:48:25,558 Found link https://files.pythonhosted.org/packages/22/bb/046d522d2d3c73b1480a11fc36bfe112674ab74c09c58654ac087cefe8f1/m2mclient-0.0.1a0.tar.gz (from https://pypi.org/simple/m2mclient/), version: 0.0.1a0 2025-09-08T04:48:25,558 Skipping link: No binaries permitted for m2mclient: https://files.pythonhosted.org/packages/72/22/389fb6ed2e7d33ea61612508989120f1c882d1b28cf08e3283224963708a/m2mclient-0.0.1-py2-none-any.whl (from https://pypi.org/simple/m2mclient/) 2025-09-08T04:48:25,559 Found link https://files.pythonhosted.org/packages/dc/34/812968c42f2863dc2a347e4bfd2c1d0393ffcabfbcb2b51dd4a53be9c717/m2mclient-0.0.1.tar.gz (from https://pypi.org/simple/m2mclient/), version: 0.0.1 2025-09-08T04:48:25,559 Skipping link: No binaries permitted for m2mclient: https://files.pythonhosted.org/packages/ee/da/cbc603a2ca80d761064c96cc793ac4d815c6092e8808ed48d7c0ca65c9cd/m2mclient-0.0.2a0-py2-none-any.whl (from https://pypi.org/simple/m2mclient/) 2025-09-08T04:48:25,559 Found link https://files.pythonhosted.org/packages/9d/b5/5907cc90221938cf394c57f9b3f2042ab1e21a24d6397826cdc7665c34e0/m2mclient-0.0.2a0.tar.gz (from https://pypi.org/simple/m2mclient/), version: 0.0.2a0 2025-09-08T04:48:25,559 Skipping link: No binaries permitted for m2mclient: https://files.pythonhosted.org/packages/82/15/5becac77fe63af2b3a22407f2db363d45674f02543f772982766a2f0f69c/m2mclient-0.0.2a1-py2-none-any.whl (from https://pypi.org/simple/m2mclient/) 2025-09-08T04:48:25,559 Found link https://files.pythonhosted.org/packages/ab/76/644d66cb03c29583804d7e67819a30487451211afe26a79a553f3682b664/m2mclient-0.0.2a1.tar.gz (from https://pypi.org/simple/m2mclient/), version: 0.0.2a1 2025-09-08T04:48:25,559 Skipping link: No binaries permitted for m2mclient: https://files.pythonhosted.org/packages/59/79/b0d0db0d99f4e5ca63c12e8b51c5137a5a70ac9546031e090f3e5478fc74/m2mclient-0.0.2-py2-none-any.whl (from https://pypi.org/simple/m2mclient/) 2025-09-08T04:48:25,560 Found link https://files.pythonhosted.org/packages/72/52/7ab4c781b64ce410de1979a18ba9160b1bde033adcaaa998868734695459/m2mclient-0.0.2.tar.gz (from https://pypi.org/simple/m2mclient/), version: 0.0.2 2025-09-08T04:48:25,560 Skipping link: No binaries permitted for m2mclient: https://files.pythonhosted.org/packages/04/10/7de1c24d99404f5724cb9f23f40c5a2b6ded178b58e78b7e60d705c6afd6/m2mclient-0.0.3-py2-none-any.whl (from https://pypi.org/simple/m2mclient/) 2025-09-08T04:48:25,560 Found link https://files.pythonhosted.org/packages/05/35/a43b6c31eebe04fb1efc5ae9f453851764816ebfc89eea0401fd4c8f4341/m2mclient-0.0.3.tar.gz (from https://pypi.org/simple/m2mclient/), version: 0.0.3 2025-09-08T04:48:25,560 Skipping link: No binaries permitted for m2mclient: https://files.pythonhosted.org/packages/5a/28/494d1ab965f7bdd6f5a6cbd4a2f787ea30aefc9b8717fe568a1ee472e8e8/m2mclient-0.0.4-py2-none-any.whl (from https://pypi.org/simple/m2mclient/) 2025-09-08T04:48:25,560 Found link https://files.pythonhosted.org/packages/ac/67/7bc5b8ddd7bfefa1493f1b1a2990343a1acd8c1b364cd07181c9b3b91346/m2mclient-0.0.4.tar.gz (from https://pypi.org/simple/m2mclient/), version: 0.0.4 2025-09-08T04:48:25,561 Fetching project page and analyzing links: https://www.piwheels.org/simple/m2mclient/ 2025-09-08T04:48:25,561 Getting page https://www.piwheels.org/simple/m2mclient/ 2025-09-08T04:48:25,562 Found index url https://www.piwheels.org/simple/ 2025-09-08T04:48:25,653 Fetched page https://www.piwheels.org/simple/m2mclient/ as text/html 2025-09-08T04:48:25,655 Skipping link: No binaries permitted for m2mclient: https://archive1.piwheels.org/simple/m2mclient/m2mclient-0.0.4-py3-none-any.whl#sha256=ec53ae7069a10cac2cba2bb79e62ec7f1eeea3f8fbce49d510608fc70dd597a7 (from https://www.piwheels.org/simple/m2mclient/) 2025-09-08T04:48:25,655 Skipping link: No binaries permitted for m2mclient: https://archive1.piwheels.org/simple/m2mclient/m2mclient-0.0.3-py3-none-any.whl#sha256=5307bfd8a0787cef997e517b6f233a1e7f726556de0fe07cfa35a07d9e919206 (from https://www.piwheels.org/simple/m2mclient/) 2025-09-08T04:48:25,655 Skipping link: No binaries permitted for m2mclient: https://archive1.piwheels.org/simple/m2mclient/m2mclient-0.0.2-py3-none-any.whl#sha256=58211a06f31bb7439f5e0f075ee9f96249de5c5fef53620b08bd2daa8512edb6 (from https://www.piwheels.org/simple/m2mclient/) 2025-09-08T04:48:25,655 Skipping link: No binaries permitted for m2mclient: https://archive1.piwheels.org/simple/m2mclient/m2mclient-0.0.2a1-py3-none-any.whl#sha256=707710f3733d249d8b63a628cd5c4791b05979aceecee9bf9e701a2db6df49e2 (from https://www.piwheels.org/simple/m2mclient/) 2025-09-08T04:48:25,656 Skipping link: No binaries permitted for m2mclient: https://archive1.piwheels.org/simple/m2mclient/m2mclient-0.0.1a0-py3-none-any.whl#sha256=888092f3592ab4ac16a6752800a6c0275d31fb1739a40e9854605963516a8b7a (from https://www.piwheels.org/simple/m2mclient/) 2025-09-08T04:48:25,656 Skipping link: not a file: https://www.piwheels.org/simple/m2mclient/ 2025-09-08T04:48:25,656 Skipping link: not a file: https://pypi.org/simple/m2mclient/ 2025-09-08T04:48:25,680 Given no hashes to check 1 links for project 'm2mclient': discarding no candidates 2025-09-08T04:48:25,681 Collecting m2mclient==0.0.2a0 2025-09-08T04:48:25,683 Created temporary directory: /tmp/pip-unpack-_eeqpdis 2025-09-08T04:48:25,819 Downloading m2mclient-0.0.2a0.tar.gz (10 kB) 2025-09-08T04:48:25,845 Added m2mclient==0.0.2a0 from https://files.pythonhosted.org/packages/9d/b5/5907cc90221938cf394c57f9b3f2042ab1e21a24d6397826cdc7665c34e0/m2mclient-0.0.2a0.tar.gz to build tracker '/tmp/pip-build-tracker-n3gzjoty' 2025-09-08T04:48:25,846 Running setup.py (path:/tmp/pip-wheel-p6f_ou70/m2mclient_d1fc24018d4a459abcfa3c840c1ed29d/setup.py) egg_info for package m2mclient 2025-09-08T04:48:25,846 Created temporary directory: /tmp/pip-pip-egg-info-qw2fec5n 2025-09-08T04:48:25,846 Preparing metadata (setup.py): started 2025-09-08T04:48:25,847 Running command python setup.py egg_info 2025-09-08T04:48:26,369 Traceback (most recent call last): 2025-09-08T04:48:26,370 File "", line 2, in 2025-09-08T04:48:26,370 exec(compile(''' 2025-09-08T04:48:26,370 ~~~~^^^^^^^^^^^^ 2025-09-08T04:48:26,370 # This is -- a caller that pip uses to run setup.py 2025-09-08T04:48:26,370 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,371 ...<32 lines>... 2025-09-08T04:48:26,371 exec(compile(setup_py_code, filename, "exec")) 2025-09-08T04:48:26,371 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,371 ''' % ('/tmp/pip-wheel-p6f_ou70/m2mclient_d1fc24018d4a459abcfa3c840c1ed29d/setup.py',), "", "exec")) 2025-09-08T04:48:26,371 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,371 File "", line 35, in 2025-09-08T04:48:26,371 File "/tmp/pip-wheel-p6f_ou70/m2mclient_d1fc24018d4a459abcfa3c840c1ed29d/setup.py", line 15, in 2025-09-08T04:48:26,371 with open('README.md') as f: 2025-09-08T04:48:26,372 ~~~~^^^^^^^^^^^^^ 2025-09-08T04:48:26,372 FileNotFoundError: [Errno 2] No such file or directory: 'README.md' 2025-09-08T04:48:26,455 ERROR: python setup.py egg_info exited with 1 2025-09-08T04:48:26,467 [bold magenta]full command[/]: [blue]/usr/bin/python3 -c ' 2025-09-08T04:48:26,467 exec(compile('"'"''"'"''"'"' 2025-09-08T04:48:26,467 # This is -- a caller that pip uses to run setup.py 2025-09-08T04:48:26,467 # 2025-09-08T04:48:26,467 # - It imports setuptools before invoking setup.py, to enable projects that directly 2025-09-08T04:48:26,467 # import from `distutils.core` to work with newer packaging standards. 2025-09-08T04:48:26,467 # - It provides a clear error message when setuptools is not installed. 2025-09-08T04:48:26,467 # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so 2025-09-08T04:48:26,467 # setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning: 2025-09-08T04:48:26,467 # manifest_maker: standard file '"'"'-c'"'"' not found". 2025-09-08T04:48:26,467 # - It generates a shim setup.py, for handling setup.cfg-only projects. 2025-09-08T04:48:26,467 import os, sys, tokenize, traceback 2025-09-08T04:48:26,467 2025-09-08T04:48:26,467 try: 2025-09-08T04:48:26,467 import setuptools 2025-09-08T04:48:26,467 except ImportError: 2025-09-08T04:48:26,467 print( 2025-09-08T04:48:26,467 "ERROR: Can not execute `setup.py` since setuptools failed to import in " 2025-09-08T04:48:26,467 "the build environment with exception:", 2025-09-08T04:48:26,467 file=sys.stderr, 2025-09-08T04:48:26,467 ) 2025-09-08T04:48:26,467 traceback.print_exc() 2025-09-08T04:48:26,467 sys.exit(1) 2025-09-08T04:48:26,467 2025-09-08T04:48:26,467 __file__ = %r 2025-09-08T04:48:26,467 sys.argv[0] = __file__ 2025-09-08T04:48:26,467 2025-09-08T04:48:26,467 if os.path.exists(__file__): 2025-09-08T04:48:26,467 filename = __file__ 2025-09-08T04:48:26,467 with tokenize.open(__file__) as f: 2025-09-08T04:48:26,467 setup_py_code = f.read() 2025-09-08T04:48:26,467 else: 2025-09-08T04:48:26,467 filename = "" 2025-09-08T04:48:26,467 setup_py_code = "from setuptools import setup; setup()" 2025-09-08T04:48:26,467 2025-09-08T04:48:26,467 exec(compile(setup_py_code, filename, "exec")) 2025-09-08T04:48:26,467 '"'"''"'"''"'"' % ('"'"'/tmp/pip-wheel-p6f_ou70/m2mclient_d1fc24018d4a459abcfa3c840c1ed29d/setup.py'"'"',), "", "exec"))' egg_info --egg-base /tmp/pip-pip-egg-info-qw2fec5n[/] 2025-09-08T04:48:26,467 [bold magenta]cwd[/]: /tmp/pip-wheel-p6f_ou70/m2mclient_d1fc24018d4a459abcfa3c840c1ed29d/ 2025-09-08T04:48:26,468 Preparing metadata (setup.py): finished with status 'error' 2025-09-08T04:48:26,469 ERROR: metadata generation failed 2025-09-08T04:48:26,475 Exception information: 2025-09-08T04:48:26,475 Traceback (most recent call last): 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 63, in generate_metadata 2025-09-08T04:48:26,475 call_subprocess( 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~~~^ 2025-09-08T04:48:26,475 args, 2025-09-08T04:48:26,475 ^^^^^ 2025-09-08T04:48:26,475 ...<2 lines>... 2025-09-08T04:48:26,475 spinner=spinner, 2025-09-08T04:48:26,475 ^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 ) 2025-09-08T04:48:26,475 ^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/utils/subprocess.py", line 209, in call_subprocess 2025-09-08T04:48:26,475 raise error 2025-09-08T04:48:26,475 pip._internal.exceptions.InstallationSubprocessError: python setup.py egg_info exited with 1 2025-09-08T04:48:26,475 2025-09-08T04:48:26,475 The above exception was the direct cause of the following exception: 2025-09-08T04:48:26,475 2025-09-08T04:48:26,475 Traceback (most recent call last): 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper 2025-09-08T04:48:26,475 status = _inner_run() 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run 2025-09-08T04:48:26,475 return self.run(options, args) 2025-09-08T04:48:26,475 ~~~~~~~~^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 68, in wrapper 2025-09-08T04:48:26,475 return func(self, options, args) 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/commands/wheel.py", line 147, in run 2025-09-08T04:48:26,475 requirement_set = resolver.resolve(reqs, check_supported_wheels=True) 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 96, in resolve 2025-09-08T04:48:26,475 result = self._result = resolver.resolve( 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~~~~^ 2025-09-08T04:48:26,475 collected.requirements, max_rounds=limit_how_complex_resolution_can_be 2025-09-08T04:48:26,475 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 ) 2025-09-08T04:48:26,475 ^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 515, in resolve 2025-09-08T04:48:26,475 state = resolution.resolve(requirements, max_rounds=max_rounds) 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 388, in resolve 2025-09-08T04:48:26,475 self._add_to_criteria(self.state.criteria, r, parent=None) 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 141, in _add_to_criteria 2025-09-08T04:48:26,475 if not criterion.candidates: 2025-09-08T04:48:26,475 ^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/structs.py", line 194, in __bool__ 2025-09-08T04:48:26,475 return bool(self._sequence) 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 163, in __bool__ 2025-09-08T04:48:26,475 self._bool = any(self) 2025-09-08T04:48:26,475 ~~~^^^^^^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 147, in 2025-09-08T04:48:26,475 return (c for c in iterator if id(c) not in self._incompatible_ids) 2025-09-08T04:48:26,475 ^^^^^^^^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 37, in _iter_built 2025-09-08T04:48:26,475 candidate = func() 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 187, in _make_candidate_from_link 2025-09-08T04:48:26,475 base: Optional[BaseCandidate] = self._make_base_candidate_from_link( 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-08T04:48:26,475 link, template, name, version 2025-09-08T04:48:26,475 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 ) 2025-09-08T04:48:26,475 ^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 233, in _make_base_candidate_from_link 2025-09-08T04:48:26,475 self._link_candidate_cache[link] = LinkCandidate( 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~^ 2025-09-08T04:48:26,475 link, 2025-09-08T04:48:26,475 ^^^^^ 2025-09-08T04:48:26,475 ...<3 lines>... 2025-09-08T04:48:26,475 version=version, 2025-09-08T04:48:26,475 ^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 ) 2025-09-08T04:48:26,475 ^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 306, in __init__ 2025-09-08T04:48:26,475 super().__init__( 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~~~~^ 2025-09-08T04:48:26,475 link=link, 2025-09-08T04:48:26,475 ^^^^^^^^^^ 2025-09-08T04:48:26,475 ...<4 lines>... 2025-09-08T04:48:26,475 version=version, 2025-09-08T04:48:26,475 ^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 ) 2025-09-08T04:48:26,475 ^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 159, in __init__ 2025-09-08T04:48:26,475 self.dist = self._prepare() 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~^^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 236, in _prepare 2025-09-08T04:48:26,475 dist = self._prepare_distribution() 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 317, in _prepare_distribution 2025-09-08T04:48:26,475 return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 532, in prepare_linked_requirement 2025-09-08T04:48:26,475 return self._prepare_linked_requirement(req, parallel_builds) 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 647, in _prepare_linked_requirement 2025-09-08T04:48:26,475 dist = _get_prepared_distribution( 2025-09-08T04:48:26,475 req, 2025-09-08T04:48:26,475 ...<3 lines>... 2025-09-08T04:48:26,475 self.check_build_deps, 2025-09-08T04:48:26,475 ) 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution 2025-09-08T04:48:26,475 abstract_dist.prepare_distribution_metadata( 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-08T04:48:26,475 finder, build_isolation, check_build_deps 2025-09-08T04:48:26,475 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 ) 2025-09-08T04:48:26,475 ^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/distributions/sdist.py", line 69, in prepare_distribution_metadata 2025-09-08T04:48:26,475 self.req.prepare_metadata() 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~~~~~~~~~~~~~^^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 581, in prepare_metadata 2025-09-08T04:48:26,475 self.metadata_directory = generate_metadata_legacy( 2025-09-08T04:48:26,475 ~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-08T04:48:26,475 build_env=self.build_env, 2025-09-08T04:48:26,475 ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 ...<3 lines>... 2025-09-08T04:48:26,475 details=details, 2025-09-08T04:48:26,475 ^^^^^^^^^^^^^^^^ 2025-09-08T04:48:26,475 ) 2025-09-08T04:48:26,475 ^ 2025-09-08T04:48:26,475 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 70, in generate_metadata 2025-09-08T04:48:26,475 raise MetadataGenerationFailed(package_details=details) from error 2025-09-08T04:48:26,475 pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed 2025-09-08T04:48:26,499 Removed m2mclient==0.0.2a0 from https://files.pythonhosted.org/packages/9d/b5/5907cc90221938cf394c57f9b3f2042ab1e21a24d6397826cdc7665c34e0/m2mclient-0.0.2a0.tar.gz from build tracker '/tmp/pip-build-tracker-n3gzjoty' 2025-09-08T04:48:26,499 Removed build tracker: '/tmp/pip-build-tracker-n3gzjoty'