---
- #23: Added support for symbolic masks to ``.chmod``.
7.0
---
- The ``open`` method now uses ``io.open`` and supports all of the
parameters to that function. ``open`` will always raise an ``OSError``
on failure, even on Python 2.
- Updated ``write_text`` to support additional newline patterns.
- The ``text`` method now always returns text (never bytes), and thus
requires an encoding parameter be supplied if the default encoding is not
sufficient to decode the content of the file.
6.2
---
- ``path`` class renamed to ``Path``. The ``path`` name remains as an alias
for compatibility.
6.1
---
- ``chown`` now accepts names in addition to numeric IDs.
6.0
---
- Drop support for Python 2.5. Python 2.6 or later required.
- Installation now requires setuptools.
5.3
---
- Allow arbitrary callables to be passed to path.walk ``errors`` parameter.
Enables workaround for issues such as #73 and #56.
5.2
---
- #61: path.listdir now decodes filenames from os.listdir when loading
characters from a file. On Python 3, the behavior is unchanged. On Python
2, the behavior will now mimick that of Python 3, attempting to decode
all filenames and paths using the encoding indicated by
``sys.getfilesystemencoding()``, and escaping any undecodable characters
using the 'surrogateescape' handler.
5.1
---
- #53: Added ``path.in_place`` for editing files in place.
5.0
---
- ``path.fnmatch`` now takes an optional parameter ``normcase`` and this
parameter defaults to self.module.normcase (using case normalization most
pertinent to the path object itself). Note that this change means that
any paths using a custom ntpath module on non-Windows systems will have
different fnmatch behavior. Before::
# on Unix
>>> p = path('Foo')
>>> p.module = ntpath
>>> p.fnmatch('foo')
False
After::
# on any OS
>>> p = path('Foo')
>>> p.module = ntpath
>>> p.fnmatch('foo')
True
To maintain the original behavior, either don't define the 'module' for the
path or supply explicit normcase function::
>>> p.fnmatch('foo', normcase=os.path.normcase)
# result always varies based on OS, same as fnmatch.fnmatch
For most use-cases, the default behavior should remain the same.
- Issue #50: Methods that accept patterns (``listdir``, ``files``, ``dirs``,
``walk``, ``walkdirs``, ``walkfiles``, and ``fnmatch``) will now use a
``normcase`` attribute if it is present on the ``pattern`` parameter. The
path module now provides a ``CaseInsensitivePattern`` wrapper for strings
suitable for creating case-insensitive patterns for those methods.