Fix up issues on Python 3.8
Review Request #14677 — Created Nov. 6, 2025 and updated — Latest diff uploaded
We had a bunch of issues sneak into the codebase that made it impossible
to set up or run the release-7.1.x branch against Python 3.8. This
change fixes them up:
- Our pyproject.toml file required setuptools>=77, but the last release
that supports 3.8 was 75. - Once that was fixed, I was getting errors about the format of the
license lines. - There were several few places where type annonations were getting
evaluated, primarily in generics,TypeAliases, and Pydantic models.
We had a number of places where we had more-modern syntax (type[...],
|-syntax for unions) or were getting things fromcollections.abc
that needed to come fromtypingbecause the collections versions
don't support subscripts for 3.8. - Some of the new hosting services stuff was using
str.removeprefix(),
which was introduced in Python 3.9.
Set up a Python 3.8 environment and ran unit tests.