Skip to content

Conversation

@barneygale
Copy link
Contributor

@barneygalebarneygale commented May 16, 2025

Rename pathlib._os.magic_open() to vfsopen(). The new name is a bit less abstract, and it aligns with the vfspath() method added in 5dbd27d.

Per discussion on discourse1, adjust vfsopen() so that the following methods may be called:

  • __open_reader__()
  • __open_writer__(mode)
  • __open_updater__(mode)

These three methods return readable, writable, and full duplex file objects respectively. In the 'writer' method, mode is either 'a', 'w' or 'x'. In the 'updater' method, mode is either 'r' or 'w'.

In the pathlib ABCs, replace ReadablePath.__open_rb__() with __open_reader__(), and replace WritablePath.__open_wb__() with __open_writer__().

Footnotes

  1. https://discuss.python.org/t/open-able-objects/90238

Rename `pathlib._os.magic_open()` to `vfsopen()`. The new name is a bit less abstract, and it aligns with the `vfspath()` method added in 5dbd27d. Per discussion on discourse[^1], adjust `vfsopen()` so that the following methods may be called: - `__open_reader__()` - `__open_writer__(mode)` - `__open_updater__(mode)` These three methods return readable, writable, and full duplex file objects respectively. In the 'writer' method, *mode* is either 'a', 'w' or 'x'. In the 'updater' method, *mode* is either 'r' or 'w'. Also stop trying built-in `open()` first. I don't know whether this is a good idea or not, so it's best to leave it out for now. In the pathlib ABCs, replace `ReadablePath.__open_rb__()` with `__open_reader__()`, and replace `WritablePath.__open_wb__()` with `__open_writer__()`. [^1]: https://discuss.python.org/t/open-able-objects/90238
@barneygalebarneygale marked this pull request as ready for review May 16, 2025 18:11
@barneygale
Copy link
ContributorAuthor

Thanks for the review @encukou, sorry it took me ages to address your feedback.

@barneygalebarneygale requested a review from encukouJuly 20, 2025 16:39
barneygale added a commit to barneygale/cpython that referenced this pull request Jul 20, 2025
@barneygale
Copy link
ContributorAuthor

Thanks for the review @efimov-mikhail, much appreciated

@barneygalebarneygale merged commit 805e336 into python:mainSep 12, 2025
43 checks passed
Sign up for freeto 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

@barneygale@encukou@efimov-mikhail