◐ Shell
reader mode source ↗
Skip to content

GH-73991: Add follow_symlinks argument to pathlib.Path.copy()#120519

Merged
barneygale merged 4 commits into
python:mainfrom
barneygale:gh-73991-follow-symlinks
Jun 19, 2024
Merged

GH-73991: Add follow_symlinks argument to pathlib.Path.copy()#120519
barneygale merged 4 commits into
python:mainfrom
barneygale:gh-73991-follow-symlinks

Conversation

@barneygale

@barneygale barneygale commented Jun 14, 2024

Copy link
Copy Markdown
Contributor

Add support for not following symlinks in pathlib.Path.copy().

On Windows we add the COPY_FILE_COPY_SYMLINK flag is following symlinks is disabled. If the source is symlink to a directory, this call will fail with ERROR_ACCESS_DENIED. In this case we add COPY_FILE_DIRECTORY to the flags and retry. This can fail on old Windowses, which we note in the docs.

No news as copy() was only just added.


📚 Documentation preview 📚: https://cpython-previews--120519.org.readthedocs.build/

Add support for not following symlinks in `pathlib.Path.copy()`.

On Windows we add the `COPY_FILE_COPY_SYMLINK` flag is following symlinks
is disabled. If the source is symlink to a directory, this call will fail
with `ERROR_ACCESS_DENIED`. In this case we add `COPY_FILE_DIRECTORY` to
the flags and retry.
@barneygale barneygale requested a review from eryksun June 14, 2024 19:55
@barneygale barneygale changed the title GH-73991: Add *follow_symlinks* argument to pathlib.Path.copy() Jun 14, 2024
@barneygale barneygale requested a review from zooba June 18, 2024 17:42

@zooba zooba left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hide comment

Looks good, left some thoughts, but nothing blocking.

@barneygale barneygale enabled auto-merge (squash) June 19, 2024 00:38
@barneygale barneygale merged commit 20d5b84 into python:main Jun 19, 2024
mrahtz pushed a commit to mrahtz/cpython that referenced this pull request Jun 30, 2024
…python#120519)

Add support for not following symlinks in `pathlib.Path.copy()`.

On Windows we add the `COPY_FILE_COPY_SYMLINK` flag is following symlinks is disabled. If the source is symlink to a directory, this call will fail with `ERROR_ACCESS_DENIED`. In this case we add `COPY_FILE_DIRECTORY` to the flags and retry. This can fail on old Windowses, which we note in the docs.

No news as `copy()` was only just added.
noahbkim pushed a commit to hudson-trading/cpython that referenced this pull request Jul 11, 2024
…python#120519)

Add support for not following symlinks in `pathlib.Path.copy()`.

On Windows we add the `COPY_FILE_COPY_SYMLINK` flag is following symlinks is disabled. If the source is symlink to a directory, this call will fail with `ERROR_ACCESS_DENIED`. In this case we add `COPY_FILE_DIRECTORY` to the flags and retry. This can fail on old Windowses, which we note in the docs.

No news as `copy()` was only just added.
estyxx pushed a commit to estyxx/cpython that referenced this pull request Jul 17, 2024
…python#120519)

Add support for not following symlinks in `pathlib.Path.copy()`.

On Windows we add the `COPY_FILE_COPY_SYMLINK` flag is following symlinks is disabled. If the source is symlink to a directory, this call will fail with `ERROR_ACCESS_DENIED`. In this case we add `COPY_FILE_DIRECTORY` to the flags and retry. This can fail on old Windowses, which we note in the docs.

No news as `copy()` was only just added.
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.

3 participants