Remove distutils usages for Python 3.10#19064
Merged
Merged
Conversation
uranusjr
requested review from
ashb,
kaxil,
mik-laj,
potiuk and
vikramkoka
as code owners
October 19, 2021 05:23
potiuk
approved these changes
Oct 20, 2021
Contributor
|
The PR most likely needs to run full matrix of tests because it modifies parts of the core of Airflow. However, committers might decide to merge it quickly and take the risk. If they don't merge it quickly - please rebase it to the latest main at your convenience, or amend the last commit of the PR, and push it with --force-with-lease. |
uranusjr
force-pushed
the
distutils-purge
branch
2 times, most recently
from
October 20, 2021 03:20
9e94335 to
3ac44a6
Compare
mik-laj
approved these changes
Oct 20, 2021
Version parsing capabilities when building provider packages is now provided by packaging.version.Version instead. Non-Python software version parsing (sqlite) is re-implemented with regex. Usages of strtobool are replaced by the to_boolean utility function in the airflow.utils.strings module. This function is a bit more permissive than strtobool, but should be good enough for how Airflow uses it for. This function is available since 2.0 and should be safe for usages in provider packages as well. Some usages of strtobool in providers are replaced by copying the implementation from distutils since to_boolean's different behavior would cause backward incompatibilities. The copy_file usage is replaced by shutils.copy2(), which is good enough for Airflow's needs. The distutils reference in setup.py is kept since the file is only used at build-time against setuptools, which patches the distutils import with a vendored copy and is not deprecated.
uranusjr
force-pushed
the
distutils-purge
branch
from
October 21, 2021 04:22
3ac44a6 to
8ba59fb
Compare
sharon2719
pushed a commit
to sharon2719/airflow
that referenced
this pull request
Oct 27, 2021
54 tasks
potiuk
pushed a commit
that referenced
this pull request
Jan 22, 2022
(cherry picked from commit e4888a0)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
See #19059.
Version parsing capabilities when building provider packages is now provided by
packaging.version.Versioninstead. Non-Python software version parsing (sqlite) is re-implemented with regex.Usages of
strtoboolare replaced by theto_booleanutility function in theairflow.utils.stringsmodule. This function is a bit more permissive thanstrtobool, but should be good enough for how Airflow uses it for. This function is available since 2.0 and should be safe for usages in provider packages as well.The
copy_fileusage is replaced byshutils.copy2(), which is good enough for Airflow's needs.The distutils reference in setup.py is kept since the file is only used at build-time against setuptools, which patches the distutils import with a vendored copy and is not deprecated.
See also Migration Advice in PEP 632.