Skip to content

Commit

Permalink
dev: Pin types-requests on Python 3.6 to a version that works with my…
Browse files Browse the repository at this point in the history
…py on 3.6

mypy 0.971 is the last version to support Python 3.6, so this is what
pip installs on 3.6.

types-requests 2.28.11.12 is the last version to support mypy <1.0.0,
due to changes in how the "Self" type is handled.¹  However, there's no
way to declare that in package metadata (without requiring mypy, which
is inappropriate for a typeshed package), so we have to resolve this
dependency ourselves.²

With a too-new types-requests, mypy fails on 3.6 with errors like:

    nextstrain/cli/remote/nextstrain_dot_org.py:230: error: Self? has no attribute "auth"

which we saw in CI failures.³

We'll drop support for Python 3.6 sooner than later, but for now, keep
it going.

¹ <python/typeshed@7180d02>
  <python/typeshed#9702>

² It would be possible if, for example, Python package metadata
  supported a "Conflicts" field, as many packaging systems do.

³ <https://github.com/nextstrain/cli/actions/runs/4266385449/jobs/7426841852#step:5:78>
  • Loading branch information
tsibley committed Feb 27, 2023
1 parent 421d024 commit 7fda998
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,8 @@ def find_namespaced_packages(namespace):
"sphinx_rtd_theme",
"types-docutils",
"types-setuptools",
"types-requests",
"types-requests; python_version != '3.6'",
"types-requests <=2.28.11.12; python_version == '3.6'",
],
},
)

0 comments on commit 7fda998

Please sign in to comment.