A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2016-April/144133.html below:

[Python-Dev] pathlib - current status of discussions

[Python-Dev] pathlib - current status of discussionsEthan Furman ethan at stoneleaf.us
Thu Apr 14 10:54:39 EDT 2016
On 04/14/2016 05:16 AM, Victor Stinner wrote:

> I consider that the final goal of the whole discussion is to support
> something like:
>
>      path = os.path.join(pathlib_path, "str_path", direntry)
>
> Even if direntry uses a bytes filename. I expect genericpath.join() to
> be patched to use os.fspath(). If os.fspath() returns bytes,
> path.join() will fail with an annoying TypeError.
>
> I expect that DirEntry.__fspath__ uses os.fsdecode() to return str,
> just to make my life easier.

This would be where we strongly disagree.  If pathlib, as a high-level 
construct, wants to take that approach I have no issues, but the 
functions in os are low-level and as such should not be changing data 
types unless I ask for it.  I see __fspath__ as a retrieval mechanism, 
not a data-transformation mechanism.

> You can apply the same rationale for the flavors 2 and 3
> (os.fspath(path, allow_bytes=True)). Indirectly, you will get similar
> TypeError on os.path.join().

And that's fine.  Low-level interfaces should not change data types 
unless explicitly requested -- and we have fsencode() and fsdecode() for 
that.

--
~Ethan~

More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4