Passing arguments to the PEP517 sipbuild.api backend
Phil Thompson
phil at riverbankcomputing.com
Sat May 7 10:54:24 BST 2022
On 07/05/2022 10:33, Michał Górny wrote:
> On Sat, 2022-05-07 at 10:12 +0100, Phil Thompson wrote:
>> On 06/05/2022 14:51, Michał Górny wrote:
>> > Hello,
>> >
>> > I'm one of the maintainers of Python packages in Gentoo. Lately we've
>> > been working on transitioning from the legacy "setup.py install"
>> > workflow to PEP517 build backends. As part of that, I'd like to work
>> > on switching the packages relying on sip -- starting with recently
>> > released update to python-poppler-qt5 but eventually including PyQt.
>> >
>> > Unfortunately, I can't find a way to pass options to the PEP517 backend
>> > in the way that it is possible to the sip-build executable. Is it
>> > possible to inject options currently? If not, could you please add
>> > such
>> > a possibility? The config_settings dictionary of build_wheel() method
>> > seems to be the usual method of doing that (cf. setuptools accepting
>> > {"--global_option": [...]}, though admittedly that double-dash is weird
>> > there).
>> >
>> > TIA.
>>
>> The sipbuild.api backend currently ignores any config settings because
>> (as it says in the comments) I wasn't aware of a frontend that seemed
>> to
>> support the feature so I couldn't test it properly.
>>
>> Do you have your own frontend or are you using pip (or similar)?
>>
>
> Yes-ish. I've written gpep517 for our needs [1] but the more common
> build [2] package also supports passing config settings, e.g.:
>
> gpep517 build-wheel --output-fd 1 --wheel-dir dist/ \
> --config-json '{"--global-option": ["--foo"]}'
>
> python -m build -nw --config-setting=--global-option=--foo
>
> [1] https://pypi.org/project/gpep517/
> [2] https://pypi.org/project/build/
So the config_settings argument passed to build_sdist() and
build_wheel() would be...
{'--global-option': '--foo'}
...or does '--global-option' have a special meaning and what is actually
passed is...
{'--foo': None}
...?
Phil
More information about the PyQt
mailing list