On Thu, 17 Sep 2009 07:05:46 -0700, Tarek Ziadé <ziade.ta...@gmail.com> wrote:

On Thu, Sep 17, 2009 at 3:53 PM, P.J. Eby <p...@telecommunity.com> wrote:
At 12:41 PM 9/17/2009 +0200, Tarek Ziadé wrote:

Also, if I understand clearly the idea, I find it rather cryptic to
add conditions to each dependency
like what Sridhar has shown.

That's actually not how it would work; you simply put section headings
inside the extras_require field, rather than having multiple sections in
setup.cfg.  Then, the "static metadata" is just the existing PKG-INFO
format.


could you provide a full example, taking back theses thread examples ?

I think PJE was referring to something like this:

$ cat foo.egg-info/requires.txt
argparse
lxml

[tests]
nose

[python-lt-26]
multiprocessing

[platform-eq-win32]
pywin32

which is defined in setup.py like this:

$ cat setup.py
[...]
setup(
  [...]
  install_requires['argparse', 'lxml'],
  extras_require={'tests': ['nose'],
                  'python-lt-26': ['multiprocessing'],
                  'platform-eq-win32': ['pywin32']}
  [...]
)

Currently you have to manually specify, say, "easy_install foo[platform-eq-win32,python-lt-26]" if you are installing on Windows Python 2.5. But with a little modification, this can be made automatic. Zope packages makes use of this kind of 'extras' feature a lot .. eg: "easy_install foo[tests]" would also install nose.

Setuptools already has this feature. I suggest we make this a standard of doing things and extend the extras syntax to implement conditional dependencies.


-srid
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to