PDM does not implement PEP 582, at the time of writing

Note: I’ve updated this to reflect how this happened, on recommendation from PDM’s author. PDM claims to implement PEP 582. However, if you look at what it implements, it is something completely different from the standard. PDM’s file system structure <root> __pypackages__ 3.10 bottle myscript.py PDM will scan for the __pypackages__ directory up to 5 folders above the “current” one. PEP 582’s file system structure <root> __pypackages__ lib python3.10 site-packages bottle myscript....

Last updated January 30, 2023 · January 21, 2023 · 2 minutes

Excellent error messages from command line tools, according to ChatGPT

In late Dec 2022, I played around with ChatGPT in an evening. Since it was on the top of my mind1, I decided try to nudge ChatGPT into the direction of giving me a useful answer about error message design for command line tools.2 Now, tell me what an excellent error message from a command line tool should contain. An excellent error message from a command line tool should contain the following elements:...

January 2, 2023 · 2 minutes

Wheels are faster, even for pure Python packages

When installing with pip (or from PyPI in general), wheels are much faster than source distributions, even for pure-Python projects. Packages with native code are a clearer win, because the wheel file will contain pre-compiled binaries for the platform you’re installing on. This means that you don’t need to have a compiler and non-Python build dependencies installed, and you don’t need to wait for the compiler to do its thing....

December 31, 2022 · 3 minutes