diff options
author | Brett Cannon <brett@python.org> | 2016-06-10 19:20:49 (GMT) |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2016-06-10 19:20:49 (GMT) |
commit | 568be63248614a2cdd7666a67ddfd16e817f7db9 (patch) | |
tree | f59d0822885c5185a7dfb464cd443ea8d5696109 /Doc/library/pathlib.rst | |
parent | f41b82fb19d1b91f99ab657e4c6a751c44152f12 (diff) | |
download | cpython-568be63248614a2cdd7666a67ddfd16e817f7db9.zip cpython-568be63248614a2cdd7666a67ddfd16e817f7db9.tar.gz cpython-568be63248614a2cdd7666a67ddfd16e817f7db9.tar.bz2 |
Issue #27186: Add os.PathLike support to pathlib.
This adds support both to pathlib.PurePath's constructor as well as
implementing __fspath__(). This removes the provisional status for
pathlib.
Initial patch by Dusty Phillips.
Diffstat (limited to 'Doc/library/pathlib.rst')
-rw-r--r-- | Doc/library/pathlib.rst | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst index ff5196d..ca44a65 100644 --- a/Doc/library/pathlib.rst +++ b/Doc/library/pathlib.rst @@ -31,12 +31,6 @@ Pure paths are useful in some special cases; for example: accessing the OS. In this case, instantiating one of the pure classes may be useful since those simply don't have any OS-accessing operations. -.. note:: - This module has been included in the standard library on a - :term:`provisional basis <provisional package>`. Backwards incompatible - changes (up to and including removal of the package) may occur if deemed - necessary by the core developers. - .. seealso:: :pep:`428`: The pathlib module -- object-oriented filesystem paths. @@ -107,7 +101,8 @@ we also call *flavours*: PurePosixPath('setup.py') Each element of *pathsegments* can be either a string representing a - path segment, or another path object:: + path segment, an object implementing the :class:`os.PathLike` interface + which returns a string, or another path object:: >>> PurePath('foo', 'some/path', 'bar') PurePosixPath('foo/some/path/bar') @@ -148,6 +143,12 @@ we also call *flavours*: to ``PurePosixPath('bar')``, which is wrong if ``foo`` is a symbolic link to another directory) + Pure path objects implement the :class:`os.PathLike` interface, allowing them + to be used anywhere the interface is accepted. + + .. versionchanged:: 3.6 + Added support for the :class:`os.PathLike` interface. + .. class:: PurePosixPath(*pathsegments) A subclass of :class:`PurePath`, this path flavour represents non-Windows @@ -212,6 +213,14 @@ The slash operator helps create child paths, similarly to :func:`os.path.join`:: >>> '/usr' / q PurePosixPath('/usr/bin') +A path object can be used anywhere an object implementing :class:`os.PathLike` +is accepted:: + + >>> import os + >>> p = PurePath('/etc') + >>> os.fspath(p) + '/etc' + The string representation of a path is the raw filesystem path itself (in native form, e.g. with backslashes under Windows), which you can pass to any function taking a file path as a string:: |