[Python-Dev] pathlib - current status of discussions
cybersol at yahoo.com
Thu Apr 14 11:59:56 EDT 2016
Ethan Furman <ethan <at> stoneleaf.us> writes:
> On 04/14/2016 12:03 AM, Michael Mysinger via Python-Dev wrote:
> > In particular, one RichPath
> > class might return bytes and another str, or even worse the same class
> > sometimes return bytes and sometimes str. When will os.path.join blow up
> > to mixing bytes and str and when will it work in those situations?
> What are you asking here? ... Meaning allowing os.fspath()
> and __fspath__ to return either bytes or str will never cause the
> combination of bytes and str to work. Said another way: if you are
> using os.path.join then all the pieces have be str or all the pieces
> have to be bytes.
I am saying that if os.path.join now accepts RichPath objects, and those
objects can return either str or bytes, then its much harder to reason about
when I have all bytes or all strings. In essence, you will force me to pre-
wrap all RichPath objects in either os.fsencode(os.fspath(path)) or
os.fsdecode(os.fspath(path)), just so I can reason about the type. And if I
have to always do that wrapping then os.path.join doesn't need to accept
RichPath objects and call fspath at all.
More information about the Python-Dev