Refactor/unify/extract shutil.rmtree callbacks (and avoid repetition)#4682
Merged
abravalheri merged 7 commits intopypa:mainfrom Nov 11, 2024
Merged
Refactor/unify/extract shutil.rmtree callbacks (and avoid repetition)#4682abravalheri merged 7 commits intopypa:mainfrom
shutil.rmtree callbacks (and avoid repetition)#4682abravalheri merged 7 commits intopypa:mainfrom
Conversation
Avasam
reviewed
Oct 15, 2024
fa79779 to
602cde1
Compare
602cde1 to
4692179
Compare
4692179 to
db2b206
Compare
Contributor
Author
|
According to the comments, it seems that the specific error that the That is why some parts of the old code restrict the This PR keeps the workaround homogeneously Windows-specific for all usages. If we have any reported failure we can relax the conditions a bit in a future PR. |
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.
Summary of changes
I noticed that there are at least 2 implementations of
shutil.rmtreecallbacks in setuptools: one foreasy_installand one forbdist_wheel. There is also other places in setuptools that we don't have those callbacks (so potentially still subject to errors on Windows?).So this PR tries to unify these 2 separated implementations.
I have chosen to extract the implementation from
easy_install.One notable difference though is that
bdist_wheel's implementation always try to apply thechmodcallback when it fails, while theeasy_installimplementation is more conservative and only applies the callback on Windows (similar to the suggestion inhttps://github.com/python/cpython/issues/87823#issuecomment-1093908280)... So that might generate a bit of change in behaviour, but with a bit of luck should be compatible.The name
_shutilwas used for the lack of a better name/imagination, and can be changed.Closes
Pull Request Checklist
newsfragments/.(See documentation for details)