Skip to content

Misleading exception message from pathlib.PurePath() when mixing str and bytes arguments#103525

@barneygale

Description

@barneygale

Since 6716254, attempting to create a pathlib.PurePath or Path object with mixed str and bytes arguments raises a TypeError (yay!) with a misleading message (booo!):

>>>importpathlib>>>pathlib.Path('foo', b'bar') TypeError: Can'tmixstringsandbytesinpathcomponents

This message implies that bytes are supported, as long as we don't mix them with strings. And yet when we try that:

>>>pathlib.Path(b'foo', b'bar') TypeError: argumentshouldbeastroranos.PathLikeobjectwhere__fspath__returnsastr, not'bytes'

This message is better, and should be used in the former case.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.12only security fixestopic-pathlibtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions