[Python-ideas] Define __fspath__() for NamedTemporaryFile and TemporaryDirectory

Antoine Pietri antoine.pietri1 at gmail.com
Thu Jun 8 09:42:16 EDT 2017


Hello everyone!

A very common pattern when dealing with temporary files is code like this:

    with tempfile.TemporaryDirectory() as tmpdir:
        tmp_path = tmpdir.name

        os.chmod(tmp_path)
        os.foobar(tmp_path)
        open(tmp_path).read(barquux)

PEP 519 (https://www.python.org/dev/peps/pep-0519/) introduced the
concept of "path-like objects", objects that define a __fspath__()
method. Most of the standard library has been adapted so that the
functions accept path-like objects.

My proposal is to define __fspath__() for TemporaryDirectory and
NamedTemporaryFile so that we can pass those directly to the library
functions instead of having to use the .name attribute explicitely.

Thoughts? :-)

-- 
Antoine Pietri


More information about the Python-ideas mailing list