![](https://secure.gravatar.com/avatar/d4a7fc39d443767abbe16fc219bf3910.jpg?s=120&d=mm&r=g)
Thats right, there is no 'or' operator available today. In addition to what Donald says, Or significantly complicates the resolution job for the resolver: should 'A OR B' prefer A? If B is already installed should it be uninstalled to permit choosing A (aka is it a disjunction? What if A and B can coexist and one part of the graph wants A and one part wants B but there is an A OR B higher up? - if its a disjunction that becomes uninstallable. tl;dr the ramifications of OR are much deeper than those of AND for this problem space, and we don't even have AND solved properly - Issue 988. -Rob On 9 September 2016 at 10:47, Matthias Bussonnier <bussonniermatthias@gmail.com> wrote:
Hi all,
In the line of recent discussions[1] about releasing some packages only for some versions of Python.
I was reading pep 440 and in particular the "Version specifier section".
The following sentence caught my eye:
The comma (",") is equivalent to a logical and operator: a candidate version must match all given version clauses in order to match the specifier as a whole.
Is there no way to have an "or" ? It seem to me that it might be useful for package wanting to express compatibility with `2.6`, `2.7` or `>3.3` for example, in the form `=~2.6 <or operator> =~3.3`.
I completely agree that the use case is _limited_ and likely rare, I was just wondering if I'm missing something, if it was an oversight and if not if adding a section detailing that "or" was not considered, or that "or" was explicitly not included for X,Y,Z reason would be a good thing.
Thanks, -- Matthias
[1]:https://mail.python.org/pipermail/distutils-sig/2016-August/029604.html _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig