René's URL Explorer Experiment


Title: [WIP] GH-89727: Fix `shutil.rmtree()` recursion error on deep trees. by barneygale · Pull Request #103164 · python/cpython · GitHub

Open Graph Title: [WIP] GH-89727: Fix `shutil.rmtree()` recursion error on deep trees. by barneygale · Pull Request #103164 · python/cpython

X Title: [WIP] GH-89727: Fix `shutil.rmtree()` recursion error on deep trees. by barneygale · Pull Request #103164 · python/cpython

Description: The Python programming language. Contribute to python/cpython development by creating an account on GitHub.

Open Graph Description: Add a follow_junctions argument to pathlib.Path.walk(). When set to false, directory junctions are treated as files. Add an _fwalk() method to pathlib.Path, similar to os.fwalk() except in its trea...

X Description: Add a follow_junctions argument to pathlib.Path.walk(). When set to false, directory junctions are treated as files. Add an _fwalk() method to pathlib.Path, similar to os.fwalk() except in its trea...

Opengraph URL: https://github.com/python/cpython/pull/103164

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:88ef3e34-82c3-9af3-60f3-cf2045e0c9c0
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idD8E8:3B149:5C99EA:7E4DF3:69694DC4
html-safe-nonce68d5ab2065a12b6616fdf2f39bc52981b6a06041d4ba226d4f81cdcd63a01114
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEOEU4OjNCMTQ5OjVDOTlFQTo3RTRERjM6Njk2OTREQzQiLCJ2aXNpdG9yX2lkIjoiMTkyNDQzNzQxNjc0MjU3MTQ2MCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac2be8b67488ef2cf822c0b3a1d08910bdfb8d9f92358e55be4a9d1c7172932270
hovercard-subject-tagpull_request:1298513034
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/103164/commits
twitter:imagehttps://opengraph.githubassets.com/be711178f637bf7a7b8cc0ced7d242d8004c300d9154498b1720e1f76a07ec29/python/cpython/pull/103164
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/be711178f637bf7a7b8cc0ced7d242d8004c300d9154498b1720e1f76a07ec29/python/cpython/pull/103164
og:image:altAdd a follow_junctions argument to pathlib.Path.walk(). When set to false, directory junctions are treated as files. Add an _fwalk() method to pathlib.Path, similar to os.fwalk() except in its trea...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamebarneygale
hostnamegithub.com
expected-hostnamegithub.com
None54182691a21263b584d2e600b758e081b0ff1d10ffc0d2eefa51cf754b43b51d
turbo-cache-controlno-cache
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
released69ac0477df0f87da03b8b06cebd187012d7a930
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/103164/commits#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F103164%2Fcommits
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F103164%2Fcommits
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Fcommits&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/103164/commits
Reloadhttps://github.com/python/cpython/pull/103164/commits
Reloadhttps://github.com/python/cpython/pull/103164/commits
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/103164/commits
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 33.9k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.1k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.1k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects 31 https://github.com/python/cpython/projects
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/python/cpython/security
Please reload this pagehttps://github.com/python/cpython/pull/103164/commits
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
barneygalehttps://github.com/barneygale
python:mainhttps://github.com/python/cpython/tree/main
barneygale:pathlib-fwalkhttps://github.com/barneygale/cpython/tree/pathlib-fwalk
Conversationhttps://github.com/python/cpython/pull/103164
Commits27 (27)https://github.com/python/cpython/pull/103164/commits
Checkshttps://github.com/python/cpython/pull/103164/checks
Files changedhttps://github.com/python/cpython/pull/103164/files
[WIP] GH-89727: Fix shutil.rmtree() recursion error on deep trees.https://github.com/python/cpython/pull/103164/commits#top
barneygalehttps://github.com/barneygale
python:mainhttps://github.com/python/cpython/tree/main
barneygale:pathlib-fwalkhttps://github.com/barneygale/cpython/tree/pathlib-fwalk
GH-89727: Fix `shutil.rmtree()` recursion error on deep trees.https://github.com/python/cpython/pull/103164/commits/17f02bbe06fc43e20dc706f66232cf9f1b5116cd
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
17f02bbhttps://github.com/python/cpython/pull/103164/commits/17f02bbe06fc43e20dc706f66232cf9f1b5116cd
https://github.com/python/cpython/tree/17f02bbe06fc43e20dc706f66232cf9f1b5116cd
Delay urllib importhttps://github.com/python/cpython/pull/103164/commits/48dc5db406b88d0b00448903a2ceb36f279676cd
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
48dc5dbhttps://github.com/python/cpython/pull/103164/commits/48dc5db406b88d0b00448903a2ceb36f279676cd
https://github.com/python/cpython/tree/48dc5db406b88d0b00448903a2ceb36f279676cd
Fix up filenames in exceptionshttps://github.com/python/cpython/pull/103164/commits/6e92b2728458bb7fe2154cea9872d2c640cef18f
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
6e92b27https://github.com/python/cpython/pull/103164/commits/6e92b2728458bb7fe2154cea9872d2c640cef18f
https://github.com/python/cpython/tree/6e92b2728458bb7fe2154cea9872d2c640cef18f
Restore `shutil._rmtree_islink()`https://github.com/python/cpython/pull/103164/commits/c042220d5a61e21c6f9750505deb5816f3bd2549
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
c042220https://github.com/python/cpython/pull/103164/commits/c042220d5a61e21c6f9750505deb5816f3bd2549
https://github.com/python/cpython/tree/c042220d5a61e21c6f9750505deb5816f3bd2549
Tidy up exception handlinghttps://github.com/python/cpython/pull/103164/commits/e268e89a2c95dcc1a011bdbcb405c3de9dfc456f
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
e268e89https://github.com/python/cpython/pull/103164/commits/e268e89a2c95dcc1a011bdbcb405c3de9dfc456f
https://github.com/python/cpython/tree/e268e89a2c95dcc1a011bdbcb405c3de9dfc456f
Better compatibility with shutil tests.https://github.com/python/cpython/pull/103164/commits/3f40cb0f7b6d7315fb539019af46ee2eccd11043
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
3f40cb0https://github.com/python/cpython/pull/103164/commits/3f40cb0f7b6d7315fb539019af46ee2eccd11043
https://github.com/python/cpython/tree/3f40cb0f7b6d7315fb539019af46ee2eccd11043
Move main implementation into pathlibhttps://github.com/python/cpython/pull/103164/commits/b59bda88166b113ab5b46c776cba2e4dbe5b0f93
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
b59bda8https://github.com/python/cpython/pull/103164/commits/b59bda88166b113ab5b46c776cba2e4dbe5b0f93
https://github.com/python/cpython/tree/b59bda88166b113ab5b46c776cba2e4dbe5b0f93
Make `_fwalk()` private, tidy up naming.https://github.com/python/cpython/pull/103164/commits/c1743769f88a9d0d87585753906c4146d83aba60
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
c174376https://github.com/python/cpython/pull/103164/commits/c1743769f88a9d0d87585753906c4146d83aba60
https://github.com/python/cpython/tree/c1743769f88a9d0d87585753906c4146d83aba60
Fix testshttps://github.com/python/cpython/pull/103164/commits/0e8d8e613e96ef617ee305bd0c657788190257db
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
0e8d8e6https://github.com/python/cpython/pull/103164/commits/0e8d8e613e96ef617ee305bd0c657788190257db
https://github.com/python/cpython/tree/0e8d8e613e96ef617ee305bd0c657788190257db
Fix missing filename in exception, tidy up more naming.https://github.com/python/cpython/pull/103164/commits/fea58ab6d6f59f371dee6e1a9bac745ddc61946c
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
fea58abhttps://github.com/python/cpython/pull/103164/commits/fea58ab6d6f59f371dee6e1a9bac745ddc61946c
https://github.com/python/cpython/tree/fea58ab6d6f59f371dee6e1a9bac745ddc61946c
More cleanuphttps://github.com/python/cpython/pull/103164/commits/bff0f5e2bd73991628ceb0ef7835b13398340a47
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
bff0f5ehttps://github.com/python/cpython/pull/103164/commits/bff0f5e2bd73991628ceb0ef7835b13398340a47
https://github.com/python/cpython/tree/bff0f5e2bd73991628ceb0ef7835b13398340a47
Even more tidy-uphttps://github.com/python/cpython/pull/103164/commits/3b216840cf5e8b407a919564ab6c0ae3b30a4cc3
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
3b21684https://github.com/python/cpython/pull/103164/commits/3b216840cf5e8b407a919564ab6c0ae3b30a4cc3
https://github.com/python/cpython/tree/3b216840cf5e8b407a919564ab6c0ae3b30a4cc3
Reduce diff a bithttps://github.com/python/cpython/pull/103164/commits/5abee55c375aa568b9e907dfe04ccbc92cfc0f0a
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
5abee55https://github.com/python/cpython/pull/103164/commits/5abee55c375aa568b9e907dfe04ccbc92cfc0f0a
https://github.com/python/cpython/tree/5abee55c375aa568b9e907dfe04ccbc92cfc0f0a
Performance improvementshttps://github.com/python/cpython/pull/103164/commits/57173d93ceffd1e9de0e008dbb71e9d0a17c3cee
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
57173d9https://github.com/python/cpython/pull/103164/commits/57173d93ceffd1e9de0e008dbb71e9d0a17c3cee
https://github.com/python/cpython/tree/57173d93ceffd1e9de0e008dbb71e9d0a17c3cee
Simplify rmtree (h/t eryksun)https://github.com/python/cpython/pull/103164/commits/58070d9a664b9370c4151c1d5fcabb6f52f3fe22
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
58070d9https://github.com/python/cpython/pull/103164/commits/58070d9a664b9370c4151c1d5fcabb6f52f3fe22
https://github.com/python/cpython/tree/58070d9a664b9370c4151c1d5fcabb6f52f3fe22
More performance tweakshttps://github.com/python/cpython/pull/103164/commits/d61baa13ae0f3d88c7478ea9c66d588e94fd5955
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
d61baa1https://github.com/python/cpython/pull/103164/commits/d61baa13ae0f3d88c7478ea9c66d588e94fd5955
https://github.com/python/cpython/tree/d61baa13ae0f3d88c7478ea9c66d588e94fd5955
Make `error._func` private, as it's only intended for `shutil.rmtree()`https://github.com/python/cpython/pull/103164/commits/e983dd7f83f3e9770f1a5f0c305ce11ddf97d0fc
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
e983dd7https://github.com/python/cpython/pull/103164/commits/e983dd7f83f3e9770f1a5f0c305ce11ddf97d0fc
https://github.com/python/cpython/tree/e983dd7f83f3e9770f1a5f0c305ce11ddf97d0fc
Improve testshttps://github.com/python/cpython/pull/103164/commits/5387d32135362734128e7948592de64b6a1e7f09
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
5387d32https://github.com/python/cpython/pull/103164/commits/5387d32135362734128e7948592de64b6a1e7f09
https://github.com/python/cpython/tree/5387d32135362734128e7948592de64b6a1e7f09
Improve performancehttps://github.com/python/cpython/pull/103164/commits/75541fbf6467debd1c41f7829b7f6bbdf4b099e1
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
75541fbhttps://github.com/python/cpython/pull/103164/commits/75541fbf6467debd1c41f7829b7f6bbdf4b099e1
https://github.com/python/cpython/tree/75541fbf6467debd1c41f7829b7f6bbdf4b099e1
Merge branch 'main' into pathlib-fwalkhttps://github.com/python/cpython/pull/103164/commits/698db60c9ab6a69d558dd00f53c95a41ee21ec0d
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
698db60https://github.com/python/cpython/pull/103164/commits/698db60c9ab6a69d558dd00f53c95a41ee21ec0d
https://github.com/python/cpython/tree/698db60c9ab6a69d558dd00f53c95a41ee21ec0d
Supply relative paths to `rmdir()` in fd-based walk.https://github.com/python/cpython/pull/103164/commits/74cdd6c1ddd97f02d8960ef74ff95ecccda3b71f
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
74cdd6chttps://github.com/python/cpython/pull/103164/commits/74cdd6c1ddd97f02d8960ef74ff95ecccda3b71f
https://github.com/python/cpython/tree/74cdd6c1ddd97f02d8960ef74ff95ecccda3b71f
Handle rmdir() and unlink() not accepting dir_fdhttps://github.com/python/cpython/pull/103164/commits/c17d07c2d9aadfcc541849c14d76fa5b55f5f19b
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
c17d07chttps://github.com/python/cpython/pull/103164/commits/c17d07c2d9aadfcc541849c14d76fa5b55f5f19b
https://github.com/python/cpython/tree/c17d07c2d9aadfcc541849c14d76fa5b55f5f19b
Move rmtree() implementation back into shutil.https://github.com/python/cpython/pull/103164/commits/b4f120c952b2e45bb84c6ed0d3ebddec88431806
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
b4f120chttps://github.com/python/cpython/pull/103164/commits/b4f120c952b2e45bb84c6ed0d3ebddec88431806
https://github.com/python/cpython/tree/b4f120c952b2e45bb84c6ed0d3ebddec88431806
Restore missing dir_fd checkhttps://github.com/python/cpython/pull/103164/commits/e856ccb910afeed2ae6289e49ffbe29bbb5fe327
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
e856ccbhttps://github.com/python/cpython/pull/103164/commits/e856ccb910afeed2ae6289e49ffbe29bbb5fe327
https://github.com/python/cpython/tree/e856ccb910afeed2ae6289e49ffbe29bbb5fe327
Remove unnecessary change to testhttps://github.com/python/cpython/pull/103164/commits/d1e349ca002759cf63a0a11df08aad301f695b08
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
d1e349chttps://github.com/python/cpython/pull/103164/commits/d1e349ca002759cf63a0a11df08aad301f695b08
https://github.com/python/cpython/tree/d1e349ca002759cf63a0a11df08aad301f695b08
Reduce memory usage a bit.https://github.com/python/cpython/pull/103164/commits/63e55e1ff4fa80a837f118bd42a36651a5ad8388
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
63e55e1https://github.com/python/cpython/pull/103164/commits/63e55e1ff4fa80a837f118bd42a36651a5ad8388
https://github.com/python/cpython/tree/63e55e1ff4fa80a837f118bd42a36651a5ad8388
Reduce diffhttps://github.com/python/cpython/pull/103164/commits/f7c53525a10898574ff61f271a99d497805880c5
https://github.com/barneygale
barneygalehttps://github.com/python/cpython/commits?author=barneygale
f7c5352https://github.com/python/cpython/pull/103164/commits/f7c53525a10898574ff61f271a99d497805880c5
https://github.com/python/cpython/tree/f7c53525a10898574ff61f271a99d497805880c5
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.