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: 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...

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/_view_fragments/voltron/pull_requests/show/:user_id/:repository/:id/pull_request_layout(.:format)
route-controllervoltron_pull_requests_fragments
route-actionpull_request_layout
fetch-noncev2:49e2631b-7ab1-ce96-d2fe-dda3f2b89391
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idBFE6:36A82:BAB590:FEDCAD:6969360B
html-safe-nonce3c3ce917716a5d42deb206a72119d1bd5d8f1bf98ac629b864cd4ebf7102aeb3
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCRkU2OjM2QTgyOkJBQjU5MDpGRURDQUQ6Njk2OTM2MEIiLCJ2aXNpdG9yX2lkIjoiMjQzOTk0MTg2MTYxNDAzNDAzIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacdbf760efc672edae2aadbd60c1a4a64c8c0f3dd30264798574dd463df840a1c2
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///voltron/pull_requests_fragments/pull_request_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/voltron/pull_requests/show/python/cpython/103164/pull_request_layout
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-preview
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#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F103164
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
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%2Fvoltron%2Fpull_requests_fragments%2Fpull_request_layout&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/103164
Reloadhttps://github.com/python/cpython/pull/103164
Reloadhttps://github.com/python/cpython/pull/103164
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/103164
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 2k 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
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
Sign up for GitHub https://github.com/signup?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
Jump to bottomhttps://github.com/python/cpython/pull/103164#issue-comment-box
barneygalehttps://github.com/barneygale
python:mainhttps://github.com/python/cpython/tree/main
barneygale:pathlib-fwalkhttps://github.com/barneygale/cpython/tree/pathlib-fwalk
[WIP] GH-89727: Fix shutil.rmtree() recursion error on deep trees. https://github.com/python/cpython/pull/103164#top
barneygalehttps://github.com/barneygale
python:mainhttps://github.com/python/cpython/tree/main
barneygale:pathlib-fwalkhttps://github.com/barneygale/cpython/tree/pathlib-fwalk
Conversation 4 https://github.com/python/cpython/pull/103164
Commits 27 https://github.com/python/cpython/pull/103164/commits
Checks 0 https://github.com/python/cpython/pull/103164/checks
Files changed https://github.com/python/cpython/pull/103164/files
Please reload this pagehttps://github.com/python/cpython/pull/103164
https://github.co/hiddenchars
https://github.com/python/cpython/pull/{{ revealButtonHref }}
https://github.com/barneygale
barneygalehttps://github.com/barneygale
Apr 1, 2023https://github.com/python/cpython/pull/103164#issue-1650232309
Please reload this pagehttps://github.com/python/cpython/pull/103164
Change shutil.rmtree and os.walk to support very deep hierarchies #89727https://github.com/python/cpython/issues/89727
Please reload this pagehttps://github.com/python/cpython/pull/103164
https://github.com/barneygale
pythonGH-89727https://github.com/python/cpython/issues/89727
: Fixhttps://github.com/python/cpython/pull/103164/commits/17f02bbe06fc43e20dc706f66232cf9f1b5116cd
shutil.rmtree()https://github.com/python/cpython/pull/103164/commits/17f02bbe06fc43e20dc706f66232cf9f1b5116cd
recursion error on deep trees.https://github.com/python/cpython/pull/103164/commits/17f02bbe06fc43e20dc706f66232cf9f1b5116cd
17f02bbhttps://github.com/python/cpython/pull/103164/commits/17f02bbe06fc43e20dc706f66232cf9f1b5116cd
https://github.com/bedevere-bot
bedevere-bothttps://github.com/bedevere-bot
Apr 1, 2023 https://github.com/python/cpython/pull/103164#ref-issue-1199067663
Change shutil.rmtree and os.walk to support very deep hierarchies #89727 https://github.com/python/cpython/issues/89727
https://github.com/bedevere-bot
bedevere-bothttps://github.com/bedevere-bot
awaiting core review https://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22awaiting%20core%20review%22
Apr 1, 2023https://github.com/python/cpython/pull/103164#event-8902959291
barneygalehttps://github.com/barneygale
April 1, 2023 02:40https://github.com/python/cpython/pull/103164#commits-pushed-48dc5db
https://github.com/barneygale
Delay urllib importhttps://github.com/python/cpython/pull/103164/commits/48dc5db406b88d0b00448903a2ceb36f279676cd
48dc5dbhttps://github.com/python/cpython/pull/103164/commits/48dc5db406b88d0b00448903a2ceb36f279676cd
https://github.com/barneygale
Fix up filenames in exceptionshttps://github.com/python/cpython/pull/103164/commits/6e92b2728458bb7fe2154cea9872d2c640cef18f
6e92b27https://github.com/python/cpython/pull/103164/commits/6e92b2728458bb7fe2154cea9872d2c640cef18f
https://github.com/barneygale
Restore shutil._rmtree_islink()https://github.com/python/cpython/pull/103164/commits/c042220d5a61e21c6f9750505deb5816f3bd2549
c042220https://github.com/python/cpython/pull/103164/commits/c042220d5a61e21c6f9750505deb5816f3bd2549
https://github.com/barneygale
Tidy up exception handlinghttps://github.com/python/cpython/pull/103164/commits/e268e89a2c95dcc1a011bdbcb405c3de9dfc456f
e268e89https://github.com/python/cpython/pull/103164/commits/e268e89a2c95dcc1a011bdbcb405c3de9dfc456f
https://github.com/barneygale
Better compatibility with shutil tests.https://github.com/python/cpython/pull/103164/commits/3f40cb0f7b6d7315fb539019af46ee2eccd11043
3f40cb0https://github.com/python/cpython/pull/103164/commits/3f40cb0f7b6d7315fb539019af46ee2eccd11043
https://github.com/barneygale
Move main implementation into pathlibhttps://github.com/python/cpython/pull/103164/commits/b59bda88166b113ab5b46c776cba2e4dbe5b0f93
b59bda8https://github.com/python/cpython/pull/103164/commits/b59bda88166b113ab5b46c776cba2e4dbe5b0f93
https://github.com/barneygale
Make _fwalk() private, tidy up naming.https://github.com/python/cpython/pull/103164/commits/c1743769f88a9d0d87585753906c4146d83aba60
c174376https://github.com/python/cpython/pull/103164/commits/c1743769f88a9d0d87585753906c4146d83aba60
https://github.com/barneygale
Fix testshttps://github.com/python/cpython/pull/103164/commits/0e8d8e613e96ef617ee305bd0c657788190257db
0e8d8e6https://github.com/python/cpython/pull/103164/commits/0e8d8e613e96ef617ee305bd0c657788190257db
https://github.com/barneygale
Fix missing filename in exception, tidy up more naming.https://github.com/python/cpython/pull/103164/commits/fea58ab6d6f59f371dee6e1a9bac745ddc61946c
fea58abhttps://github.com/python/cpython/pull/103164/commits/fea58ab6d6f59f371dee6e1a9bac745ddc61946c
https://github.com/barneygale
More cleanuphttps://github.com/python/cpython/pull/103164/commits/bff0f5e2bd73991628ceb0ef7835b13398340a47
bff0f5ehttps://github.com/python/cpython/pull/103164/commits/bff0f5e2bd73991628ceb0ef7835b13398340a47
https://github.com/barneygale
Even more tidy-uphttps://github.com/python/cpython/pull/103164/commits/3b216840cf5e8b407a919564ab6c0ae3b30a4cc3
3b21684https://github.com/python/cpython/pull/103164/commits/3b216840cf5e8b407a919564ab6c0ae3b30a4cc3
https://github.com/barneygale
Reduce diff a bithttps://github.com/python/cpython/pull/103164/commits/5abee55c375aa568b9e907dfe04ccbc92cfc0f0a
5abee55https://github.com/python/cpython/pull/103164/commits/5abee55c375aa568b9e907dfe04ccbc92cfc0f0a
https://github.com/barneygale
Performance improvementshttps://github.com/python/cpython/pull/103164/commits/57173d93ceffd1e9de0e008dbb71e9d0a17c3cee
57173d9https://github.com/python/cpython/pull/103164/commits/57173d93ceffd1e9de0e008dbb71e9d0a17c3cee
https://github.com/barneygale
Simplify rmtree (h/t eryksun)https://github.com/python/cpython/pull/103164/commits/58070d9a664b9370c4151c1d5fcabb6f52f3fe22
58070d9https://github.com/python/cpython/pull/103164/commits/58070d9a664b9370c4151c1d5fcabb6f52f3fe22
https://github.com/barneygale
More performance tweakshttps://github.com/python/cpython/pull/103164/commits/d61baa13ae0f3d88c7478ea9c66d588e94fd5955
d61baa1https://github.com/python/cpython/pull/103164/commits/d61baa13ae0f3d88c7478ea9c66d588e94fd5955
https://github.com/barneygale
Make error._func private, as it's only intended for shutil.rmtree()https://github.com/python/cpython/pull/103164/commits/e983dd7f83f3e9770f1a5f0c305ce11ddf97d0fc
e983dd7https://github.com/python/cpython/pull/103164/commits/e983dd7f83f3e9770f1a5f0c305ce11ddf97d0fc
https://github.com/barneygale
Improve testshttps://github.com/python/cpython/pull/103164/commits/5387d32135362734128e7948592de64b6a1e7f09
5387d32https://github.com/python/cpython/pull/103164/commits/5387d32135362734128e7948592de64b6a1e7f09
https://github.com/barneygale
Improve performancehttps://github.com/python/cpython/pull/103164/commits/75541fbf6467debd1c41f7829b7f6bbdf4b099e1
75541fbhttps://github.com/python/cpython/pull/103164/commits/75541fbf6467debd1c41f7829b7f6bbdf4b099e1
https://github.com/barneygale
Merge branch 'main' into pathlib-fwalkhttps://github.com/python/cpython/pull/103164/commits/698db60c9ab6a69d558dd00f53c95a41ee21ec0d
698db60https://github.com/python/cpython/pull/103164/commits/698db60c9ab6a69d558dd00f53c95a41ee21ec0d
https://github.com/barneygale
Supply relative paths to rmdir() in fd-based walk.https://github.com/python/cpython/pull/103164/commits/74cdd6c1ddd97f02d8960ef74ff95ecccda3b71f
74cdd6chttps://github.com/python/cpython/pull/103164/commits/74cdd6c1ddd97f02d8960ef74ff95ecccda3b71f
https://github.com/barneygale
Handle rmdir() and unlink() not accepting dir_fdhttps://github.com/python/cpython/pull/103164/commits/c17d07c2d9aadfcc541849c14d76fa5b55f5f19b
c17d07chttps://github.com/python/cpython/pull/103164/commits/c17d07c2d9aadfcc541849c14d76fa5b55f5f19b
https://github.com/barneygale
Move rmtree() implementation back into shutil.https://github.com/python/cpython/pull/103164/commits/b4f120c952b2e45bb84c6ed0d3ebddec88431806
b4f120chttps://github.com/python/cpython/pull/103164/commits/b4f120c952b2e45bb84c6ed0d3ebddec88431806
https://github.com/barneygale
Restore missing dir_fd checkhttps://github.com/python/cpython/pull/103164/commits/e856ccb910afeed2ae6289e49ffbe29bbb5fe327
e856ccbhttps://github.com/python/cpython/pull/103164/commits/e856ccb910afeed2ae6289e49ffbe29bbb5fe327
https://github.com/barneygale
Remove unnecessary change to testhttps://github.com/python/cpython/pull/103164/commits/d1e349ca002759cf63a0a11df08aad301f695b08
d1e349chttps://github.com/python/cpython/pull/103164/commits/d1e349ca002759cf63a0a11df08aad301f695b08
https://github.com/barneygale
Reduce memory usage a bit.https://github.com/python/cpython/pull/103164/commits/63e55e1ff4fa80a837f118bd42a36651a5ad8388
63e55e1https://github.com/python/cpython/pull/103164/commits/63e55e1ff4fa80a837f118bd42a36651a5ad8388
https://github.com/barneygale
Reduce diffhttps://github.com/python/cpython/pull/103164/commits/f7c53525a10898574ff61f271a99d497805880c5
f7c5352https://github.com/python/cpython/pull/103164/commits/f7c53525a10898574ff61f271a99d497805880c5
https://github.com/arhadthedev
arhadthedevhttps://github.com/arhadthedev
Apr 12, 2023 https://github.com/python/cpython/pull/103164#pullrequestreview-1381807984
View reviewed changes https://github.com/python/cpython/pull/103164/files/f7c53525a10898574ff61f271a99d497805880c5
Lib/shutil.pyhttps://github.com/python/cpython/pull/103164/files/b4f120c952b2e45bb84c6ed0d3ebddec88431806..e856ccb910afeed2ae6289e49ffbe29bbb5fe327#diff-db8ac59326160713929e0e1973aef54f0280fe9f154ef24d14244909a0e0689b
Please reload this pagehttps://github.com/python/cpython/pull/103164
https://github.com/barneygale
barneygalehttps://github.com/barneygale
Nov 22, 2023https://github.com/python/cpython/pull/103164#issuecomment-1823334973
#110109https://github.com/python/cpython/issues/110109
Please reload this pagehttps://github.com/python/cpython/pull/103164
https://github.com/barneygale
barneygalehttps://github.com/barneygale
Nov 22, 2023https://github.com/python/cpython/pull/103164#event-11040224385
Sign up for freehttps://github.com/join?source=comment-repo
Sign in to commenthttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F103164
https://github.com/arhadthedev
arhadthedev https://github.com/arhadthedev
https://github.com/python/cpython/pull/103164/files/e856ccb910afeed2ae6289e49ffbe29bbb5fe327
https://github.com/giampaolo
giampaolo https://github.com/giampaolo
awaiting core review https://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22awaiting%20core%20review%22
Please reload this pagehttps://github.com/python/cpython/pull/103164
https://github.com/barneygale
https://github.com/arhadthedev
https://github.com/bedevere-bot
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.