5 ms·
The key problem with Python tooling has been that, for a long time, there was a lack of good standardisation for various common functionalities, and the impleme
by BerislavLopac 3y ago
The key problem with Python tooling has been that, for a long time, there was a lack of good standardisation for various common functionalities, and the implementation details of independently developed tools became de facto standards: configparser's INI files for configuration [0], pip's requirements file [1] for dependency specifications and lock files, setuptool's setup.py (and later setup.cfg) [2], etc.
Only recently, starting with PEP 518 [3], the core team has started a drive to define global standards for tools that affect general segments like building, dependency specifications and the like, which was then continued with PEP 508 [4] or PEP 621 [5] (we are still missing a standard for a universal lock file, but that is arguably a more difficult predicament).
Hopefully, most of the common tools will with time converge to use these standards, and switching between them should become a relatively trivial exercise. At that point it won't really matter whether you use Poetry, Hatch, PDM or Rye -- the differences will amount to trivial personal preferences, similar to what we have with cars.
[0] https://docs.python.org/3/library/configparser.html https://docs.python.org/3/library/configparser.html
[1] https://pip.pypa.io/en/stable/reference/requirements-file-format/ https://pip.pypa.io/en/stable/reference/requirements-file-fo...
[2] https://setuptools.pypa.io/en/latest/userguide/quickstart.html#setuppy-discouraged https://setuptools.pypa.io/en/latest/userguide/quickstart.ht...
[3] https://peps.python.org/pep-0518/ https://peps.python.org/pep-0518/
[4] https://peps.python.org/pep-0508/ https://peps.python.org/pep-0508/
[5] https://peps.python.org/pep-0621/ https://peps.python.org/pep-0621/