<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">
> the problem with thinking of it this way is that you naturally want to<br>
> extend the concept to >=, but it doesn't work.<br>
> If the concept were consistent,  1.7.dev1 would satisfy  >=1.7, but it<br>
> doesn't.<br>
<br>
</span>I'm pretty sure it's consistent.  For example, "1.7.2" doesn't satisfy<br>
">1.7", but it satisfies ">=1.7" (e.g. because it's "part of the<br>
series").<br>
<br>
I believe the inconsistency you're mentioning doesn't have anything to<br>
do with the comparison operator.  It's that pre-releases like "dev1"<br>
are special cases and governed by different rules. [...] are<br>
implicitly excluded</blockquote><div><br></div>but look at this (using setuptools 8)<br><br>>>> '1.7.dev1' in pkg_resources.Requirement.parse('foo>=1.7')<br>False<br>>>> '1.7.dev1' in pkg_resources.Requirement.parse('foo<=1.7')<br>True<br><br></div><div class="gmail_quote"></div><div class="gmail_quote">Only the exclusive ordering section speaks of the "!= V.*" bit.  <br>The inclusive section just talks of zero padding and relative ordering.<br></div><div class="gmail_quote"><br>The packaging implementation that underlies all this seems to bear this out as well:  <br><br>inclusive: <a href="https://github.com/pypa/packaging/blob/master/packaging/specifiers.py#L453">https://github.com/pypa/packaging/blob/master/packaging/specifiers.py#L453</a><br>exclusive: <a href="https://github.com/pypa/packaging/blob/master/packaging/specifiers.py#L461">https://github.com/pypa/packaging/blob/master/packaging/specifiers.py#L461</a><br></div><div class="gmail_quote"><tt class=""></tt></div><div class="gmail_quote"><div></div><div><br></div></div><br></div></div>