On 03/16/2015 02:53 PM, Daniel Holth wrote:
No one should be asked to learn how to extend distutils, and in practice no one knows how.
People have been begging for years for working setup_requires, far longer than I've been interested in it, and all they want to do is
import fetch_version setup(version=fetch_version(), ...)
Then they will eventually notice setup_requires has never worked the way most people expect. As a result there are too few setup.py abstractions.
FWIW, this particular use case (retrieving the version by importing it or a function that returns it after it reads a file or whatever), is dodgy. It's way better that code that needs version info inside the package consult pkg_resources or some similar system: import pkg_resources version = pkg_resources.get_distribution('mydistro').version I realize there are other use cases that setup_requires solves, and that using pkg_resources can be a performance issue. I also realize that people badly want to be able to "from mypkg import version" or "from mypkg import get_version". But I'd try to come up with a different sample use case for driving decision-making because IMO we should dissuade them from doing that. Python packaging should be able to provide them this information, they should not need to provide it themselves. - C