Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH-102613: Fix recursion error from pathlib.Path.glob() #104373

Merged
merged 1 commit into from
May 15, 2023

Conversation

barneygale
Copy link
Contributor

@barneygale barneygale commented May 11, 2023

Use Path.walk() to implement the recursive wildcard **. This method uses an iterative (rather than recursive) walk - see GH-100282.

Use `Path.walk()` to implement the recursive wildcard `**`. This method
uses an iterative (rather than recursive) walk - see pythonGH-100282.
@barneygale
Copy link
Contributor Author

This won't backport to 3.11, as Path.walk() is new in 3.12.

@barneygale
Copy link
Contributor Author

@Ovsyanka83 would you like to review, if you have a mo? Uses your shiny walk() method! :)

@zmievsa
Copy link
Contributor

zmievsa commented May 11, 2023

Will take a look on saturday! :)

Copy link
Contributor

@zmievsa zmievsa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for using our work here! Every time "walk" gets used or mentioned, it makes me feel really nice and like my work has made a difference :D

I like the ideas and have a few suggestions here and there -- your logic feels quite right and my changes are doubtful and mostly stylistic :)

Lib/pathlib.py Show resolved Hide resolved
Lib/pathlib.py Show resolved Hide resolved
Lib/pathlib.py Show resolved Hide resolved
Copy link
Contributor

@zmievsa zmievsa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After your replies the logic itself makes much more sense so I'm ready to approve this.

@barneygale
Copy link
Contributor Author

Thank you!

@barneygale
Copy link
Contributor Author

Hey @carljm, would you be up for reviewing this? You reviewed #100282 which made Path.walk() iterative; it's that work I'm exploiting here. No worries if not, thank you!

Copy link
Member

@carljm carljm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me, apart from the one inline comment, which could be addressed as a follow-up also.

Lib/pathlib.py Show resolved Hide resolved
@barneygale barneygale merged commit cb88ae6 into python:main May 15, 2023
carljm added a commit to carljm/cpython that referenced this pull request May 16, 2023
* main:
  pythonGH-104510: Fix refleaks in `_io` base types (python#104516)
  pythongh-104539: Fix indentation error in logging.config.rst (python#104545)
  pythongh-104050: Don't star-import 'types' in Argument Clinic (python#104543)
  pythongh-104050: Add basic typing to CConverter in clinic.py (python#104538)
  pythongh-64595: Fix write file logic in Argument Clinic (python#104507)
  pythongh-104523: Inline minimal PGO rules (python#104524)
  pythongh-103861: Fix Zip64 extensions not being properly applied in some cases (python#103863)
  pythongh-69152: add method get_proxy_response_headers to HTTPConnection class (python#104248)
  pythongh-103763: Implement PEP 695 (python#103764)
  pythongh-104461: Run tkinter test_configure_screen on X11 only (pythonGH-104462)
  pythongh-104469: Convert _testcapi/watchers.c to use Argument Clinic (python#104503)
  pythongh-104482: Fix error handling bugs in ast.c (python#104483)
  pythongh-104341: Adjust tstate_must_exit() to Respect Interpreter Finalization (pythongh-104437)
  pythonGH-102613: Fix recursion error from `pathlib.Path.glob()` (pythonGH-104373)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants