pdm-project / pdm

A modern Python package and dependency manager supporting the latest PEP standards
https://pdm-project.org
MIT License
7.02k stars 352 forks source link

Proxy (HTTP_PROXY) settings are ignored for custom Repositories #2880

Closed cscutcher closed 2 weeks ago

cscutcher commented 2 weeks ago

Make sure you run commands with -v flag before pasting the output.

Steps to reproduce

Set environment var like http_proxy, and then attempt to use a custom repository.

Actual behavior

The proxy specified in http_proxy is used to connect to custom repository.

Expected behavior

The proxy isn't used. In my case this results in httpx.ConnectError: [Errno 101] Network is unreachable when the unproxied connection fails to connect to a repository which is not accessible without the proxy.

strace confirms that there is no attempt to connect to the proxy when PDM runs.

Best guess

I see #2788 and #2798 are related to this. Unfortunately though, I don't believe #2798 entirely fixes the problem when there are explicit sources/repositories defined, due to the caching mechanism,

In httpx.Client the proxies argument is interpreted with;

        self._mounts: dict[URLPattern, BaseTransport | None] = {
            URLPattern(key): None
            if proxy is None
            else self._init_proxy_transport(
                proxy,
                verify=verify,
                cert=cert,
                http1=http1,
                http2=http2,
                limits=limits,
                trust_env=trust_env,
            )
            for key, proxy in proxy_map.items()
        }

however, I think as part of the caching mechanism, PDMPyPIClient appears to add a more specific mount for each source / repository, which adds a hishel.CacheTransport wrapping a standard unproxied httpx.HTTPTransport in _get_transport.

Reproduction

In order to see this happen clearly, one requires a private pypi repository only visible via a proxy. With this configuration any packages in the private repository fail with httpx.ConnectError: [Errno 101] Network is unreachable or similar. This is where I'm seeing the problem, but it's not easy to share that setup for reproduction.

The best simple reproduction steps I can think of instead attempts to force usage of the global pypi repository with an invalid proxy, which I assume should fail, but doesn't since the proxy settings are ignored.

In the below example, I believe added pyrepl should fail since I have


$ echo $HTTP_PROXY; echo $http_proxy; pdm --no-cache add pyrepl -vv
http://not-a-proxy:8888
http://not-a-proxy:8888
Adding packages to default dependencies: pyrepl
STATUS: Resolving dependencies
pdm.termui: ======== Start resolving requirements ========
pdm.termui:   pyrepl
pdm.termui:   python==3.11.*
pdm.termui:   Adding requirement pyrepl
unearth.collector: Collecting links from https://pypi.org/simple/pyrepl/
unearth.auth: Found index url https://pypi.org/simple/
unearth.collector: Fetching HTML page https://pypi.org/simple/pyrepl/
pdm.termui:     Found matching candidates:
pdm.termui:       <Candidate pyrepl@0.9.0 from https://pypi.org/simple/pyrepl/>
pdm.termui:       <Candidate pyrepl@0.8.4 from https://pypi.org/simple/pyrepl/>
pdm.termui:       <Candidate pyrepl@0.8.2 from https://pypi.org/simple/pyrepl/>
pdm.termui:   Adding requirement python==3.11.*
pdm.termui: ======== Starting round 0 ========
unearth.preparer: Downloading <Link https://files.pythonhosted.org/packages/05/1b/ea40363be0056080454cdbabe880773c3c5bd66d7b13f0c8b8b8c8da1e0c/pyrepl-0.9.0.tar.gz (from https://pypi.org/simple/pyrepl/)> (48 kB)
pdm.termui: Running PEP 517 backend to get metadata for <Link https://files.pythonhosted.org/packages/05/1b/ea40363be0056080454cdbabe880773c3c5bd66d7b13f0c8b8b8c8da1e0c/pyrepl-0.9.0.tar.gz (from https://pypi.org/simple/pyrepl/)>
pdm.termui: Preparing environment(Isolated mode) for PEP 517 build...
pdm.termui: ======== Start resolving requirements ========
pdm.termui:   setuptools>=40.8.0
pdm.termui:   wheel
pdm.termui:   python==3.11.7
pdm.termui:   Adding requirement setuptools>=40.8.0
unearth.collector: Collecting links from https://pypi.org/simple/setuptools/
unearth.auth: Found index url https://pypi.org/simple/
unearth.collector: Fetching HTML page https://pypi.org/simple/setuptools/
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/77/38/90cae8fd99c5dc402d25930e1c91f5fcf6de5c8e982fd152a5a061e3df56/setuptools-0.6b1-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6b1-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/1f/ab/1ed6131b5112d1d47cb89e1cbea08f783f0ed49d6fc795ed2ff63f84d20c/setuptools-0.6b1-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6b1-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/61/52/c84d22f3669ea8d4e54126f6241d7ed9828e3a382596f170043dfdaddbcc/setuptools-0.6b2-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6b2-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/9b/87/48c155a10c4561fe9b8a83dcf9361ddb9cc9ab5c3ed1b504ac12ab11ed6a/setuptools-0.6b2-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6b2-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/c3/13/a3129905c118a7004e4bbc6db2c24d73de9e15960fd749a61e16fb114f30/setuptools-0.6b3-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6b3-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/10/b3/7166e400d3b953fa4714f97806f077a3f7791cd48ea71df708814234283a/setuptools-0.6b3-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6b3-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/1c/d7/6927233caddaa4f466a8b957c94be00810e751edb2655283c04fc3b680f2/setuptools-0.6b4-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6b4-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/b3/79/8c94b6c99192df5f5d900ce17405cb5cfcdab8643d2e4aaf6ce1ee948576/setuptools-0.6b4-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6b4-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/54/f7/6f443db0df0a1706d8af3a8fa7d18528e5557f588cbddce7f7b47ff08ba5/setuptools-0.6c1-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c1-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/59/61/1ab6a87cec11ffb403280338aacc2c7a1e44eff0d7e431076fba1e61895e/setuptools-0.6c1-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c1-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/24/01/51f2d3ede491f51990b99ab0bfc5bad473c9b45fcf9b1c7b8c7bc3ff0e14/setuptools-0.6c2-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c2-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/64/c4/cb2718f8851517aba754c4f25d79f2a65430d4a4979375d78ea51f217123/setuptools-0.6c2-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c2-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/21/56/b48e6f7fa5a58e87a3b0761af2bedf2a6668c553ab4c39ee2646ef9597f7/setuptools-0.6c3-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c3-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/73/0d/239e2877d84df3231b5da63ff7358871f66eeab89458574247ebe7c427c7/setuptools-0.6c3-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c3-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/20/22/7e414402a50a263f15d1d7f0a469ba63aa1f2fb79e653a64732b3b18af48/setuptools-0.6c3-py2.5.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c3-py2.5.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/4b/02/33240ac22d7dc895c5d18119a7a4b7b97ca45f7436c2633840287c2c7a4e/setuptools-0.6c4-1.src.rpm (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c4-1.src.rpm
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/35/b8/00453469271120ea64d3c4da218dd83565f5b1d3e848371c13afa43bb58c/setuptools-0.6c4-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c4-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/00/5c/53f6b2cbe1f8344695eeb166e1906d573146fcb9f9f9ad116b7c4cf907ca/setuptools-0.6c4-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c4-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/ad/67/6764874b7091d4b5902de113b30ffc40713c3176908177c53c0ae3129fb9/setuptools-0.6c4-py2.5.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c4-py2.5.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/f4/d2/2be204269d952f712b433e9c27dc76b54dd2c3fcc38a085b561614d4a0bd/setuptools-0.6c4.win32-py2.3.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c4.win32-py2.3.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/3f/ee/f64f590be21ae82c6de485751596c540c24b218804fe19c1a936109bfec5/setuptools-0.6c4.win32-py2.4.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c4.win32-py2.4.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/b3/ee/650a6df344eb5cba091c2729764f44c7fa9309f2421c9518c8509a0b76f8/setuptools-0.6c4.win32-py2.5.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c4.win32-py2.5.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/c1/11/efc7f5f5d5d0d7b77030753469ab3173b41d7e92de9de9c384f0f9a3e95d/setuptools-0.6c5-1.src.rpm (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c5-1.src.rpm
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/b9/32/3797469c91a78e329cb2f73bedddd3a70cf688a91f484f35f65553ae853f/setuptools-0.6c5-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c5-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/e9/24/31abf427add2d867e16164ac0215f079f8d2a9a3f5fe9153906425b94fc2/setuptools-0.6c5-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c5-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/73/df/f68a5c3acd5e7f813d56cd147d713720ceb4ef7a2064c927c9d77fba2d61/setuptools-0.6c5-py2.5.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c5-py2.5.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/90/0a/43530fce7c099634d23b29735a590bb38635e97a069493b76d64ad476a7f/setuptools-0.6c5.win32-py2.3.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c5.win32-py2.3.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/84/cf/c588fd4bc0310edaf8e9a026447fa4a7210b5079f87aaf753cbe3be15b90/setuptools-0.6c5.win32-py2.4.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c5.win32-py2.4.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/06/5f/1f915846c47f2bdc62f96965af5ac5900e1280864c758f3cd64b1dcac58b/setuptools-0.6c5.win32-py2.5.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c5.win32-py2.5.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/5a/ee/8d3bbe7e760fa9759183ad8b56b8b92b573c5111639e0e740e0e1fd6e20f/setuptools-0.6c6-1.src.rpm (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c6-1.src.rpm
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/a1/d4/150ef1cb7fdf2f636e9c7847fd38a7704facb9216821bdd697c72573f065/setuptools-0.6c6-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c6-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/8c/80/0fdac5b7b6c17c5b347250798689e600111895017e3855e0db7238bcb7bc/setuptools-0.6c6-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c6-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/95/e6/98322b7ac8f1879196d4327a1a2d352802e6635d72496e6c4b4a2204f93e/setuptools-0.6c6-py2.5.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c6-py2.5.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/5b/13/459677b0ec718a3f5706d1e8175d4856f1bbadaa627628679d8a79e6db8c/setuptools-0.6c6.win32-py2.3.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c6.win32-py2.3.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/42/a9/dab94b4f97a399a4226414d48e4a39410c682578b97a3032bf9b81f079ce/setuptools-0.6c6.win32-py2.4.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c6.win32-py2.4.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/4c/c0/2ba74e7430d76ee173c9cda0711af98064a9fdbd558e14432f800e92e373/setuptools-0.6c6.win32-py2.5.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c6.win32-py2.5.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/16/47/b2f6126fc281f9822bf41a23f5dfbd8fc95d027ba5949ac2089e26ea2414/setuptools-0.6c7-1.src.rpm (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c7-1.src.rpm
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/99/7a/816dba79270f752523617b31f8d91d25df2a02ced79caa52a812e567817d/setuptools-0.6c7-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c7-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/25/98/dbfc23715d073aa65014e219b078c885ee478ee8266f37cf5beef2220434/setuptools-0.6c7-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c7-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/84/22/4aa617d74f0e3f320b651d04f0ea2468cac03daa5aab296888c5a36ed459/setuptools-0.6c7-py2.5.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c7-py2.5.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/0b/1b/2298438741c10969a34ea3523e8a009dccb4cbf9ed16ed6678eaf0043303/setuptools-0.6c7.win32-py2.3.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c7.win32-py2.3.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/c4/48/fc36c7b5e987b989ec3af3c4f741a9c2927e68020d4a71d7cbafea414bd7/setuptools-0.6c7.win32-py2.4.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c7.win32-py2.4.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/9a/e1/4858e7839df23e373b3b39a45f17f01f3a41c35c034cd8059124641a2a23/setuptools-0.6c7.win32-py2.5.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c7.win32-py2.5.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/b8/ac/75799ee665da8f826c4b494d46765f76a1c963fde9eb5dede05c2caccf38/setuptools-0.6c8-1.src.rpm (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c8-1.src.rpm
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/ae/d4/740611a1e12211e37eb235f8ff5913cd14e8573b2e1c2586a623ad405ad9/setuptools-0.6c8-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c8-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/8e/6b/c1cd58d373ce4d3c8d4cb61e2185c0b0ec58911eb742c0dca026ff1450ed/setuptools-0.6c8-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c8-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/b9/4c/1ccb5022fb94f3f8d5c90d2931e34d4208ea3aa0e7c4927d49c9e060e568/setuptools-0.6c8-py2.5.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c8-py2.5.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/da/1d/ec8ecc71d817000bfc86eaafe2af7984fe8a5c61c86abaf663bbef1ac7fa/setuptools-0.6c8.win32-py2.3.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c8.win32-py2.3.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/fa/f1/c2553c8095a7d430b39669081acfa8afecff686682e9fec8df3403495cd3/setuptools-0.6c8.win32-py2.4.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c8.win32-py2.4.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/2a/f9/359b6a4b6eafa7323522dd89e3765e2ea191a37d3a349d8363e6f49205b8/setuptools-0.6c8.win32-py2.5.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c8.win32-py2.5.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/36/8a/c70262c0c8f1c0e321f626fec1865ad2714f28cc3302aaa2c0588e89d866/setuptools-0.6c9-1.src.rpm (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c9-1.src.rpm
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/aa/6f/8a4d13d6d98c6b66fb675282be930e0f742565f5972701ff74a321b5d190/setuptools-0.6c9-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c9-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/fc/bf/4f539489c61c543752a4e738b818f8e8463c8d3771ad134e66f35c43d03f/setuptools-0.6c9-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c9-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/04/53/b56373f85a56ddc68e0c9177fdd2a88e87b37d91e636e09dbdfb958cc858/setuptools-0.6c9-py2.5.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c9-py2.5.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/0c/e8/10eed514d71c6f57d9d0eab2a8a7fc578fbcc4e8d464a19310857b93a97a/setuptools-0.6c9-py2.6.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c9-py2.6.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/34/34/3fbaed52feeed2f3e50867d40826f1e3a2d6fe1cb57b5069e932153c8849/setuptools-0.6c9.win32-py2.3.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c9.win32-py2.3.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/e3/0c/c1d6f2f4784dd62e9dc725fd849bd2d66c147644b0713030a28b06351a0e/setuptools-0.6c9.win32-py2.4.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c9.win32-py2.4.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/e1/cd/d6bad589187cb0c95ce7e5471932004ed40d7001424db431b3ac950719d8/setuptools-0.6c9.win32-py2.5.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c9.win32-py2.5.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/58/24/429cfabb3bad49f4f4d4222de00767596449207d9a399dbd6377596f5c98/setuptools-0.6c10-1.src.rpm (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c10-1.src.rpm
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/d0/37/ec64b158f71fce356be64c9a4d72412035fd09d3454a45de9d43ce68a1eb/setuptools-0.6c10-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c10-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/60/6c/ca66c3554907381fab74cad8d22d6d64d03da23322ad0b0b21c8c83cbabf/setuptools-0.6c10-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c10-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/15/33/a63a84b00931607d96e0f383d2575e5826b18893ff19f1ab622f8f4e03e9/setuptools-0.6c10-py2.5.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c10-py2.5.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/3c/93/52aa366f8341dbbcbf88f93bc253574ded15dfaec66fe9d5a5b57f0584b9/setuptools-0.6c10-py2.6.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c10-py2.6.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/09/a2/4d6d8597c939c46e5b5ad28c30cb555dea9fda539524116dbd7289cb37ec/setuptools-0.6c10.win32-py2.3.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c10.win32-py2.3.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/9d/e7/23646cf93d499043999e1847e7207623bea0faae8ffdf6cd4c0978622744/setuptools-0.6c10.win32-py2.4.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c10.win32-py2.4.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/63/41/a274e2ce80087f5a07bc48ea6dd3476d767c37fb9001f56400beb68c4ca2/setuptools-0.6c10.win32-py2.5.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c10.win32-py2.5.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/7f/ba/a094b22ecc74374f040d944aa770d74e81f835e5380b0b18898b7c0f995c/setuptools-0.6c10.win32-py2.6.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c10.win32-py2.6.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/1e/b7/a4639da3c762e3162b23b439ed8d91076499464dce2f35e4826d1e2b3559/setuptools-0.6c11-1.src.rpm (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11-1.src.rpm
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/70/68/bbf97a2f73e8253a87ff7d1b73c94e1bf0bf1900ed8e5fd7bf98180f4483/setuptools-0.6c11-py2.3.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11-py2.3.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/f0/5d/2edc5f4af10151e80251678f7a7c5130578b16116e2f31e03bf75459bb7f/setuptools-0.6c11-py2.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11-py2.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/98/d3/ed3bc7e3f4b143092862dab99d984261ac4be6a40d4fb1e66d2a10e9ea99/setuptools-0.6c11-py2.5.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11-py2.5.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/53/36/970486f83d2fdcc1b5bac53f8aab5af71b81dcbf786d887e923a9962343f/setuptools-0.6c11-py2.6.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11-py2.6.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/25/5d/cc55d39ac39383dd6e04ae80501b9af3cc455be64740ad68a4e12ec81b00/setuptools-0.6c11-py2.7.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/5a/2f/f77682b48b0b50274bd7ab826de90521c4b7e7d8479da06030d29e015205/setuptools-0.6c11.win32-py2.3.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11.win32-py2.3.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/8c/28/f3ee69ca5cd4d243f592c6045f443743904e07e8f95d7d5948198149cbaa/setuptools-0.6c11.win32-py2.4.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11.win32-py2.4.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/4c/29/23ecf8af775fa80bbc175c52e6bc4f79284579af37ac1692bbb5f8f2d61d/setuptools-0.6c11.win32-py2.5.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11.win32-py2.5.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/69/dd/153cafc26d351949ca56ae0c9259b69eeeca8dac9a5aeabe7eef8f86a311/setuptools-0.6c11.win32-py2.6.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11.win32-py2.6.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/1c/cd/e68c430415ab4baefb97dea7ba14eaa68eeb47d778456ffbc1f437229660/setuptools-0.6c11.win32-py2.7.exe (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-0.6c11.win32-py2.7.exe
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/89/ea/4fb7162ef9244471947676d549ef1603c67dfd257427c0549b51357a1e5a/setuptools-18.3.1-py3.4.egg (from https://pypi.org/simple/setuptools/)>: Unsupported archive format: setuptools-18.3.1-py3.4.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/6e/77/e921ae5c370698762cf645797f42e6d4d7e679f705a8a9697234591808aa/setuptools-51.1.0.post20201221-py3-none-any.whl (from https://pypi.org/simple/setuptools/)>: Yanked due to pypa/setuptools#2500
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/dc/10/903b6f02c98789b1341c9ba61f72ca2d37340f79239e8e8fe2cc9d79c2d7/setuptools-51.1.0.post20201221.tar.gz (from https://pypi.org/simple/setuptools/)>: Yanked due to pypa/setuptools#2500
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/9d/d2/182e27182d7f61274787e5f0a737f06ad6ad35f27e6b60fed6b8de23b6f5/setuptools-59.1.0-py3-none-any.whl (from https://pypi.org/simple/setuptools/)>: Yanked due to https://github.com/pypa/setuptools/issues/2885
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/07/88/717b307b2c7833fb8d13457f6bc6a2b368070c9cfec3abbbab7693537776/setuptools-59.1.0.tar.gz (from https://pypi.org/simple/setuptools/)>: Yanked due to https://github.com/pypa/setuptools/issues/2885
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/eb/0a/d86dd882b2087570ab9cb86c67e720e1bef7532597b467c2909b3930af3c/setuptools-60.3.0-py3-none-any.whl (from https://pypi.org/simple/setuptools/)>: Yanked due to https://github.com/pypa/setuptools/issues/3002
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/af/34/508a2cc1af07a20ec7542f489734917d15ccaddb67fa09358ea34a4d749b/setuptools-60.3.0.tar.gz (from https://pypi.org/simple/setuptools/)>: Yanked due to https://github.com/pypa/setuptools/issues/3002
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/9a/4b/7b8a217633a4eda8fdf06233a38804adf3c281287728daddef031d15b635/setuptools-69.3.0-py3-none-any.whl (from https://pypi.org/simple/setuptools/)>: Yanked due to https://github.com/pypa/setuptools/issues/4302
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/5f/dd/50c569f342bc5d22142e2fc5fab1822d256202f404a384f05541f703f2ff/setuptools-69.3.tar.gz (from https://pypi.org/simple/setuptools/)>: Yanked due to https://github.com/pypa/setuptools/issues/4302
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/cf/2e/988b6fb453899ed638bd99a48f97c3fb57897b8c6b83e439ad781733ef7d/setuptools-69.4.0-py3-none-any.whl (from https://pypi.org/simple/setuptools/)>: Yanked due to https://github.com/pypa/setuptools/issues/4302
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/7a/12/dc02a2401dac87cb2d3ea8d3b23eab30db4cd2948d5b048bf912b9fe959a/setuptools-69.4.tar.gz (from https://pypi.org/simple/setuptools/)>: Yanked due to https://github.com/pypa/setuptools/issues/4302
pdm.termui:     Found matching candidates:
pdm.termui:       <Candidate setuptools@69.5.1 from https://pypi.org/simple/setuptools/>
pdm.termui:       <Candidate setuptools@69.5.0 from https://pypi.org/simple/setuptools/>
pdm.termui:       <Candidate setuptools@69.4.2 from https://pypi.org/simple/setuptools/>
pdm.termui:       <Candidate setuptools@69.4.1 from https://pypi.org/simple/setuptools/>
pdm.termui:       <Candidate setuptools@69.3.1 from https://pypi.org/simple/setuptools/>
pdm.termui:       <Candidate setuptools@69.2.0 from https://pypi.org/simple/setuptools/>
pdm.termui:       <Candidate setuptools@69.1.1 from https://pypi.org/simple/setuptools/>
pdm.termui:       <Candidate setuptools@69.1.0 from https://pypi.org/simple/setuptools/>
pdm.termui:       <Candidate setuptools@69.0.3 from https://pypi.org/simple/setuptools/>
pdm.termui:       <Candidate setuptools@69.0.2 from https://pypi.org/simple/setuptools/>
pdm.termui:       ... [more]
pdm.termui:   Adding requirement wheel
unearth.collector: Collecting links from https://pypi.org/simple/wheel/
unearth.auth: Found index url https://pypi.org/simple/
unearth.collector: Fetching HTML page https://pypi.org/simple/wheel/
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/0b/86/3c1687aba2d15cec12ed2dc9bb5276e9fb6d3d43ce7376e91fabdb400c0a/wheel-0.8-py27-none-any.whl (from https://pypi.org/simple/wheel/)>: none of the wheel tags(py27-none-any) are compatible
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/98/53/d87853d5490feb0ec9295e645ce0fa631ed95c2020d3411103561563e045/wheel-0.9-py27-none-any.whl (from https://pypi.org/simple/wheel/)>: none of the wheel tags(py27-none-any) are compatible
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/34/da/0fb28917ed602bda9807eda0e9a9202a53d97a2b2ae4b0392fd9015dbcfd/wheel-0.9.6-py27-none-any.whl (from https://pypi.org/simple/wheel/)>: none of the wheel tags(py27-none-any) are compatible
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/9a/2a/4a9de088db2a97bf5eec6f274875c369c50d634eb2096efccf80902e6d33/wheel-0.9.7-py27-none-any.whl (from https://pypi.org/simple/wheel/)>: none of the wheel tags(py27-none-any) are compatible
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/bb/ae/02bad7c64ca060e037869584242729796a5eda0376bb944a3e03f4d9491b/wheel-0.38.0-py3-none-any.whl (from https://pypi.org/simple/wheel/)>: Yanked due to Circular dependency with setuptools on --no-binary=:all:
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/46/57/f39f082f448205ec06a771fe30eec77ed650c0c8e3f7d7f193e12efb4fd4/wheel-0.38.0.tar.gz (from https://pypi.org/simple/wheel/)>: Yanked due to Circular dependency with setuptools on --no-binary=:all:
pdm.termui:     Found matching candidates:
pdm.termui:       <Candidate wheel@0.43.0 from https://pypi.org/simple/wheel/>
pdm.termui:       <Candidate wheel@0.42.0 from https://pypi.org/simple/wheel/>
pdm.termui:       <Candidate wheel@0.41.3 from https://pypi.org/simple/wheel/>
pdm.termui:       <Candidate wheel@0.41.2 from https://pypi.org/simple/wheel/>
pdm.termui:       <Candidate wheel@0.41.1 from https://pypi.org/simple/wheel/>
pdm.termui:       <Candidate wheel@0.41.0 from https://pypi.org/simple/wheel/>
pdm.termui:       <Candidate wheel@0.40.0 from https://pypi.org/simple/wheel/>
pdm.termui:       <Candidate wheel@0.38.4 from https://pypi.org/simple/wheel/>
pdm.termui:       <Candidate wheel@0.38.3 from https://pypi.org/simple/wheel/>
pdm.termui:       <Candidate wheel@0.38.2 from https://pypi.org/simple/wheel/>
pdm.termui:       ... [more]
pdm.termui:   Adding requirement python==3.11.7
pdm.termui: ======== Starting round 0 ========
pdm.termui: Pinning: python None
pdm.termui: ======== Ending round 0 ========
pdm.termui: ======== Starting round 1 ========
pdm.termui: Pinning: setuptools 69.5.1
pdm.termui: ======== Ending round 1 ========
pdm.termui: ======== Starting round 2 ========
pdm.termui: Pinning: wheel 0.43.0
pdm.termui: ======== Ending round 2 ========
pdm.termui: ======== Starting round 3 ========
pdm.termui: ======== Resolution Result ========
pdm.termui: Stable pins:
pdm.termui:       python None
pdm.termui:   setuptools 69.5.1
pdm.termui:        wheel 0.43.0
pdm.termui: Installing setuptools@69.5.1...
unearth.preparer: Downloading <Link https://files.pythonhosted.org/packages/f7/29/13965af254e3373bceae8fb9a0e6ea0d0e571171b80d6646932131d6439b/setuptools-69.5.1-py3-none-any.whl (from https://pypi.org/simple/setuptools/)> (894 kB)
pdm.termui: Installing wheel@0.43.0...
unearth.preparer: Downloading <Link https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl (from https://pypi.org/simple/wheel/)> (65 kB)
pdm.termui: Synchronization complete.
pdm.termui: running egg_info
pdm.termui: writing pyrepl.egg-info/PKG-INFO
pdm.termui: writing dependency_links to pyrepl.egg-info/dependency_links.txt
pdm.termui: writing top-level names to pyrepl.egg-info/top_level.txt
pdm.termui: reading manifest file 'pyrepl.egg-info/SOURCES.txt'
pdm.termui: reading manifest template 'MANIFEST.in'
pdm.termui: warning: no files found matching 'encopyright.py'
pdm.termui: adding license file 'LICENSE'
pdm.termui: writing manifest file 'pyrepl.egg-info/SOURCES.txt'
pdm.termui: running dist_info
pdm.termui: creating /tmp/pdm-meta-88fme8py/pyrepl.egg-info
pdm.termui: writing /tmp/pdm-meta-88fme8py/pyrepl.egg-info/PKG-INFO
pdm.termui: writing dependency_links to /tmp/pdm-meta-88fme8py/pyrepl.egg-info/dependency_links.txt
pdm.termui: writing top-level names to /tmp/pdm-meta-88fme8py/pyrepl.egg-info/top_level.txt
pdm.termui: writing manifest file '/tmp/pdm-meta-88fme8py/pyrepl.egg-info/SOURCES.txt'
pdm.termui: reading manifest file '/tmp/pdm-meta-88fme8py/pyrepl.egg-info/SOURCES.txt'
pdm.termui: reading manifest template 'MANIFEST.in'
pdm.termui: warning: no files found matching 'encopyright.py'
pdm.termui: adding license file 'LICENSE'
pdm.termui: writing manifest file '/tmp/pdm-meta-88fme8py/pyrepl.egg-info/SOURCES.txt'
pdm.termui: creating '/tmp/pdm-meta-88fme8py/pyrepl-0.9.0.dist-info'
STATUS: Resolving: new pin python==3.11.*
pdm.termui: Pinning: python None
pdm.termui: ======== Ending round 0 ========
pdm.termui: ======== Starting round 1 ========
STATUS: Resolving: new pin pyrepl 0.9.0
pdm.termui: Pinning: pyrepl 0.9.0
pdm.termui: ======== Ending round 1 ========
pdm.termui: ======== Starting round 2 ========
pdm.termui: ======== Resolution Result ========
pdm.termui: Stable pins:
pdm.termui:   python None
pdm.termui:   pyrepl 0.9.0
STATUS: Fetching hashes for resolved packages...
unearth.collector: Collecting links from https://pypi.org/simple/pyrepl/
unearth.evaluator: Skipping package Package(name='pyrepl', version='0.8.4'): version doesn't match ==0.9.0
unearth.evaluator: Skipping package Package(name='pyrepl', version='0.8.2'): version doesn't match ==0.9.0
pdm.termui: Fetching hashes for pyrepl@0.9.0
pdm.termui: Using hash in link for https://files.pythonhosted.org/packages/05/1b/ea40363be0056080454cdbabe880773c3c5bd66d7b13f0c8b8b8c8da1e0c/pyrepl-0.9.0.tar.gz
🔒 Lock successful
Changes are written to pyproject.toml.
STATUS: Resolving packages from lockfile...
Synchronizing working set with resolved packages: 1 to add, 0 to update, 0 to remove

unearth.collector: Collecting links from https://pypi.org/simple/pyrepl/
pdm.termui: Using cached response for https://files.pythonhosted.org/packages/05/1b/ea40363be0056080454cdbabe880773c3c5bd66d7b13f0c8b8b8c8da1e0c/pyrepl-0.9.0.tar.gz
unearth.preparer: Downloading <Link https://files.pythonhosted.org/packages/05/1b/ea40363be0056080454cdbabe880773c3c5bd66d7b13f0c8b8b8c8da1e0c/pyrepl-0.9.0.tar.gz (from https://pypi.org/simple/pyrepl/)> (48 kB)
pdm.termui: Preparing environment(Isolated mode) for PEP 517 build...
pdm.termui: Reusing shared build env: /tmp/pdm-build-env-izm0ibq3-shared
pdm.termui: Saving wheel to cache: <Link https://files.pythonhosted.org/packages/05/1b/ea40363be0056080454cdbabe880773c3c5bd66d7b13f0c8b8b8c8da1e0c/pyrepl-0.9.0.tar.gz (from https://pypi.org/simple/pyrepl/)>
pdm.termui: Running PEP 517 backend to build a wheel for <Link https://files.pythonhosted.org/packages/05/1b/ea40363be0056080454cdbabe880773c3c5bd66d7b13f0c8b8b8c8da1e0c/pyrepl-0.9.0.tar.gz (from https://pypi.org/simple/pyrepl/)>
pdm.termui: running egg_info
pdm.termui: writing pyrepl.egg-info/PKG-INFO
pdm.termui: writing dependency_links to pyrepl.egg-info/dependency_links.txt
pdm.termui: writing top-level names to pyrepl.egg-info/top_level.txt
pdm.termui: reading manifest file 'pyrepl.egg-info/SOURCES.txt'
pdm.termui: reading manifest template 'MANIFEST.in'
pdm.termui: warning: no files found matching 'encopyright.py'
pdm.termui: adding license file 'LICENSE'
pdm.termui: writing manifest file 'pyrepl.egg-info/SOURCES.txt'
pdm.termui: running bdist_wheel
pdm.termui: running build
pdm.termui: running build_py
pdm.termui: creating build
pdm.termui: creating build/lib
pdm.termui: creating build/lib/pyrepl
pdm.termui: copying pyrepl/console.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/trace.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/commands.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/completer.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/module_lister.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/historical_reader.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/input.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/keymaps.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/pygame_console.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/readline.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/fancy_termios.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/keymap.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/unix_console.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/simple_interact.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/curses.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/completing_reader.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/cmdrepl.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/__init__.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/unix_eventqueue.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/reader.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/python_reader.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/pygame_keymap.py -> build/lib/pyrepl
pdm.termui: copying pyrepl/_minimal_curses.py -> build/lib/pyrepl
pdm.termui: running build_scripts
pdm.termui: creating build/scripts-3.11
pdm.termui: copying and adjusting pythoni -> build/scripts-3.11
pdm.termui: copying and adjusting pythoni1 -> build/scripts-3.11
pdm.termui: changing mode of build/scripts-3.11/pythoni from 666 to 777
pdm.termui: changing mode of build/scripts-3.11/pythoni1 from 666 to 777
pdm.termui: installing to build/bdist.linux-x86_64/wheel
pdm.termui: running install
pdm.termui: running install_lib
pdm.termui: creating build/bdist.linux-x86_64
pdm.termui: creating build/bdist.linux-x86_64/wheel
pdm.termui: creating build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/console.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/trace.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/commands.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/completer.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/module_lister.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/historical_reader.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/input.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/keymaps.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/pygame_console.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/readline.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/fancy_termios.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/keymap.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/unix_console.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/simple_interact.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/curses.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/completing_reader.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/cmdrepl.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/__init__.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/unix_eventqueue.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/reader.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/python_reader.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/pygame_keymap.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: copying build/lib/pyrepl/_minimal_curses.py -> build/bdist.linux-x86_64/wheel/pyrepl
pdm.termui: running install_egg_info
pdm.termui: running egg_info
pdm.termui: writing pyrepl.egg-info/PKG-INFO
pdm.termui: writing dependency_links to pyrepl.egg-info/dependency_links.txt
pdm.termui: writing top-level names to pyrepl.egg-info/top_level.txt
pdm.termui: reading manifest file 'pyrepl.egg-info/SOURCES.txt'
pdm.termui: reading manifest template 'MANIFEST.in'
pdm.termui: warning: no files found matching 'encopyright.py'
pdm.termui: adding license file 'LICENSE'
pdm.termui: writing manifest file 'pyrepl.egg-info/SOURCES.txt'
pdm.termui: Copying pyrepl.egg-info to build/bdist.linux-x86_64/wheel/pyrepl-0.9.0-py3.11.egg-info
pdm.termui: running install_scripts
pdm.termui: creating build/bdist.linux-x86_64/wheel/pyrepl-0.9.0.data
pdm.termui: creating build/bdist.linux-x86_64/wheel/pyrepl-0.9.0.data/scripts
pdm.termui: copying build/scripts-3.11/pythoni -> build/bdist.linux-x86_64/wheel/pyrepl-0.9.0.data/scripts
pdm.termui: copying build/scripts-3.11/pythoni1 -> build/bdist.linux-x86_64/wheel/pyrepl-0.9.0.data/scripts
pdm.termui: changing mode of build/bdist.linux-x86_64/wheel/pyrepl-0.9.0.data/scripts/pythoni to 777
pdm.termui: changing mode of build/bdist.linux-x86_64/wheel/pyrepl-0.9.0.data/scripts/pythoni1 to 777
pdm.termui: creating build/bdist.linux-x86_64/wheel/pyrepl-0.9.0.dist-info/WHEEL
pdm.termui: creating '/tmp/pdm-cache-d0ijxh2e/wheels/11/68/85/ad70f21c418bd18d6234d2cee5111c9b8da59eb943584635ae/.tmp-pomu9jik/pyrepl-0.9.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
pdm.termui: adding 'pyrepl/__init__.py'
pdm.termui: adding 'pyrepl/_minimal_curses.py'
pdm.termui: adding 'pyrepl/cmdrepl.py'
pdm.termui: adding 'pyrepl/commands.py'
pdm.termui: adding 'pyrepl/completer.py'
pdm.termui: adding 'pyrepl/completing_reader.py'
pdm.termui: adding 'pyrepl/console.py'
pdm.termui: adding 'pyrepl/curses.py'
pdm.termui: adding 'pyrepl/fancy_termios.py'
pdm.termui: adding 'pyrepl/historical_reader.py'
pdm.termui: adding 'pyrepl/input.py'
pdm.termui: adding 'pyrepl/keymap.py'
pdm.termui: adding 'pyrepl/keymaps.py'
pdm.termui: adding 'pyrepl/module_lister.py'
pdm.termui: adding 'pyrepl/pygame_console.py'
pdm.termui: adding 'pyrepl/pygame_keymap.py'
pdm.termui: adding 'pyrepl/python_reader.py'
pdm.termui: adding 'pyrepl/reader.py'
pdm.termui: adding 'pyrepl/readline.py'
pdm.termui: adding 'pyrepl/simple_interact.py'
pdm.termui: adding 'pyrepl/trace.py'
pdm.termui: adding 'pyrepl/unix_console.py'
pdm.termui: adding 'pyrepl/unix_eventqueue.py'
pdm.termui: adding 'pyrepl-0.9.0.data/scripts/pythoni'
pdm.termui: adding 'pyrepl-0.9.0.data/scripts/pythoni1'
pdm.termui: adding 'pyrepl-0.9.0.dist-info/LICENSE'
pdm.termui: adding 'pyrepl-0.9.0.dist-info/METADATA'
pdm.termui: adding 'pyrepl-0.9.0.dist-info/WHEEL'
pdm.termui: adding 'pyrepl-0.9.0.dist-info/top_level.txt'
pdm.termui: adding 'pyrepl-0.9.0.dist-info/RECORD'
pdm.termui: removing build/bdist.linux-x86_64/wheel
  ✔ Install pyrepl 0.9.0 successful

🎉 All complete!

$ cat pyproject.toml
[project]
name = "example"
version = "0.1.0"
description = "Default template for PDM package"
authors = [
    {name = "Chris Scutcher", email = "chris@scutcher.uk"},
]
dependencies = [
    "pyrepl>=0.9.0",
]
requires-python = "==3.11.*"
readme = "README.md"
license = {text = "MIT"}

[tool.pdm]
distribution = false

[[tool.pdm.source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

Environment Information

# Paste the output of `pdm info && pdm info --env` below:
PDM version:
  2.15.2
Python Interpreter:
  /home/cscutcher/example/.venv/bin/python (3.11)
Project Root:
  /home/cscutcher/example
Local Packages:

{
  "implementation_name": "cpython",
  "implementation_version": "3.11.7",
  "os_name": "posix",
  "platform_machine": "x86_64",
  "platform_release": "6.7.4",
  "platform_system": "Linux",
  "platform_version": "#1-NixOS SMP PREEMPT_DYNAMIC Mon Feb  5 20:17:12 UTC 2024",
  "python_full_version": "3.11.7",
  "platform_python_implementation": "CPython",
  "python_version": "3.11",
  "sys_platform": "linux"
}