Specifiers are defined in PEP 440 (the >=1.0 parts), however PEP 426 combines
those with the package names to get “foo >=1.0”. The packaging library 
implements
the specifier part.

> On Sep 16, 2014, at 6:59 AM, Paul Moore <p.f.mo...@gmail.com> wrote:
> 
> I feel as though I must be missing something obvious, but is there an
> actual specification of the syntax and semantics of a requirement
> anywhere? I've scanned through the PEP, and while there is a spec for
> the environment marker mini-language, there isn't one for a
> requirement. (As a check I hadn't missed anything obvious, I did a
> text search for the operator ">=" which *is* a valid operator in a
> requirement, and it's not present in a syntax definition or anything
> equivalent.
> 
> I ask because I'm looking for a way to find a way of matching a set of
> package/version details against a requirement, and I was coming up
> blank. So I was going to write my own, and then I found that there's
> no spec :-(
> 
> Surely having a spec for a requirement has to be part of the sign-off
> requirements for Metadata 2.0?
> 
> Digging a bit further, there is (of course, doh!) the pkg_resources
> requirement parser. But even if that is definitive, I think it should
> be integrated into the Metadata 2.0 spec, or at the very least
> referenced from there (and just having a reference risks the
> possibility of setuptools accidentally making changes outside of the
> PEP process).
> 
> Paul
> 
> [1] Pip's code is too complex to factor out the bits I want, and
> distlib's version matcher seems to support a different syntax if the
> docs are correct.
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

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

Reply via email to