2026-05-04T19:25:12,513 Created temporary directory: /tmp/pip-build-tracker-1ecelhx7 2026-05-04T19:25:12,514 Initialized build tracking at /tmp/pip-build-tracker-1ecelhx7 2026-05-04T19:25:12,514 Created build tracker: /tmp/pip-build-tracker-1ecelhx7 2026-05-04T19:25:12,514 Entered build tracker: /tmp/pip-build-tracker-1ecelhx7 2026-05-04T19:25:12,514 Created temporary directory: /tmp/pip-wheel-7qc7mdjy 2026-05-04T19:25:12,518 Created temporary directory: /tmp/pip-ephem-wheel-cache-suhnb6lp 2026-05-04T19:25:12,581 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-05-04T19:25:12,583 2 location(s) to search for versions of datagovsg: 2026-05-04T19:25:12,583 * https://pypi.org/simple/datagovsg/ 2026-05-04T19:25:12,583 * https://www.piwheels.org/simple/datagovsg/ 2026-05-04T19:25:12,584 Fetching project page and analyzing links: https://pypi.org/simple/datagovsg/ 2026-05-04T19:25:12,584 Getting page https://pypi.org/simple/datagovsg/ 2026-05-04T19:25:12,585 Found index url https://pypi.org/simple/ 2026-05-04T19:25:12,738 Fetched page https://pypi.org/simple/datagovsg/ as application/vnd.pypi.simple.v1+json 2026-05-04T19:25:12,743 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/ff/18/b45e243f71b381e649deac7c25521de7f11e3ca990c8f12c62cade6ed739/datagovsg-1.0-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:12,743 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/11/a4/bcf155a7eab4ce1a00fd3f3e21d94b3a63ef091465f9324b239e5729e395/datagovsg-1.0.0-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:12,744 Found link https://files.pythonhosted.org/packages/d4/2d/9ba3acc4d38fc1900a7e796aa440f403863ad145868a78ef4c2c6aafb71b/datagovsg-1.0.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3), version: 1.0 2026-05-04T19:25:12,745 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/39/80/6ae4878dac956b7956b36cea3430f7390778747ebf3060f4aa5cd0c3d043/datagovsg-1.0.1-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:12,745 Found link https://files.pythonhosted.org/packages/96/74/4d772aa791e4a2e669988f9cb0e806a75720c1ff488d0529d5ea66a0ea08/datagovsg-1.0.1.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3), version: 1.0.1 2026-05-04T19:25:12,745 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/c3/50/93f8101506db34acbc1a076297d21b0993c852c187152f9767577f0bccf0/datagovsg-1.0.2-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:12,746 Found link https://files.pythonhosted.org/packages/b5/2b/6a86b46e416f6d1580bed35ba932c7718eb6630b8e05079ed3c5bec10968/datagovsg-1.0.2.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3), version: 1.0.2 2026-05-04T19:25:12,746 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/a1/42/aff2b5ddfd34f714da1c8ba93a04d1b902c4aab177657130debce5f931b5/datagovsg-1.0.3-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:12,746 Found link https://files.pythonhosted.org/packages/ff/ea/1ec45a46717c46d6eb1c9508b905565a6a9ef1b9bcf74303e95dec51f4e8/datagovsg-1.0.3.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3), version: 1.0.3 2026-05-04T19:25:12,746 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/0d/ca/085277fa62fd0c0c92ea3c64f31f0899d8b4dc24a101ff5a1a55602d5a67/datagovsg-2.0.0-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13) 2026-05-04T19:25:12,747 Found link https://files.pythonhosted.org/packages/61/4b/2447a94a6b629937e113c6bedfd686171cd5b680595d469c946f63bcd4b5/datagovsg-2.0.0.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13), version: 2.0.0 2026-05-04T19:25:12,747 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/3e/b4/f6609e145835d90c90a264b93f96f209b8f627b9d0829d62e5fd62135fa1/datagovsg-2.1.0-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13) 2026-05-04T19:25:12,748 Found link https://files.pythonhosted.org/packages/64/04/52d97fb68acf16f41194d1d659b60f07083d24e0a43df096a0490e3a94de/datagovsg-2.1.0.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13), version: 2.1.0 2026-05-04T19:25:12,748 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/04/e3/03514409c260859528d0115753fb51d440b5939920fbb54d7018f4b1d2dc/datagovsg-2.2.0-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13) 2026-05-04T19:25:12,748 Found link https://files.pythonhosted.org/packages/63/e3/b3bd1df306d797d1b48ef8a34046fb7d5514fb8a2e22c754c5294b4d3f9d/datagovsg-2.2.0.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13), version: 2.2.0 2026-05-04T19:25:12,749 Fetching project page and analyzing links: https://www.piwheels.org/simple/datagovsg/ 2026-05-04T19:25:12,749 Getting page https://www.piwheels.org/simple/datagovsg/ 2026-05-04T19:25:12,750 Found index url https://www.piwheels.org/simple/ 2026-05-04T19:25:12,847 Fetched page https://www.piwheels.org/simple/datagovsg/ as text/html 2026-05-04T19:25:12,848 Skipping link: No binaries permitted for datagovsg: https://archive1.piwheels.org/simple/datagovsg/datagovsg-1.0.3-py3-none-any.whl#sha256=ae0b8f4dc6b4093cf2e37dedd5821f54178e422bc8f2c1782d2b070733ca7736 (from https://www.piwheels.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:12,848 Skipping link: No binaries permitted for datagovsg: https://archive1.piwheels.org/simple/datagovsg/datagovsg-1.0.2-py3-none-any.whl#sha256=01c57626602ea379d73b0242440076f90a3600e71dbacb132fe28212b5ee696e (from https://www.piwheels.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:12,849 Skipping link: No binaries permitted for datagovsg: https://archive1.piwheels.org/simple/datagovsg/datagovsg-1.0.1-py3-none-any.whl#sha256=eb71ead390652d5097aa96bc1a053269824042ec6c58a4d7790fef0f9d4987b9 (from https://www.piwheels.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:12,849 Skipping link: No binaries permitted for datagovsg: https://archive1.piwheels.org/simple/datagovsg/datagovsg-1.0-py3-none-any.whl#sha256=b4610b404e429f52000777b1a29a6a489981f465d5ed371fd383b48da611e069 (from https://www.piwheels.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:12,849 Skipping link: not a file: https://www.piwheels.org/simple/datagovsg/ 2026-05-04T19:25:12,849 Skipping link: not a file: https://pypi.org/simple/datagovsg/ 2026-05-04T19:25:12,873 Given no hashes to check 1 links for project 'datagovsg': discarding no candidates 2026-05-04T19:25:12,874 Collecting datagovsg==2.2.0 2026-05-04T19:25:12,876 Created temporary directory: /tmp/pip-unpack-57sk4q6k 2026-05-04T19:25:13,018 Downloading datagovsg-2.2.0.tar.gz (37 kB) 2026-05-04T19:25:13,133 Added datagovsg==2.2.0 from https://files.pythonhosted.org/packages/63/e3/b3bd1df306d797d1b48ef8a34046fb7d5514fb8a2e22c754c5294b4d3f9d/datagovsg-2.2.0.tar.gz to build tracker '/tmp/pip-build-tracker-1ecelhx7' 2026-05-04T19:25:13,137 Created temporary directory: /tmp/pip-build-env-6q_kxn5o 2026-05-04T19:25:13,142 Installing build dependencies: started 2026-05-04T19:25:13,143 Running command pip subprocess to install build dependencies 2026-05-04T19:25:14,289 Using pip 25.1.1 from /usr/lib/python3/dist-packages/pip (python 3.13) 2026-05-04T19:25:14,290 Non-user install by explicit request 2026-05-04T19:25:14,508 Created build tracker: /tmp/pip-build-tracker-1ecelhx7 2026-05-04T19:25:14,508 Entered build tracker: /tmp/pip-build-tracker-1ecelhx7 2026-05-04T19:25:14,511 Created temporary directory: /tmp/pip-install-2e8m8x31 2026-05-04T19:25:14,516 Created temporary directory: /tmp/pip-ephem-wheel-cache-tiujb1f1 2026-05-04T19:25:14,575 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-05-04T19:25:14,577 2 location(s) to search for versions of datagovsg: 2026-05-04T19:25:14,577 * https://pypi.org/simple/datagovsg/ 2026-05-04T19:25:14,577 * https://www.piwheels.org/simple/datagovsg/ 2026-05-04T19:25:14,578 Fetching project page and analyzing links: https://pypi.org/simple/datagovsg/ 2026-05-04T19:25:14,578 Getting page https://pypi.org/simple/datagovsg/ 2026-05-04T19:25:14,580 Found index url https://pypi.org/simple/ 2026-05-04T19:25:14,583 Looking up "https://pypi.org/simple/datagovsg/" in the cache 2026-05-04T19:25:14,583 Request header has "max_age" as 0, cache bypassed 2026-05-04T19:25:14,585 No cache entry available 2026-05-04T19:25:14,586 Starting new HTTPS connection (1): pypi.org:443 2026-05-04T19:25:14,658 https://pypi.org:443 "GET /simple/datagovsg/ HTTP/1.1" 200 2350 2026-05-04T19:25:14,662 Updating cache with response from "https://pypi.org/simple/datagovsg/" 2026-05-04T19:25:14,663 etag object cached for 1209600 seconds 2026-05-04T19:25:14,663 Caching due to etag 2026-05-04T19:25:14,675 Fetched page https://pypi.org/simple/datagovsg/ as application/vnd.pypi.simple.v1+json 2026-05-04T19:25:14,679 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/ff/18/b45e243f71b381e649deac7c25521de7f11e3ca990c8f12c62cade6ed739/datagovsg-1.0-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:14,680 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/11/a4/bcf155a7eab4ce1a00fd3f3e21d94b3a63ef091465f9324b239e5729e395/datagovsg-1.0.0-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:14,683 Found link https://files.pythonhosted.org/packages/d4/2d/9ba3acc4d38fc1900a7e796aa440f403863ad145868a78ef4c2c6aafb71b/datagovsg-1.0.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3), version: 1.0 2026-05-04T19:25:14,684 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/39/80/6ae4878dac956b7956b36cea3430f7390778747ebf3060f4aa5cd0c3d043/datagovsg-1.0.1-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:14,685 Found link https://files.pythonhosted.org/packages/96/74/4d772aa791e4a2e669988f9cb0e806a75720c1ff488d0529d5ea66a0ea08/datagovsg-1.0.1.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3), version: 1.0.1 2026-05-04T19:25:14,686 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/c3/50/93f8101506db34acbc1a076297d21b0993c852c187152f9767577f0bccf0/datagovsg-1.0.2-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:14,687 Found link https://files.pythonhosted.org/packages/b5/2b/6a86b46e416f6d1580bed35ba932c7718eb6630b8e05079ed3c5bec10968/datagovsg-1.0.2.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3), version: 1.0.2 2026-05-04T19:25:14,688 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/a1/42/aff2b5ddfd34f714da1c8ba93a04d1b902c4aab177657130debce5f931b5/datagovsg-1.0.3-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:14,688 Found link https://files.pythonhosted.org/packages/ff/ea/1ec45a46717c46d6eb1c9508b905565a6a9ef1b9bcf74303e95dec51f4e8/datagovsg-1.0.3.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3), version: 1.0.3 2026-05-04T19:25:14,689 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/0d/ca/085277fa62fd0c0c92ea3c64f31f0899d8b4dc24a101ff5a1a55602d5a67/datagovsg-2.0.0-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13) 2026-05-04T19:25:14,691 Found link https://files.pythonhosted.org/packages/61/4b/2447a94a6b629937e113c6bedfd686171cd5b680595d469c946f63bcd4b5/datagovsg-2.0.0.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13), version: 2.0.0 2026-05-04T19:25:14,692 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/3e/b4/f6609e145835d90c90a264b93f96f209b8f627b9d0829d62e5fd62135fa1/datagovsg-2.1.0-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13) 2026-05-04T19:25:14,693 Found link https://files.pythonhosted.org/packages/64/04/52d97fb68acf16f41194d1d659b60f07083d24e0a43df096a0490e3a94de/datagovsg-2.1.0.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13), version: 2.1.0 2026-05-04T19:25:14,694 Skipping link: No binaries permitted for datagovsg: https://files.pythonhosted.org/packages/04/e3/03514409c260859528d0115753fb51d440b5939920fbb54d7018f4b1d2dc/datagovsg-2.2.0-py3-none-any.whl (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13) 2026-05-04T19:25:14,694 Found link https://files.pythonhosted.org/packages/63/e3/b3bd1df306d797d1b48ef8a34046fb7d5514fb8a2e22c754c5294b4d3f9d/datagovsg-2.2.0.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13), version: 2.2.0 2026-05-04T19:25:14,695 Fetching project page and analyzing links: https://www.piwheels.org/simple/datagovsg/ 2026-05-04T19:25:14,696 Getting page https://www.piwheels.org/simple/datagovsg/ 2026-05-04T19:25:14,698 Found index url https://www.piwheels.org/simple/ 2026-05-04T19:25:14,699 Looking up "https://www.piwheels.org/simple/datagovsg/" in the cache 2026-05-04T19:25:14,700 Request header has "max_age" as 0, cache bypassed 2026-05-04T19:25:14,702 No cache entry available 2026-05-04T19:25:14,703 Starting new HTTPS connection (1): www.piwheels.org:443 2026-05-04T19:25:14,790 https://www.piwheels.org:443 "GET /simple/datagovsg/ HTTP/1.1" 200 438 2026-05-04T19:25:14,794 Updating cache with response from "https://www.piwheels.org/simple/datagovsg/" 2026-05-04T19:25:14,794 etag object cached for 1209600 seconds 2026-05-04T19:25:14,795 Caching due to etag 2026-05-04T19:25:14,802 Fetched page https://www.piwheels.org/simple/datagovsg/ as text/html 2026-05-04T19:25:14,805 Skipping link: No binaries permitted for datagovsg: https://archive1.piwheels.org/simple/datagovsg/datagovsg-1.0.3-py3-none-any.whl#sha256=ae0b8f4dc6b4093cf2e37dedd5821f54178e422bc8f2c1782d2b070733ca7736 (from https://www.piwheels.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:14,805 Skipping link: No binaries permitted for datagovsg: https://archive1.piwheels.org/simple/datagovsg/datagovsg-1.0.2-py3-none-any.whl#sha256=01c57626602ea379d73b0242440076f90a3600e71dbacb132fe28212b5ee696e (from https://www.piwheels.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:14,806 Skipping link: No binaries permitted for datagovsg: https://archive1.piwheels.org/simple/datagovsg/datagovsg-1.0.1-py3-none-any.whl#sha256=eb71ead390652d5097aa96bc1a053269824042ec6c58a4d7790fef0f9d4987b9 (from https://www.piwheels.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:14,807 Skipping link: No binaries permitted for datagovsg: https://archive1.piwheels.org/simple/datagovsg/datagovsg-1.0-py3-none-any.whl#sha256=b4610b404e429f52000777b1a29a6a489981f465d5ed371fd383b48da611e069 (from https://www.piwheels.org/simple/datagovsg/) (requires-python:>=3) 2026-05-04T19:25:14,808 Skipping link: not a file: https://www.piwheels.org/simple/datagovsg/ 2026-05-04T19:25:14,808 Skipping link: not a file: https://pypi.org/simple/datagovsg/ 2026-05-04T19:25:14,832 Given no hashes to check 7 links for project 'datagovsg': discarding no candidates 2026-05-04T19:25:14,835 Collecting datagovsg 2026-05-04T19:25:14,837 Created temporary directory: /tmp/pip-unpack-p9zwmyzm 2026-05-04T19:25:14,839 Looking up "https://files.pythonhosted.org/packages/63/e3/b3bd1df306d797d1b48ef8a34046fb7d5514fb8a2e22c754c5294b4d3f9d/datagovsg-2.2.0.tar.gz" in the cache 2026-05-04T19:25:14,843 No cache entry available 2026-05-04T19:25:14,843 No cache entry available 2026-05-04T19:25:14,845 Starting new HTTPS connection (1): files.pythonhosted.org:443 2026-05-04T19:25:14,910 https://files.pythonhosted.org:443 "GET /packages/63/e3/b3bd1df306d797d1b48ef8a34046fb7d5514fb8a2e22c754c5294b4d3f9d/datagovsg-2.2.0.tar.gz HTTP/1.1" 200 37243 2026-05-04T19:25:14,913 Downloading datagovsg-2.2.0.tar.gz (37 kB) 2026-05-04T19:25:14,921 Ignoring unknown cache-control directive: immutable 2026-05-04T19:25:14,922 Updating cache with response from "https://files.pythonhosted.org/packages/63/e3/b3bd1df306d797d1b48ef8a34046fb7d5514fb8a2e22c754c5294b4d3f9d/datagovsg-2.2.0.tar.gz" 2026-05-04T19:25:14,922 etag object cached for 1209600 seconds 2026-05-04T19:25:14,923 Caching due to etag 2026-05-04T19:25:15,058 ERROR: Exception: 2026-05-04T19:25:15,058 Traceback (most recent call last): 2026-05-04T19:25:15,058 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper 2026-05-04T19:25:15,058 status = _inner_run() 2026-05-04T19:25:15,058 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run 2026-05-04T19:25:15,058 return self.run(options, args) 2026-05-04T19:25:15,059 ~~~~~~~~^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,059 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 68, in wrapper 2026-05-04T19:25:15,059 return func(self, options, args) 2026-05-04T19:25:15,059 File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 387, in run 2026-05-04T19:25:15,059 requirement_set = resolver.resolve( 2026-05-04T19:25:15,059 reqs, check_supported_wheels=not options.target_dir 2026-05-04T19:25:15,059 ) 2026-05-04T19:25:15,059 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 96, in resolve 2026-05-04T19:25:15,060 result = self._result = resolver.resolve( 2026-05-04T19:25:15,060 ~~~~~~~~~~~~~~~~^ 2026-05-04T19:25:15,060 collected.requirements, max_rounds=limit_how_complex_resolution_can_be 2026-05-04T19:25:15,060 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,060 ) 2026-05-04T19:25:15,060 ^ 2026-05-04T19:25:15,060 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 515, in resolve 2026-05-04T19:25:15,060 state = resolution.resolve(requirements, max_rounds=max_rounds) 2026-05-04T19:25:15,060 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 388, in resolve 2026-05-04T19:25:15,061 self._add_to_criteria(self.state.criteria, r, parent=None) 2026-05-04T19:25:15,061 ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,061 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 141, in _add_to_criteria 2026-05-04T19:25:15,061 if not criterion.candidates: 2026-05-04T19:25:15,061 ^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,061 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/structs.py", line 194, in __bool__ 2026-05-04T19:25:15,061 return bool(self._sequence) 2026-05-04T19:25:15,061 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 163, in __bool__ 2026-05-04T19:25:15,061 self._bool = any(self) 2026-05-04T19:25:15,062 ~~~^^^^^^ 2026-05-04T19:25:15,062 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 147, in 2026-05-04T19:25:15,062 return (c for c in iterator if id(c) not in self._incompatible_ids) 2026-05-04T19:25:15,062 ^^^^^^^^ 2026-05-04T19:25:15,062 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 37, in _iter_built 2026-05-04T19:25:15,062 candidate = func() 2026-05-04T19:25:15,062 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 187, in _make_candidate_from_link 2026-05-04T19:25:15,062 base: Optional[BaseCandidate] = self._make_base_candidate_from_link( 2026-05-04T19:25:15,062 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2026-05-04T19:25:15,063 link, template, name, version 2026-05-04T19:25:15,063 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,063 ) 2026-05-04T19:25:15,063 ^ 2026-05-04T19:25:15,063 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 233, in _make_base_candidate_from_link 2026-05-04T19:25:15,063 self._link_candidate_cache[link] = LinkCandidate( 2026-05-04T19:25:15,063 ~~~~~~~~~~~~~^ 2026-05-04T19:25:15,063 link, 2026-05-04T19:25:15,063 ^^^^^ 2026-05-04T19:25:15,063 ...<3 lines>... 2026-05-04T19:25:15,064 version=version, 2026-05-04T19:25:15,064 ^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,064 ) 2026-05-04T19:25:15,064 ^ 2026-05-04T19:25:15,064 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 306, in __init__ 2026-05-04T19:25:15,064 super().__init__( 2026-05-04T19:25:15,064 ~~~~~~~~~~~~~~~~^ 2026-05-04T19:25:15,064 link=link, 2026-05-04T19:25:15,064 ^^^^^^^^^^ 2026-05-04T19:25:15,064 ...<4 lines>... 2026-05-04T19:25:15,065 version=version, 2026-05-04T19:25:15,065 ^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,065 ) 2026-05-04T19:25:15,065 ^ 2026-05-04T19:25:15,065 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 159, in __init__ 2026-05-04T19:25:15,065 self.dist = self._prepare() 2026-05-04T19:25:15,065 ~~~~~~~~~~~~~^^ 2026-05-04T19:25:15,065 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 236, in _prepare 2026-05-04T19:25:15,065 dist = self._prepare_distribution() 2026-05-04T19:25:15,066 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 317, in _prepare_distribution 2026-05-04T19:25:15,066 return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) 2026-05-04T19:25:15,066 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,066 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 532, in prepare_linked_requirement 2026-05-04T19:25:15,066 return self._prepare_linked_requirement(req, parallel_builds) 2026-05-04T19:25:15,066 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,066 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 647, in _prepare_linked_requirement 2026-05-04T19:25:15,066 dist = _get_prepared_distribution( 2026-05-04T19:25:15,066 req, 2026-05-04T19:25:15,066 ...<3 lines>... 2026-05-04T19:25:15,067 self.check_build_deps, 2026-05-04T19:25:15,067 ) 2026-05-04T19:25:15,067 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 70, in _get_prepared_distribution 2026-05-04T19:25:15,067 with build_tracker.track(req, tracker_id): 2026-05-04T19:25:15,067 ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,067 File "/usr/lib/python3.13/contextlib.py", line 141, in __enter__ 2026-05-04T19:25:15,067 return next(self.gen) 2026-05-04T19:25:15,067 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/build_tracker.py", line 136, in track 2026-05-04T19:25:15,067 self.add(req, tracker_id) 2026-05-04T19:25:15,067 ~~~~~~~~^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,068 File "/usr/lib/python3/dist-packages/pip/_internal/operations/build/build_tracker.py", line 102, in add 2026-05-04T19:25:15,068 raise LookupError(message) 2026-05-04T19:25:15,068 LookupError: https://files.pythonhosted.org/packages/63/e3/b3bd1df306d797d1b48ef8a34046fb7d5514fb8a2e22c754c5294b4d3f9d/datagovsg-2.2.0.tar.gz (from https://pypi.org/simple/datagovsg/) (requires-python:>=3.13) is already being built: datagovsg==2.2.0 from https://files.pythonhosted.org/packages/63/e3/b3bd1df306d797d1b48ef8a34046fb7d5514fb8a2e22c754c5294b4d3f9d/datagovsg-2.2.0.tar.gz 2026-05-04T19:25:15,068 Removed build tracker: '/tmp/pip-build-tracker-1ecelhx7' 2026-05-04T19:25:15,261 ERROR: pip subprocess to install build dependencies exited with 2 2026-05-04T19:25:15,273 [bold magenta]full command[/]: [blue]/usr/bin/python3 /usr/lib/python3/dist-packages/pip/__pip-runner__.py install --ignore-installed --no-user --prefix /tmp/pip-build-env-6q_kxn5o/overlay --no-warn-script-location --disable-pip-version-check --no-compile --target '' -vv --no-binary datagovsg --only-binary :none: -i https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple --prefer-binary -- datagovsg setuptools[/] 2026-05-04T19:25:15,273 [bold magenta]cwd[/]: \[inherit] 2026-05-04T19:25:15,273 Installing build dependencies: finished with status 'error' 2026-05-04T19:25:15,274 ERROR: pip subprocess to install build dependencies exited with 2 2026-05-04T19:25:15,278 Exception information: 2026-05-04T19:25:15,278 Traceback (most recent call last): 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper 2026-05-04T19:25:15,278 status = _inner_run() 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run 2026-05-04T19:25:15,278 return self.run(options, args) 2026-05-04T19:25:15,278 ~~~~~~~~^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 68, in wrapper 2026-05-04T19:25:15,278 return func(self, options, args) 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/commands/wheel.py", line 147, in run 2026-05-04T19:25:15,278 requirement_set = resolver.resolve(reqs, check_supported_wheels=True) 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 96, in resolve 2026-05-04T19:25:15,278 result = self._result = resolver.resolve( 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~~^ 2026-05-04T19:25:15,278 collected.requirements, max_rounds=limit_how_complex_resolution_can_be 2026-05-04T19:25:15,278 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 ) 2026-05-04T19:25:15,278 ^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 515, in resolve 2026-05-04T19:25:15,278 state = resolution.resolve(requirements, max_rounds=max_rounds) 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 388, in resolve 2026-05-04T19:25:15,278 self._add_to_criteria(self.state.criteria, r, parent=None) 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 141, in _add_to_criteria 2026-05-04T19:25:15,278 if not criterion.candidates: 2026-05-04T19:25:15,278 ^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_vendor/resolvelib/structs.py", line 194, in __bool__ 2026-05-04T19:25:15,278 return bool(self._sequence) 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 163, in __bool__ 2026-05-04T19:25:15,278 self._bool = any(self) 2026-05-04T19:25:15,278 ~~~^^^^^^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 147, in 2026-05-04T19:25:15,278 return (c for c in iterator if id(c) not in self._incompatible_ids) 2026-05-04T19:25:15,278 ^^^^^^^^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 37, in _iter_built 2026-05-04T19:25:15,278 candidate = func() 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 187, in _make_candidate_from_link 2026-05-04T19:25:15,278 base: Optional[BaseCandidate] = self._make_base_candidate_from_link( 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2026-05-04T19:25:15,278 link, template, name, version 2026-05-04T19:25:15,278 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 ) 2026-05-04T19:25:15,278 ^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 233, in _make_base_candidate_from_link 2026-05-04T19:25:15,278 self._link_candidate_cache[link] = LinkCandidate( 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~^ 2026-05-04T19:25:15,278 link, 2026-05-04T19:25:15,278 ^^^^^ 2026-05-04T19:25:15,278 ...<3 lines>... 2026-05-04T19:25:15,278 version=version, 2026-05-04T19:25:15,278 ^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 ) 2026-05-04T19:25:15,278 ^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 306, in __init__ 2026-05-04T19:25:15,278 super().__init__( 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~~^ 2026-05-04T19:25:15,278 link=link, 2026-05-04T19:25:15,278 ^^^^^^^^^^ 2026-05-04T19:25:15,278 ...<4 lines>... 2026-05-04T19:25:15,278 version=version, 2026-05-04T19:25:15,278 ^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 ) 2026-05-04T19:25:15,278 ^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 159, in __init__ 2026-05-04T19:25:15,278 self.dist = self._prepare() 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~^^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 236, in _prepare 2026-05-04T19:25:15,278 dist = self._prepare_distribution() 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 317, in _prepare_distribution 2026-05-04T19:25:15,278 return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 532, in prepare_linked_requirement 2026-05-04T19:25:15,278 return self._prepare_linked_requirement(req, parallel_builds) 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 647, in _prepare_linked_requirement 2026-05-04T19:25:15,278 dist = _get_prepared_distribution( 2026-05-04T19:25:15,278 req, 2026-05-04T19:25:15,278 ...<3 lines>... 2026-05-04T19:25:15,278 self.check_build_deps, 2026-05-04T19:25:15,278 ) 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution 2026-05-04T19:25:15,278 abstract_dist.prepare_distribution_metadata( 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2026-05-04T19:25:15,278 finder, build_isolation, check_build_deps 2026-05-04T19:25:15,278 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 ) 2026-05-04T19:25:15,278 ^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/distributions/sdist.py", line 46, in prepare_distribution_metadata 2026-05-04T19:25:15,278 self._prepare_build_backend(finder) 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/distributions/sdist.py", line 78, in _prepare_build_backend 2026-05-04T19:25:15,278 self.req.build_env.install_requirements( 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2026-05-04T19:25:15,278 finder, pyproject_requires, "overlay", kind="build dependencies" 2026-05-04T19:25:15,278 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 ) 2026-05-04T19:25:15,278 ^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/build_env.py", line 216, in install_requirements 2026-05-04T19:25:15,278 self._install_requirements( 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2026-05-04T19:25:15,278 get_runnable_pip(), 2026-05-04T19:25:15,278 ^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 ...<3 lines>... 2026-05-04T19:25:15,278 kind=kind, 2026-05-04T19:25:15,278 ^^^^^^^^^^ 2026-05-04T19:25:15,278 ) 2026-05-04T19:25:15,278 ^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/build_env.py", line 290, in _install_requirements 2026-05-04T19:25:15,278 call_subprocess( 2026-05-04T19:25:15,278 ~~~~~~~~~~~~~~~^ 2026-05-04T19:25:15,278 args, 2026-05-04T19:25:15,278 ^^^^^ 2026-05-04T19:25:15,278 command_desc=f"pip subprocess to install {kind}", 2026-05-04T19:25:15,278 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 spinner=spinner, 2026-05-04T19:25:15,278 ^^^^^^^^^^^^^^^^ 2026-05-04T19:25:15,278 ) 2026-05-04T19:25:15,278 ^ 2026-05-04T19:25:15,278 File "/usr/lib/python3/dist-packages/pip/_internal/utils/subprocess.py", line 209, in call_subprocess 2026-05-04T19:25:15,278 raise error 2026-05-04T19:25:15,278 pip._internal.exceptions.InstallationSubprocessError: pip subprocess to install build dependencies exited with 2 2026-05-04T19:25:15,298 Removed datagovsg==2.2.0 from https://files.pythonhosted.org/packages/63/e3/b3bd1df306d797d1b48ef8a34046fb7d5514fb8a2e22c754c5294b4d3f9d/datagovsg-2.2.0.tar.gz from build tracker '/tmp/pip-build-tracker-1ecelhx7' 2026-05-04T19:25:15,299 Removed build tracker: '/tmp/pip-build-tracker-1ecelhx7'