Currently, the project uses ~= 2.7, ~=3.2 as constraint on the python versions supported.
Where the ~= determines a "compatible release" (https://peps.python.org/pep-0440/#compatible-release) and is equivalent to >=N.M, <N+1.
According to PEP 440 this is an invalid specifier:
A version specifier consists of a series of version clauses, separated by commas. For example:
~= 0.9, >= 1.0, != 1.3.4.*, < 2.0
[...]
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.
Especially, the last sentence is important. The comma is an and.
Thus, in fact, there can be no version matching >=2.7 and <3 and >=3.2 and <4.
This especially causes problems when using poetry as build system and trying to install simpleTALSix. Currently, it is not possible, because poetry tries to evaluate the python version constraint.
A correct constraint to express compatibility with Python 2.7 and 3.2+ would be: >=2.7, !=3.0.*, !=3.1.*, <4.
Currently, the project uses
~= 2.7, ~=3.2as constraint on the python versions supported.Where the
~=determines a "compatible release" (https://peps.python.org/pep-0440/#compatible-release) and is equivalent to>=N.M, <N+1.According to PEP 440 this is an invalid specifier:
Especially, the last sentence is important. The comma is an and.
Thus, in fact, there can be no version matching
>=2.7 and <3 and >=3.2 and <4.This especially causes problems when using poetry as build system and trying to install simpleTALSix. Currently, it is not possible, because poetry tries to evaluate the python version constraint.
A correct constraint to express compatibility with Python 2.7 and 3.2+ would be:
>=2.7, !=3.0.*, !=3.1.*, <4.