diff options
author | Brett Cannon <brett@python.org> | 2016-06-24 19:21:47 (GMT) |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2016-06-24 19:21:47 (GMT) |
commit | c28592bb2fbc294f404eab2ca29c2f35224af349 (patch) | |
tree | b35830463d2a2155f348d441b4ac4df9187cd06d | |
parent | c78ca1e044b7ca4c1764bb3670196e72351d4467 (diff) | |
download | cpython-c28592bb2fbc294f404eab2ca29c2f35224af349.zip cpython-c28592bb2fbc294f404eab2ca29c2f35224af349.tar.gz cpython-c28592bb2fbc294f404eab2ca29c2f35224af349.tar.bz2 |
Issue #27186: Define what a "path-like object" is.
Thanks to Dusty Phillips for the initial patch.
-rw-r--r-- | Doc/glossary.rst | 10 | ||||
-rw-r--r-- | Doc/library/os.rst | 16 |
2 files changed, 19 insertions, 7 deletions
diff --git a/Doc/glossary.rst b/Doc/glossary.rst index 43af006..fe17595 100644 --- a/Doc/glossary.rst +++ b/Doc/glossary.rst @@ -778,6 +778,16 @@ Glossary One of the default :term:`meta path finders <meta path finder>` which searches an :term:`import path` for modules. + path-like object + An object representing a file system path. A path-like object is either + a :class:`str` or :class:`bytes` object representing a path, or an object + implementing the :class:`os.PathLike` protocol. An object that supports + the :class:`os.PathLike` protocol can be converted to a :class:`str` or + :class:`bytes` file system path by calling the :func:`os.fspath` function; + :func:`os.fsdecode` and :func:`os.fsencode` can be used to guarantee a + :class:`str` or :class:`bytes` result instead, respectively. Introduced + by :pep:`519`. + portion A set of files in a single directory (possibly stored in a zip file) that contribute to a namespace package, as defined in :pep:`420`. diff --git a/Doc/library/os.rst b/Doc/library/os.rst index 0346cc2..e7cf4fa 100644 --- a/Doc/library/os.rst +++ b/Doc/library/os.rst @@ -171,8 +171,9 @@ process and user. .. function:: fsencode(filename) - Encode *filename* to the filesystem encoding with ``'surrogateescape'`` - error handler, or ``'strict'`` on Windows; return :class:`bytes` unchanged. + Encode :term:`path-like <path-like object>` *filename* to the filesystem + encoding with ``'surrogateescape'`` error handler, or ``'strict'`` on + Windows; return :class:`bytes` unchanged. :func:`fsdecode` is the reverse function. @@ -185,8 +186,9 @@ process and user. .. function:: fsdecode(filename) - Decode *filename* from the filesystem encoding with ``'surrogateescape'`` - error handler, or ``'strict'`` on Windows; return :class:`str` unchanged. + Decode the :term:`path-like <path-like object>` *filename* from the + filesystem encoding with ``'surrogateescape'`` error handler, or ``'strict'`` + on Windows; return :class:`str` unchanged. :func:`fsencode` is the reverse function. @@ -2003,8 +2005,8 @@ features: control over errors, you can catch :exc:`OSError` when calling one of the ``DirEntry`` methods and handle as appropriate. - To be directly usable as a path-like object, ``DirEntry`` implements the - :class:`os.PathLike` interface. + To be directly usable as a :term:`path-like object`, ``DirEntry`` implements + the :class:`os.PathLike` interface. Attributes and methods on a ``DirEntry`` instance are as follows: @@ -2112,7 +2114,7 @@ features: Note that there is a nice correspondence between several attributes and methods of ``DirEntry`` and of :class:`pathlib.Path`. In - particular, the ``name`` and ``path`` attributes have the same + particular, the ``name`` attribute has the same meaning, as do the ``is_dir()``, ``is_file()``, ``is_symlink()`` and ``stat()`` methods. |