I have had to understand Python packaging in depth on a number of occasions lately, both in my private development efforts and at my place of employment. For my own sake and simply to help others, I'd like to share what I consider valuable insight and information -- to save others time and effort, if mine was anything to judge by.
Python packaging has come further since people had to express everything with setup.py and more importantly without pyproject.toml. PEP 517 standardises how tools like Pip will execute building, in fact, and the standardisation basically makes it an entirely customizable process starting already with the so-called build backend. That's the value of build-backend in your pyproject.toml. A number of build backends have been developed now -- Poetry, Flit, Hatchling and others. Setuptools, a further development of disttools that used to ship with Python, has also been standardized to offer a build backend -- if the pyproject.toml specifies `build-backend = "setuptools