PEP 517: Inject runtime when building

I’m writing a little PEP-517-compliant build tool, essentially a wrapper around setuptools’ build_meta, that (say) inserts

from rich import print

at the beginning of each .py file in the project. I will need to inject the extra dependency rich when building the wheels. Is there a PEP-517 way to do that?

I could certainly hard-edit *.dist-info/METADATA that comes out of setuptools and insert an extra Requires-Dist line, but perhaps there’s a better way. If I understand correctly, the function get_requires_for_build_wheel is only for build-time dependencies, right?

If I am not mistaken, all the hooks in PEP 517 are for build-time only.
After the package has been turned into a wheel, the installer will (ideally) check the dependencies in the METADATA file.

Right. So you suggest to (automatically) inject the dependency into METADATA when building the wheel?

I am afraid that is the only way the extra dependency would currently work.

(Please also notice that in case of setuptools there is an extra quirk: sdists still use the legacy egg format and store their dependencies in the *.egg-info/requires.txt file, not in PKG-INFO)

That is good to know, thank you!

You mean it inserts that line in the installed files, right?

As @abravalheri mentioned, you have to inject the dependency in the metadata of the built distribution.