GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GH-110109: pathlib ABCs: do not vary path syntax by host OS. by barneygale · Pull Request #113219 · python/cpython

Conversation

@barneygale

@barneygale barneygale commented Dec 16, 2023 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Change the value of pathlib._abc.PurePathBase.pathmod from os.path to posixpath.

User subclasses of PurePathBase and PathBase previously used the host OS's path syntax, e.g. backslashes as separators on Windows. This is wrong in most use cases, and likely to catch developers out unless they test on both Windows and non-Windows machines.

In this patch we change the default to POSIX syntax, regardless of OS. This is somewhat arguable (why not make all aspects of syntax abstract and individually configurable?) but an improvement all the same.

This change has no effect on PurePath, Path, nor their subclasses. Only private APIs are affected.

  • Issue: User-defined virtual path objects #110109
  • Issue: Inconsistent behaviour between Windows and Posix barneygale/pathlib-abc#1

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@barneygale
pythonGH-110109: pathlib ABCs: do not vary path syntax by host OS.
a03b584
Change the value of `pathlib._abc.PurePathBase.pathmod` from `os.path` to
`posixpath`.

User subclasses of `PurePathBase` and `PathBase` previously used the host
OS's path syntax, e.g. backslashes as separators on Windows. This is wrong
in most use cases, and likely to catch developers out unless they test on
both Windows and non-Windows machines.

In this patch we change the default to POSIX syntax, regardless of OS. This
is somewhat arguable (why not make all aspects of syntax abstract and
individually configurable?) but an improvement all the same.

This change has no effect on `PurePath`, `Path`, nor their subclasses. Only
private APIs are affected.
@barneygale barneygale added skip news topic-pathlib labels Dec 16, 2023
@bedevere-app bedevere-app Bot mentioned this pull request Dec 16, 2023
User-defined virtual path objects #110109
Closed
8 tasks done
barneygale added 5 commits December 16, 2023 23:03
@barneygale
Don't use system working directory in ABC tests
f4facbb
@barneygale
Fix docstring test
60ef4db
@barneygale
Merge branch 'main' into pythongh-110109-purepathbase-posixpath
c5b111f
@barneygale
Fix dodgy merge
7958eff
@barneygale
Add comment
2867922
@barneygale
barneygale marked this pull request as ready for review December 17, 2023 01:29
@bedevere-app bedevere-app Bot added the awaiting core review label Dec 17, 2023
@barneygale
Merge branch 'main' into pythongh-110109-purepathbase-posixpath
6368603
@barneygale
barneygale enabled auto-merge (squash) December 22, 2023 18:04
@barneygale
barneygale merged commit a0d3d3e into python:main Dec 22, 2023
@bedevere-app bedevere-app Bot removed the awaiting core review label Dec 22, 2023
ryan-duve pushed a commit to ryan-duve/cpython that referenced this pull request Dec 26, 2023
@barneygale @ryan-duve
pythonGH-110109: pathlib ABCs: do not vary path syntax by host OS. (p…
a3da2cd
…ython#113219)

Change the value of `pathlib._abc.PurePathBase.pathmod` from `os.path` to
`posixpath`.

User subclasses of `PurePathBase` and `PathBase` previously used the host
OS's path syntax, e.g. backslashes as separators on Windows. This is wrong
in most use cases, and likely to catch developers out unless they test on
both Windows and non-Windows machines.

In this patch we change the default to POSIX syntax, regardless of OS. This
is somewhat arguable (why not make all aspects of syntax abstract and
individually configurable?) but an improvement all the same.

This change has no effect on `PurePath`, `Path`, nor their subclasses. Only
private APIs are affected.
kulikjak pushed a commit to kulikjak/cpython that referenced this pull request Jan 22, 2024
@barneygale @kulikjak
pythonGH-110109: pathlib ABCs: do not vary path syntax by host OS. (p…
1793937
…ython#113219)

Change the value of `pathlib._abc.PurePathBase.pathmod` from `os.path` to
`posixpath`.

User subclasses of `PurePathBase` and `PathBase` previously used the host
OS's path syntax, e.g. backslashes as separators on Windows. This is wrong
in most use cases, and likely to catch developers out unless they test on
both Windows and non-Windows machines.

In this patch we change the default to POSIX syntax, regardless of OS. This
is somewhat arguable (why not make all aspects of syntax abstract and
individually configurable?) but an improvement all the same.

This change has no effect on `PurePath`, `Path`, nor their subclasses. Only
private APIs are affected.
aisk pushed a commit to aisk/cpython that referenced this pull request Feb 11, 2024
@barneygale @aisk
pythonGH-110109: pathlib ABCs: do not vary path syntax by host OS. (p…
a3637df
…ython#113219)

Change the value of `pathlib._abc.PurePathBase.pathmod` from `os.path` to
`posixpath`.

User subclasses of `PurePathBase` and `PathBase` previously used the host
OS's path syntax, e.g. backslashes as separators on Windows. This is wrong
in most use cases, and likely to catch developers out unless they test on
both Windows and non-Windows machines.

In this patch we change the default to POSIX syntax, regardless of OS. This
is somewhat arguable (why not make all aspects of syntax abstract and
individually configurable?) but an improvement all the same.

This change has no effect on `PurePath`, `Path`, nor their subclasses. Only
private APIs are affected.
Glyphack pushed a commit to Glyphack/cpython that referenced this pull request Sep 2, 2024
@barneygale @Glyphack
pythonGH-110109: pathlib ABCs: do not vary path syntax by host OS. (p…
14ad0b7
…ython#113219)

Change the value of `pathlib._abc.PurePathBase.pathmod` from `os.path` to
`posixpath`.

User subclasses of `PurePathBase` and `PathBase` previously used the host
OS's path syntax, e.g. backslashes as separators on Windows. This is wrong
in most use cases, and likely to catch developers out unless they test on
both Windows and non-Windows machines.

In this patch we change the default to POSIX syntax, regardless of OS. This
is somewhat arguable (why not make all aspects of syntax abstract and
individually configurable?) but an improvement all the same.

This change has no effect on `PurePath`, `Path`, nor their subclasses. Only
private APIs are affected.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

skip news topic-pathlib

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@barneygale
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.