Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What are you trying to accomplish?
Python 3.11 has been released.
Make sure that we're testing against it.
Refresh all the bits of our CI/benchmarking that are stale too.
What approach did you choose and why?
Searched for references to "3.10" and added "3.11".
I also updating the benchmarks to:
datetime.datetime.fromisoformat
(Fixes Adddatetime.datetime.fromisoformat
to benchmarking #125)maya
andmoment
from Python 2.7 testingudatetime
for modern Python versions (> 3.9), since they fixed their bug.Since CicleCI isn't going to release Docker image for Python 3.11 under their old a
circleci/python
namespace, I migrated our Docker images to use their newcimg/python
namespace (Fixes #127) . This didn't support Python 3.4, so I duplicated our existing config to continue supporting 3.4. Deprecating 3.4 support can be considered in a separate issue.I also noted that PyPy 3.9 is out, so I added it to the CI.
What should reviewers focus on?
I intentionally left out the updated benchmarks until I verify that
datetime.fromisoformat
really does cover all of ciso8601's subset. After that, I'll add the new results and contextualize them.(While
datetime.fromisoformat
is faster for timestamps without a timezone, our lean timezone implementation means that we are still faster for timestamps with a timezone)It seems that the vast majority of Python users will no longer have a reason to use ciso8601. 🎉🖤
The impact of these changes
Keeping up to date with the world of Python and CircleCI.