Merge 3.5 branches
This commit is contained in:
commit
6a563b6839
|
@ -48,7 +48,6 @@
|
|||
when researching a change.
|
||||
|
||||
This article explains the new features in Python 3.5, compared to 3.4.
|
||||
|
||||
For full details, see the :source:`Misc/NEWS` file.
|
||||
|
||||
.. note::
|
||||
|
@ -83,13 +82,16 @@ New library modules:
|
|||
New built-in features:
|
||||
|
||||
* ``bytes % args``, ``bytearray % args``: :pep:`461` - Adding ``%`` formatting
|
||||
to bytes and bytearray
|
||||
to bytes and bytearray.
|
||||
|
||||
* ``b'\xf0\x9f\x90\x8d'.hex()``, ``bytearray(b'\xf0\x9f\x90\x8d').hex()``,
|
||||
``memoryview(b'\xf0\x9f\x90\x8d').hex()``: :issue:`9951` - A ``hex`` method
|
||||
has been added to bytes, bytearray, and memoryview.
|
||||
|
||||
* Generators have new ``gi_yieldfrom`` attribute, which returns the
|
||||
object being iterated by ``yield from`` expressions. (Contributed
|
||||
by Benno Leslie and Yury Selivanov in :issue:`24450`.)
|
||||
|
||||
* New :exc:`RecursionError` exception. (Contributed by Georg Brandl
|
||||
in :issue:`19235`.)
|
||||
|
||||
|
@ -101,6 +103,7 @@ Implementation improvements:
|
|||
(:issue:`19977`).
|
||||
|
||||
* :pep:`488`, the elimination of ``.pyo`` files.
|
||||
|
||||
* :pep:`489`, multi-phase initialization of extension modules.
|
||||
|
||||
Significantly Improved Library Modules:
|
||||
|
@ -120,6 +123,11 @@ Significantly Improved Library Modules:
|
|||
protocol handling from network IO. (Contributed by Geert Jansen in
|
||||
:issue:`21965`.)
|
||||
|
||||
* :mod:`traceback` has new lightweight and convenient to work with
|
||||
classes :class:`~traceback.TracebackException`,
|
||||
:class:`~traceback.StackSummary`, and :class:`traceback.FrameSummary`.
|
||||
(Contributed by Robert Collins in :issue:`17911`.)
|
||||
|
||||
Security improvements:
|
||||
|
||||
* SSLv3 is now disabled throughout the standard library.
|
||||
|
@ -135,27 +143,13 @@ Windows improvements:
|
|||
|
||||
* A new installer for Windows has replaced the old MSI. See :ref:`using-on-windows`
|
||||
for more information.
|
||||
|
||||
* Windows builds now use Microsoft Visual C++ 14.0, and extension modules
|
||||
should use the same.
|
||||
|
||||
|
||||
Please read on for a comprehensive list of user-facing changes.
|
||||
|
||||
|
||||
.. PEP-sized items next.
|
||||
|
||||
.. _pep-4XX:
|
||||
|
||||
.. PEP 4XX: Virtual Environments
|
||||
.. =============================
|
||||
|
||||
|
||||
.. (Implemented by Foo Bar.)
|
||||
|
||||
.. .. seealso::
|
||||
|
||||
:pep:`4XX` - Python Virtual Environments
|
||||
PEP written by Carl Meyer
|
||||
Please read on for a comprehensive list of user-facing changes, including many
|
||||
other smaller improvements, CPython optimizations, deprecations, and potential
|
||||
porting issues.
|
||||
|
||||
|
||||
New Features
|
||||
|
@ -267,7 +261,12 @@ Matrix multiplication is a notably common operation in many fields of
|
|||
mathematics, science, engineering, and the addition of ``@`` allows writing
|
||||
cleaner code::
|
||||
|
||||
>>> S = (H @ beta - r).T @ inv(H @ V @ H.T) @ (H @ beta - r)
|
||||
S = (H @ beta - r).T @ inv(H @ V @ H.T) @ (H @ beta - r)
|
||||
|
||||
instead of::
|
||||
|
||||
S = dot((dot(H, beta) - r).T,
|
||||
dot(inv(dot(dot(H, V), H.T)), dot(H, beta) - r))
|
||||
|
||||
An upcoming release of NumPy 1.10 will add support for the new operator::
|
||||
|
||||
|
@ -411,60 +410,38 @@ Examples of functions which are now retried when interrupted by a signal
|
|||
instead of raising :exc:`InterruptedError` if the Python signal handler does
|
||||
not raise an exception:
|
||||
|
||||
* :func:`open`, :func:`os.open`, :func:`io.open`
|
||||
* functions of the :mod:`faulthandler` module
|
||||
* :mod:`os` functions:
|
||||
* :func:`open`, :func:`os.open`, :func:`io.open`;
|
||||
|
||||
- :func:`os.fchdir`
|
||||
- :func:`os.fchmod`
|
||||
- :func:`os.fchown`
|
||||
- :func:`os.fdatasync`
|
||||
- :func:`os.fstat`
|
||||
- :func:`os.fstatvfs`
|
||||
- :func:`os.fsync`
|
||||
- :func:`os.ftruncate`
|
||||
- :func:`os.mkfifo`
|
||||
- :func:`os.mknod`
|
||||
- :func:`os.posix_fadvise`
|
||||
- :func:`os.posix_fallocate`
|
||||
- :func:`os.pread`
|
||||
- :func:`os.pwrite`
|
||||
- :func:`os.read`
|
||||
- :func:`os.readv`
|
||||
- :func:`os.sendfile`
|
||||
- :func:`os.wait3`
|
||||
- :func:`os.wait4`
|
||||
- :func:`os.wait`
|
||||
- :func:`os.waitid`
|
||||
- :func:`os.waitpid`
|
||||
- :func:`os.write`
|
||||
- :func:`os.writev`
|
||||
- special cases: :func:`os.close` and :func:`os.dup2` now ignore
|
||||
:py:data:`~errno.EINTR` error, the syscall is not retried (see the PEP
|
||||
for the rationale)
|
||||
* functions of the :mod:`faulthandler` module;
|
||||
|
||||
* :mod:`select` functions:
|
||||
* :mod:`os` functions: :func:`~os.fchdir`, :func:`~os.fchmod`,
|
||||
:func:`~os.fchown`, :func:`~os.fdatasync`, :func:`~os.fstat`,
|
||||
:func:`~os.fstatvfs`, :func:`~os.fsync`, :func:`~os.ftruncate`,
|
||||
:func:`~os.mkfifo`, :func:`~os.mknod`, :func:`~os.posix_fadvise`,
|
||||
:func:`~os.posix_fallocate`, :func:`~os.pread`, :func:`~os.pwrite`,
|
||||
:func:`~os.read`, :func:`~os.readv`, :func:`~os.sendfile`,
|
||||
:func:`~os.wait3`, :func:`~os.wait4`, :func:`~os.wait`,
|
||||
:func:`~os.waitid`, :func:`~os.waitpid`, :func:`~os.write`,
|
||||
:func:`~os.writev`;
|
||||
|
||||
- :func:`select.devpoll.poll`
|
||||
- :func:`select.epoll.poll`
|
||||
- :func:`select.kqueue.control`
|
||||
- :func:`select.poll.poll`
|
||||
- :func:`select.select`
|
||||
* special cases: :func:`os.close` and :func:`os.dup2` now ignore
|
||||
:py:data:`~errno.EINTR` error, the syscall is not retried (see the PEP
|
||||
for the rationale);
|
||||
|
||||
* :func:`socket.socket` methods:
|
||||
* :mod:`select` functions: :func:`~select.devpoll.poll`,
|
||||
:func:`~select.epoll.poll`, :func:`~select.kqueue.control`,
|
||||
:func:`~select.poll.poll`, :func:`~select.select`;
|
||||
|
||||
- :meth:`~socket.socket.accept`
|
||||
- :meth:`~socket.socket.connect` (except for non-blocking sockets)
|
||||
- :meth:`~socket.socket.recv`
|
||||
- :meth:`~socket.socket.recvfrom`
|
||||
- :meth:`~socket.socket.recvmsg`
|
||||
- :meth:`~socket.socket.send`
|
||||
- :meth:`~socket.socket.sendall`
|
||||
- :meth:`~socket.socket.sendmsg`
|
||||
- :meth:`~socket.socket.sendto`
|
||||
* :func:`socket.socket` methods: :meth:`~socket.socket.accept`,
|
||||
:meth:`~socket.socket.connect` (except for non-blocking sockets),
|
||||
:meth:`~socket.socket.recv`, :meth:`~socket.socket.recvfrom`,
|
||||
:meth:`~socket.socket.recvmsg`, :meth:`~socket.socket.send`,
|
||||
:meth:`~socket.socket.sendall`, :meth:`~socket.socket.sendmsg`,
|
||||
:meth:`~socket.socket.sendto`;
|
||||
|
||||
* :func:`signal.sigtimedwait`, :func:`signal.sigwaitinfo`
|
||||
* :func:`time.sleep`
|
||||
* :func:`signal.sigtimedwait`, :func:`signal.sigwaitinfo`;
|
||||
|
||||
* :func:`time.sleep`.
|
||||
|
||||
.. seealso::
|
||||
|
||||
|
|
Loading…
Reference in New Issue