#3219 introduced inference of the target versions for black from the requires-python project metadata in pyproject.toml. However, it was not implemented correctly.
The rules for the comparison operators in requires-python is documented in PEP 440.
For example, >3.7,<3.10 currently results in the inference of ["py38", "py39"]. However, 3.7.1 is in >3.7,<3.10, so "py37" should be included as well.
>3.7.0,<3.10 results in the inference of ["py37", "py38", "py39"], which is correct. However, >3.7.0,<3.10 is equivalent to >3.7,<3.10, so they should give the same results.
I re-implemented the inference code. I will open a pull request as soon as I clarified and commented the code.
#3219 introduced inference of the target versions for black from the
requires-pythonproject metadata inpyproject.toml. However, it was not implemented correctly.The rules for the comparison operators in
requires-pythonis documented in PEP 440.For example,
>3.7,<3.10currently results in the inference of["py38", "py39"]. However,3.7.1is in>3.7,<3.10, so"py37"should be included as well.>3.7.0,<3.10results in the inference of["py37", "py38", "py39"], which is correct. However,>3.7.0,<3.10is equivalent to>3.7,<3.10, so they should give the same results.I re-implemented the inference code. I will open a pull request as soon as I clarified and commented the code.