[Distutils] What is the syntax for passing conditional non-extra dependencies in setuptools?
Daniel Holth
dholth at gmail.com
Mon Apr 7 21:09:05 CEST 2014
I think setuptools' :-separated environment markers mechanism is
great, and shouldn't need to be ratified anywhere. I also think the
actual environment markers specification is stable, although I noticed
the IPython wheel for example is using the deprecated .-separated
rather than _-separated identifiers.
These kinds of conditionals are obviously an important feature for
wheel and replace a common if/else statement inside setup.py, but can
only be specified in wheels by placing a copy of the requirements in
setup.cfg. It would be better if bdist_wheel could also just translate
the setuptools requirements.txt to its own format.
I assume extras_require = { ":sys_platform='win32'" :
"wincertstore==0.2" } would be likely to specify a non-extra (the
extra named '' or None?) dependency?
On Thu, Mar 27, 2014 at 2:39 PM, PJ Eby <pje at telecommunity.com> wrote:
> On Wed, Mar 26, 2014 at 11:29 PM, Daniel Holth <dholth at gmail.com> wrote:
>>
>> How do I specify a conditional (marker-guarded) non-extra dependency
>> in setuptools? The syntax for a conditional extra dependency is
>> currently:
>>
>> extras_require = {
>> "ssl:sys_platform=='win32'": "wincertstore==0.2",
>> "certs": "certifi==1.0.1",
>> },
>
>
> I only implemented support via extras, and the feature wasn't officially
> supported (still isn't, I don't think) because the PEP specifying the syntax
> wasn't fully baked yet. I figured that if *only* setuptools itself used it,
> then if the syntax changed only setuptools would break... but fix itself at
> the same time.
>
> The same cannot be said for any other package, so use at your own risk. Or
> better yet, don't use it. ;-)
>
> (At least, not until it's a documented feature w/a PEP-approved syntax.)
>
>
>> _______________________________________________
>> Distutils-SIG maillist - Distutils-SIG at python.org
>> https://mail.python.org/mailman/listinfo/distutils-sig
>
>
More information about the Distutils-SIG
mailing list