On Tue, Aug 16, 2016 at 10:53 AM, Paul Moore <p.f.mo...@gmail.com> wrote:
>
> Having said all this, I can't find the documentation stating that
> bytes paths are deprecated - the open() documentation for 3.5 says
> "file is either a string or bytes object giving the pathname (absolute
> or relative to the current working directory) of the file to be opened
> or an integer file descriptor of the file to be wrapped" and there's
> no mention of a deprecation.

Bytes paths aren't deprecated on Unix -- only on Windows, and only for
the os functions. You can see the deprecation warning with -Wall:

    >>> os.listdir(b'.')
    __main__:1: DeprecationWarning: The Windows bytes API has been
deprecated, use Unicode filenames instead

AFAIK this isn't documented.

Since the Windows CRT's _open implementation uses MultiByteToWideChar
without the flag MB_ERR_INVALID_CHARS, bytes paths should also be
deprecated for io.open. The problem is that bad DBCS sequences are
mapped silently to the default Unicode character instead of raising an
error.
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to