At 05:37 PM 6/21/2006 -0400, Jim Fulton wrote:

>Suppose I have the directory:
>
>    /home/jim/tmp/dist:
>    used 92 available 41345796
>    -rw-rw-r--  1 jim jim   671 Jun 19 17:43 demoneeded-1.0-py2.4.egg
>    -rw-rw-r--  1 jim jim   672 Jun 19 17:46 demoneeded-1.1-py2.4.egg
>    -rw-rw-r--  1 jim jim   673 Jun 19 17:46 demoneeded-1.2-py2.4.egg
>    -rw-rw-r--  1 jim jim   673 Jun 19 17:46 demoneeded-1.3-py2.4.egg
>    -rw-rw-r--  1 jim jim   673 Jun 19 17:46 demoneeded-1.4-py2.4.egg
>    -rw-rw-r--  1 jim jim   673 Jun 19 17:46 demoneeded-1.5-py2.4.egg
>    -rw-rw-r--  1 jim jim   673 Jun 19 17:46 demoneeded-1.6-py2.4.egg
>    -rw-rw-r--  1 jim jim   673 Jun 19 17:46 demoneeded-1.7-py2.4.egg
>    -rw-rw-r--  1 jim jim   673 Jun 19 17:46 demoneeded-1.8-py2.4.egg
>    -rw-rw-r--  1 jim jim   673 Jun 19 17:46 demoneeded-1.9-py2.4.egg
>
>and then run easy install telling it to install something I already have:
>
>    [EMAIL PROTECTED] ~]$ /usr/local/python/2.4/bin/easy_install -d tmp/dist 
> -mxU 
> demoneeded==1.1

The -U option means "always search PyPI".


>I have some scripts that invoke easy_setup and I'd like to try to
>do some of this logic myself.  Given a requirement, I'd like to
>get the specifiers and decide myself whether to invoke easy_install.
>I have 2 problems:
>
>- I don't want to parse the requirement myself, but, rather,
>    use Requirement.parse.  If I use Requirement.parse, I can use
>    the specs attribute to get the specifiers, however, this
>    attribute isn't documented.  Should I assume that it is
>    private? Or is it safe to use.

Why do that when you can just ask the Requirement whether it matches a 
particular version?  The __contains__ method of Requirement objects accepts 
a version string, distribution object, or parsed version number you can use.

(For that matter, you can query an Environment or WorkingSet for the 
distributions whose versions you want to check.)

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to