2025-09-07T21:30:51,477 Created temporary directory: /tmp/pip-build-tracker-p2i4_6a4 2025-09-07T21:30:51,477 Initialized build tracking at /tmp/pip-build-tracker-p2i4_6a4 2025-09-07T21:30:51,478 Created build tracker: /tmp/pip-build-tracker-p2i4_6a4 2025-09-07T21:30:51,478 Entered build tracker: /tmp/pip-build-tracker-p2i4_6a4 2025-09-07T21:30:51,478 Created temporary directory: /tmp/pip-wheel-ay1zgnbp 2025-09-07T21:30:51,481 Created temporary directory: /tmp/pip-ephem-wheel-cache-kkk1l8oe 2025-09-07T21:30:51,541 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-09-07T21:30:51,543 2 location(s) to search for versions of kotti-contactform: 2025-09-07T21:30:51,543 * https://pypi.org/simple/kotti-contactform/ 2025-09-07T21:30:51,543 * https://www.piwheels.org/simple/kotti-contactform/ 2025-09-07T21:30:51,544 Fetching project page and analyzing links: https://pypi.org/simple/kotti-contactform/ 2025-09-07T21:30:51,544 Getting page https://pypi.org/simple/kotti-contactform/ 2025-09-07T21:30:51,545 Found index url https://pypi.org/simple/ 2025-09-07T21:30:51,692 Fetched page https://pypi.org/simple/kotti-contactform/ as application/vnd.pypi.simple.v1+json 2025-09-07T21:30:51,697 Found link https://files.pythonhosted.org/packages/f1/01/35adc469687baaf838cdc1b517a63e5e6e2892245ed8d2daa6ef5204e255/kotti_contactform-0.1.0b.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.1.0b 2025-09-07T21:30:51,698 Found link https://files.pythonhosted.org/packages/40/98/1004b32e4306b33274632e620a5ae937d446305f6bf5f38d85372e02d281/kotti_contactform-0.1.0b2.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.1.0b2 2025-09-07T21:30:51,698 Found link https://files.pythonhosted.org/packages/9c/08/175101fd8d7c58235e78834eeeec6a348e6398fd83979ea56c1aa0602c3d/kotti_contactform-0.1.0b3.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.1.0b3 2025-09-07T21:30:51,699 Found link https://files.pythonhosted.org/packages/31/a4/e1eb9cc787afe323515915a11db0778200befefca7f27db3ce023c947875/kotti_contactform-0.1.0b4.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.1.0b4 2025-09-07T21:30:51,699 Found link https://files.pythonhosted.org/packages/ea/a9/4559cd8befec3878b9262e519b966dd7c518702a4ddc3c314abb21a3137d/kotti_contactform-0.1.1a1.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.1.1a1 2025-09-07T21:30:51,700 Found link https://files.pythonhosted.org/packages/ae/68/8def1371b10b4e7ef0878c635a024a2b760452110be84e710fd9c553927b/kotti_contactform-0.1.1a2.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.1.1a2 2025-09-07T21:30:51,700 Found link https://files.pythonhosted.org/packages/7c/1c/15ca6036f71d27516521146d58e857dff7dce026d844d5548d5184a0070d/kotti_contactform-0.1.1a3.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.1.1a3 2025-09-07T21:30:51,701 Found link https://files.pythonhosted.org/packages/04/a7/870001cfadc677a8753baafd934a08038e37b7c4bde894e53486d5e4f3e4/kotti_contactform-0.1.1a4.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.1.1a4 2025-09-07T21:30:51,701 Found link https://files.pythonhosted.org/packages/f2/f5/0d8f43f736e7a0e34fab0d5cab3a3f8c04903b50288af82a28be2d7ea1af/kotti_contactform-0.1.1a5.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.1.1a5 2025-09-07T21:30:51,702 Found link https://files.pythonhosted.org/packages/6b/fc/6e310812b9470e46df57bc5d5a015b360cf56024601bd26e3d83704fe541/kotti_contactform-0.1.1.zip (from https://pypi.org/simple/kotti-contactform/), version: 0.1.1 2025-09-07T21:30:51,702 Found link https://files.pythonhosted.org/packages/24/f1/c2b4816b3e233bb5d7bfbe4e2dacea79674bfcd27a2c3c7e1c851250ad92/kotti_contactform-0.2.zip (from https://pypi.org/simple/kotti-contactform/), version: 0.2 2025-09-07T21:30:51,703 Found link https://files.pythonhosted.org/packages/00/6a/d9077b75a3ac6219dfcabcac20b789f546f527c7aacbd99f29ca80620e88/kotti_contactform-0.3.zip (from https://pypi.org/simple/kotti-contactform/), version: 0.3 2025-09-07T21:30:51,703 Found link https://files.pythonhosted.org/packages/c7/35/2247c93dc841b64bf5ba88b798d383352eeeb3d54d5392d9c3e799616eb3/kotti_contactform-0.4.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.4 2025-09-07T21:30:51,704 Found link https://files.pythonhosted.org/packages/be/b3/14aa6eb381bdad7c3c569c71716643f76618741c8771fa2fe00f151d55ff/kotti_contactform-0.4.1.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.4.1 2025-09-07T21:30:51,704 Found link https://files.pythonhosted.org/packages/87/47/dff5332f5379175ab46d92f9589bd3b0a7d2d8f58b2a72ec4bb7539173bc/kotti_contactform-0.5.tar.gz (from https://pypi.org/simple/kotti-contactform/), version: 0.5 2025-09-07T21:30:51,705 Found link https://files.pythonhosted.org/packages/b7/2f/b1aa3b4f02757c8b3a209c5ca1ec5a1006f5db9bbd7e315efc5b645fddd1/kotti_contactform-0.5.1.zip (from https://pypi.org/simple/kotti-contactform/), version: 0.5.1 2025-09-07T21:30:51,705 Fetching project page and analyzing links: https://www.piwheels.org/simple/kotti-contactform/ 2025-09-07T21:30:51,706 Getting page https://www.piwheels.org/simple/kotti-contactform/ 2025-09-07T21:30:51,708 Found index url https://www.piwheels.org/simple/ 2025-09-07T21:30:51,801 Fetched page https://www.piwheels.org/simple/kotti-contactform/ as text/html 2025-09-07T21:30:51,805 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.5.1-py3-none-any.whl#sha256=e4cafc16de2ae91ca4bedd8015ad648295b7af245ba1f2e59489bbdf32294ea1 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,805 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.5-py3-none-any.whl#sha256=f60d59582e570dc4e59866e9839c95f1de197e73017137a5af53d103b41d0b59 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,805 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.4.1-py3-none-any.whl#sha256=3da2aa34973a08a82f037350c7f6a2e326f356f61de19f643655ed4aa99ad8b1 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,806 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.4-py3-none-any.whl#sha256=a35526b9395c18c7c6faa276633d9a07f3d175bd949ca22331b5452d143d53ce (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,806 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.3-py3-none-any.whl#sha256=4be1369fcfd5e0f2589d084d7b41a3631acf5ac901b78aad2f7455384daeae88 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,806 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.2-py3-none-any.whl#sha256=877d0fde58178f6e5e41d24d9f579b0968ae0baaade01b1f30b4300c71da55d5 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,806 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.1.1-py3-none-any.whl#sha256=479e1c06596ef87cc029dfda435e460b0dc0d50cf0748c98ded7c326744208d6 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,806 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.1.1a5-py3-none-any.whl#sha256=70dc9615ba1c43651d901bf3324af3e4816bf9a346be0e37c4d2392dfb38d02e (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,806 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.1.1a4-py3-none-any.whl#sha256=bcf027c1d691e2841995e83109294d4fc19a46669c3f257c90e5f680ed4645b4 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,807 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.1.1a3-py3-none-any.whl#sha256=f17ae38a6b5d950d44134c5ac5053217355a104aa5ff5573918d09b1ff588152 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,807 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.1.1a2-py3-none-any.whl#sha256=a2cf14a6fc5d4e67adfa54cf8c1501f9388570d21609d0dca0be5e43aa0fcc1a (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,807 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.1.1a1-py3-none-any.whl#sha256=b6477219f24530c8da6150171891b05f62d9e11f0adb6d1e3e77b86290815582 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,807 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.1.0b4-py3-none-any.whl#sha256=cd65aff7014680eafbeddcd43d0fda5cc1b7b2bb94075f19fad86b5a806ab74f (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,807 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.1.0b2-py3-none-any.whl#sha256=25c8e00e8c0190d24b2b857ce460e59489334259f185342a4dde7d19d1189c17 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,807 Skipping link: No binaries permitted for kotti-contactform: https://archive1.piwheels.org/simple/kotti-contactform/kotti_contactform-0.1.0b0-py3-none-any.whl#sha256=b9a599981e1c7ae5ef0d99675fedbe4ca56fe33bd93a26eb9bc4eb52f96796e3 (from https://www.piwheels.org/simple/kotti-contactform/) 2025-09-07T21:30:51,808 Skipping link: not a file: https://www.piwheels.org/simple/kotti-contactform/ 2025-09-07T21:30:51,808 Skipping link: not a file: https://pypi.org/simple/kotti-contactform/ 2025-09-07T21:30:51,835 Given no hashes to check 1 links for project 'kotti-contactform': discarding no candidates 2025-09-07T21:30:51,836 Collecting kotti-contactform==0.1.0b3 2025-09-07T21:30:51,837 Created temporary directory: /tmp/pip-unpack-03w9g91t 2025-09-07T21:30:51,973 Downloading kotti_contactform-0.1.0b3.tar.gz (148 kB) 2025-09-07T21:30:52,031 Added kotti-contactform==0.1.0b3 from https://files.pythonhosted.org/packages/9c/08/175101fd8d7c58235e78834eeeec6a348e6398fd83979ea56c1aa0602c3d/kotti_contactform-0.1.0b3.tar.gz to build tracker '/tmp/pip-build-tracker-p2i4_6a4' 2025-09-07T21:30:52,032 Running setup.py (path:/tmp/pip-wheel-ay1zgnbp/kotti-contactform_b7ae0f48730c40e0a41e11c5cb9e97c0/setup.py) egg_info for package kotti-contactform 2025-09-07T21:30:52,032 Created temporary directory: /tmp/pip-pip-egg-info-i5booca6 2025-09-07T21:30:52,032 Preparing metadata (setup.py): started 2025-09-07T21:30:52,033 Running command python setup.py egg_info 2025-09-07T21:30:52,545 Traceback (most recent call last): 2025-09-07T21:30:52,547 File "", line 2, in 2025-09-07T21:30:52,547 exec(compile(''' 2025-09-07T21:30:52,547 ~~~~^^^^^^^^^^^^ 2025-09-07T21:30:52,547 # This is -- a caller that pip uses to run setup.py 2025-09-07T21:30:52,547 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,547 ...<32 lines>... 2025-09-07T21:30:52,548 exec(compile(setup_py_code, filename, "exec")) 2025-09-07T21:30:52,548 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,548 ''' % ('/tmp/pip-wheel-ay1zgnbp/kotti-contactform_b7ae0f48730c40e0a41e11c5cb9e97c0/setup.py',), "", "exec")) 2025-09-07T21:30:52,548 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,548 File "", line 35, in 2025-09-07T21:30:52,548 File "/tmp/pip-wheel-ay1zgnbp/kotti-contactform_b7ae0f48730c40e0a41e11c5cb9e97c0/setup.py", line 18, in 2025-09-07T21:30:52,548 CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() 2025-09-07T21:30:52,548 ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,549 FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-wheel-ay1zgnbp/kotti-contactform_b7ae0f48730c40e0a41e11c5cb9e97c0/CHANGES.txt' 2025-09-07T21:30:52,633 ERROR: python setup.py egg_info exited with 1 2025-09-07T21:30:52,645 [bold magenta]full command[/]: [blue]/usr/bin/python3 -c ' 2025-09-07T21:30:52,645 exec(compile('"'"''"'"''"'"' 2025-09-07T21:30:52,645 # This is -- a caller that pip uses to run setup.py 2025-09-07T21:30:52,645 # 2025-09-07T21:30:52,645 # - It imports setuptools before invoking setup.py, to enable projects that directly 2025-09-07T21:30:52,645 # import from `distutils.core` to work with newer packaging standards. 2025-09-07T21:30:52,645 # - It provides a clear error message when setuptools is not installed. 2025-09-07T21:30:52,645 # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so 2025-09-07T21:30:52,645 # setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning: 2025-09-07T21:30:52,645 # manifest_maker: standard file '"'"'-c'"'"' not found". 2025-09-07T21:30:52,645 # - It generates a shim setup.py, for handling setup.cfg-only projects. 2025-09-07T21:30:52,645 import os, sys, tokenize, traceback 2025-09-07T21:30:52,645 2025-09-07T21:30:52,645 try: 2025-09-07T21:30:52,645 import setuptools 2025-09-07T21:30:52,645 except ImportError: 2025-09-07T21:30:52,645 print( 2025-09-07T21:30:52,645 "ERROR: Can not execute `setup.py` since setuptools failed to import in " 2025-09-07T21:30:52,645 "the build environment with exception:", 2025-09-07T21:30:52,645 file=sys.stderr, 2025-09-07T21:30:52,645 ) 2025-09-07T21:30:52,645 traceback.print_exc() 2025-09-07T21:30:52,645 sys.exit(1) 2025-09-07T21:30:52,645 2025-09-07T21:30:52,645 __file__ = %r 2025-09-07T21:30:52,645 sys.argv[0] = __file__ 2025-09-07T21:30:52,645 2025-09-07T21:30:52,645 if os.path.exists(__file__): 2025-09-07T21:30:52,645 filename = __file__ 2025-09-07T21:30:52,645 with tokenize.open(__file__) as f: 2025-09-07T21:30:52,645 setup_py_code = f.read() 2025-09-07T21:30:52,645 else: 2025-09-07T21:30:52,645 filename = "" 2025-09-07T21:30:52,645 setup_py_code = "from setuptools import setup; setup()" 2025-09-07T21:30:52,645 2025-09-07T21:30:52,645 exec(compile(setup_py_code, filename, "exec")) 2025-09-07T21:30:52,645 '"'"''"'"''"'"' % ('"'"'/tmp/pip-wheel-ay1zgnbp/kotti-contactform_b7ae0f48730c40e0a41e11c5cb9e97c0/setup.py'"'"',), "", "exec"))' egg_info --egg-base /tmp/pip-pip-egg-info-i5booca6[/] 2025-09-07T21:30:52,646 [bold magenta]cwd[/]: /tmp/pip-wheel-ay1zgnbp/kotti-contactform_b7ae0f48730c40e0a41e11c5cb9e97c0/ 2025-09-07T21:30:52,646 Preparing metadata (setup.py): finished with status 'error' 2025-09-07T21:30:52,647 ERROR: metadata generation failed 2025-09-07T21:30:52,653 Exception information: 2025-09-07T21:30:52,653 Traceback (most recent call last): 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 63, in generate_metadata 2025-09-07T21:30:52,653 call_subprocess( 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~~~^ 2025-09-07T21:30:52,653 args, 2025-09-07T21:30:52,653 ^^^^^ 2025-09-07T21:30:52,653 ...<2 lines>... 2025-09-07T21:30:52,653 spinner=spinner, 2025-09-07T21:30:52,653 ^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 ) 2025-09-07T21:30:52,653 ^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/utils/subprocess.py", line 209, in call_subprocess 2025-09-07T21:30:52,653 raise error 2025-09-07T21:30:52,653 pip._internal.exceptions.InstallationSubprocessError: python setup.py egg_info exited with 1 2025-09-07T21:30:52,653 2025-09-07T21:30:52,653 The above exception was the direct cause of the following exception: 2025-09-07T21:30:52,653 2025-09-07T21:30:52,653 Traceback (most recent call last): 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper 2025-09-07T21:30:52,653 status = _inner_run() 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run 2025-09-07T21:30:52,653 return self.run(options, args) 2025-09-07T21:30:52,653 ~~~~~~~~^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 68, in wrapper 2025-09-07T21:30:52,653 return func(self, options, args) 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/commands/wheel.py", line 147, in run 2025-09-07T21:30:52,653 requirement_set = resolver.resolve(reqs, check_supported_wheels=True) 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 96, in resolve 2025-09-07T21:30:52,653 result = self._result = resolver.resolve( 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~~~~^ 2025-09-07T21:30:52,653 collected.requirements, max_rounds=limit_how_complex_resolution_can_be 2025-09-07T21:30:52,653 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 ) 2025-09-07T21:30:52,653 ^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 515, in resolve 2025-09-07T21:30:52,653 state = resolution.resolve(requirements, max_rounds=max_rounds) 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 388, in resolve 2025-09-07T21:30:52,653 self._add_to_criteria(self.state.criteria, r, parent=None) 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 141, in _add_to_criteria 2025-09-07T21:30:52,653 if not criterion.candidates: 2025-09-07T21:30:52,653 ^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/structs.py", line 194, in __bool__ 2025-09-07T21:30:52,653 return bool(self._sequence) 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 163, in __bool__ 2025-09-07T21:30:52,653 self._bool = any(self) 2025-09-07T21:30:52,653 ~~~^^^^^^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 147, in 2025-09-07T21:30:52,653 return (c for c in iterator if id(c) not in self._incompatible_ids) 2025-09-07T21:30:52,653 ^^^^^^^^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 37, in _iter_built 2025-09-07T21:30:52,653 candidate = func() 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 187, in _make_candidate_from_link 2025-09-07T21:30:52,653 base: Optional[BaseCandidate] = self._make_base_candidate_from_link( 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-07T21:30:52,653 link, template, name, version 2025-09-07T21:30:52,653 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 ) 2025-09-07T21:30:52,653 ^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 233, in _make_base_candidate_from_link 2025-09-07T21:30:52,653 self._link_candidate_cache[link] = LinkCandidate( 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~^ 2025-09-07T21:30:52,653 link, 2025-09-07T21:30:52,653 ^^^^^ 2025-09-07T21:30:52,653 ...<3 lines>... 2025-09-07T21:30:52,653 version=version, 2025-09-07T21:30:52,653 ^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 ) 2025-09-07T21:30:52,653 ^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 306, in __init__ 2025-09-07T21:30:52,653 super().__init__( 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~~~~^ 2025-09-07T21:30:52,653 link=link, 2025-09-07T21:30:52,653 ^^^^^^^^^^ 2025-09-07T21:30:52,653 ...<4 lines>... 2025-09-07T21:30:52,653 version=version, 2025-09-07T21:30:52,653 ^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 ) 2025-09-07T21:30:52,653 ^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 159, in __init__ 2025-09-07T21:30:52,653 self.dist = self._prepare() 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~^^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 236, in _prepare 2025-09-07T21:30:52,653 dist = self._prepare_distribution() 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 317, in _prepare_distribution 2025-09-07T21:30:52,653 return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 532, in prepare_linked_requirement 2025-09-07T21:30:52,653 return self._prepare_linked_requirement(req, parallel_builds) 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 647, in _prepare_linked_requirement 2025-09-07T21:30:52,653 dist = _get_prepared_distribution( 2025-09-07T21:30:52,653 req, 2025-09-07T21:30:52,653 ...<3 lines>... 2025-09-07T21:30:52,653 self.check_build_deps, 2025-09-07T21:30:52,653 ) 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution 2025-09-07T21:30:52,653 abstract_dist.prepare_distribution_metadata( 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-07T21:30:52,653 finder, build_isolation, check_build_deps 2025-09-07T21:30:52,653 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 ) 2025-09-07T21:30:52,653 ^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/distributions/sdist.py", line 69, in prepare_distribution_metadata 2025-09-07T21:30:52,653 self.req.prepare_metadata() 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~~~~~~~~~~~~~^^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 581, in prepare_metadata 2025-09-07T21:30:52,653 self.metadata_directory = generate_metadata_legacy( 2025-09-07T21:30:52,653 ~~~~~~~~~~~~~~~~~~~~~~~~^ 2025-09-07T21:30:52,653 build_env=self.build_env, 2025-09-07T21:30:52,653 ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 ...<3 lines>... 2025-09-07T21:30:52,653 details=details, 2025-09-07T21:30:52,653 ^^^^^^^^^^^^^^^^ 2025-09-07T21:30:52,653 ) 2025-09-07T21:30:52,653 ^ 2025-09-07T21:30:52,653 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 70, in generate_metadata 2025-09-07T21:30:52,653 raise MetadataGenerationFailed(package_details=details) from error 2025-09-07T21:30:52,653 pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed 2025-09-07T21:30:52,675 Removed kotti-contactform==0.1.0b3 from https://files.pythonhosted.org/packages/9c/08/175101fd8d7c58235e78834eeeec6a348e6398fd83979ea56c1aa0602c3d/kotti_contactform-0.1.0b3.tar.gz from build tracker '/tmp/pip-build-tracker-p2i4_6a4' 2025-09-07T21:30:52,675 Removed build tracker: '/tmp/pip-build-tracker-p2i4_6a4'