Skip to content

Use set comprehension for posixpath.commonpath() #117641

Closed
@nineteendo

Description

@nineteendo

Feature or enhancement

Proposal:

We can use a set comprehension to check if no absolute and relative paths are mixed:

-try:
-    isabs, = set(p[:1] == sep for p in paths)
-except ValueError:
-    raise ValueError("Can't mix absolute and relative paths") from None
+if len({p.startswith(sep) for p in paths}) != 1:
+    raise ValueError("Can't mix absolute and relative paths")
-prefix = sep if isabs else sep[:0]
+prefix = sep if paths[0].startswith(sep) else sep[:0]

This is faster and more readable.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    type-featureA feature request or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions