-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pep517 should either have wheel as an install dependency, or provide methods to get package dependencies without the wheel tool #39
Comments
I think you've maybe misunderstood the aim of this package. It's meant to provide the mechanism for what PEP 517 defines as a frontend to talk to a PEP 517 backend. It's not, by itself, an easy way to get metadata about an arbitrary package. If you're using the lower-level interface from the 'wrappers' module, which appears to be the case from your other issues, then as the README points out: "you are responsible for ensuring build requirements are available". If your package is built by setuptools+wheel, those packages need to be available. They're not required for all packages; the point of PEP 517 is to allow for different build systems. If you want to use the higher-level interface from the |
Is there an example for this use case of |
That's all envbuild does. Feel free to look at the source code to see how it does it. |
I mean I suppose I could just open up the sdist again to get this info. If there's really no other way that seems fair enough, just seemed a little pointless to me to tar it all up then open it up again 😄 |
Sorry, I don't think this is the place for legacy support. As the name suggests, it exists to work with the interfaces defined by PEP 517. Someone could make a wrapper tool that uses either this or |
isn't there some sort of "pip library"? after all pip supports all of these things, and pretty much all I want is just to get the dependencies similar as pip would (we pretty much do some sort of preprocessing before pip runs, and don't want to break things/stay compatible with whatever pip does afterwards) |
Not that I'm aware of. It's a big general issue in the packaging world that everything wants to handle things like pip, but pip itself doesn't have any public Python API. The plan to fix it is to break parts of pip out as separate packages which can be used by other projects, but it's a slow, tricky process. Millions of people use pip every day, so any change can cause lots of problems. |
Actually, it is possible to use this interface with hooks = Pep517HookCaller(src, build_backend='setuptools.build_meta') |
But whether that will (a) work and (b) do what you want, I'm not sure. |
It works, that was my entire point when I suggested a function to read |
Also I just wrote a function that writes a Wouldn't it be nice to have that in pep517 or somewhere else? This all seems to be not that much work to put together, but it really lacks some sort of simple function to do this in a generic way for people who aren't like, super familiar with all the build tools and such |
Fair enough. I'd probably call it something like |
Although maybe we should wait for a new release of setuptools with the |
One thing I could propose to do as a pull request is to fix this code here https://github.com/pypa/pep517/blob/master/pep517/envbuild.py#L19 breaking when As for what I'm doing in my project I made a wrapper now to work around this so this is not urgent for me, so if you have a longer term goal for a better fix then go for it Edit: same applies for |
Closing since at the very least what I initially brought up here as an issue isn't actually one |
pep517 should either have wheel as an install dependency, or provide methods to get package dependencies without the wheel tool. Right now, all the examples in the README don't work properly (except maybe
hooks.build_sys_requires
but that's broken #14 and I'm not sure what it's even supposed to do) withoutwheel
installed.This is why
pep517
really should installwheel
:pep517
is that for a properly defined package, I should be able to get metadata (that's the point of the project if I got that right)pep517
and clearly have a working package, I should be able to get its dependenciesThis doesn't seem to be possible unless I manually install
wheel
in addition, which I don't think I should be required to doThe text was updated successfully, but these errors were encountered: