[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/MicroPerceptron/micropython/master/docs/differences/python_37.rst [Back]  [Original]

.. _python_37:

Python 3.7
==========

New Features:

.. table::
  :widths: 20 60 20

  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | **Feature**                                                                                               | **Status**                           |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 538 `_ | Coercing the legacy C locale to a UTF-8 based    |                                      |
  |                                                        | locale                                           |                                      |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 539 `_ | A New C-API for Thread-Local Storage in CPython  |                                      |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 540 `_ | UTF-8 mode                                       |                                      |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 552 `_ | Deterministic pyc                                |                                      |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 553 `_ | Built-in ``breakpoint()``                        |                                      |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 557 `_ | Data Classes                                     |                                      |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 560 `_ | Core support for typing module and generic types |                                      |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 562 `_ | Module ``__getattr__`` and ``__dir__``           | Partial                              |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 563 `_ | Postponed Evaluation of Annotations              |                                      |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 564 `_ | Time functions with nanosecond resolution        | Partial [#ftimenanosec]_             |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 565 `_ | Show DeprecationWarning in ``__main__``          |                                      |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+
  | `PEP 567 `_ | Context Variables                                |                                      |
  +--------------------------------------------------------+--------------------------------------------------+--------------------------------------+

Other Language Changes:

.. table::
  :widths: 90 10

  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | ``async`` and ``await`` are now reserved keywords                                                               | Complete       |
  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | ``dict`` objects must preserve insertion-order                                                                  |                |
  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | More than 255 arguments can now be passed to a function; a function can now have more than 255 parameters       |                |
  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | ``bytes.fromhex()`` and ``bytearray.fromhex()`` now ignore all ASCII whitespace, not only spaces                |                |
  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | ``str``, ``bytes``, and ``bytearray`` gained support for the new ``isascii()`` method, which can be used to     |                |
  | test if a string or bytes contain only the ASCII characters                                                     |                |
  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | ``ImportError`` now displays module name and module ``__file__`` path when ``from ... import ...`` fails        |                |
  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | Circular imports involving absolute imports with binding a submodule to a name are now supported                |                |
  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | ``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than ``format(str(self), '')``              |                |
  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | In order to better support dynamic creation of stack traces, ``types.TracebackType`` can now be                 |                |
  | instantiated from Python code, and the ``tb_next`` attribute on tracebacks is now writable                      |                |
  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | When using the ``-m`` switch, ``sys.path[0]`` is now eagerly expanded to the full starting directory path,      |                |
  | rather than being left as the empty directory (which allows imports from the current working directory          |                |
  | at the time when an import occurs)                                                                              |                |
  +-----------------------------------------------------------------------------------------------------------------+----------------+
  | The new ``-X importtime`` option or the ``PYTHONPROFILEIMPORTTIME`` environment variable can be used to         |                |
  | show the timing of each module import                                                                           |                |
  +-----------------------------------------------------------------------------------------------------------------+----------------+

Changes to built-in modules:

.. table::
  :widths: 90 10

  +------------------------------------------------------------------------------------------------------------+----------------+
  | `asyncio `_                                           |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | Too many to list                                                                                           |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | `gc `_                                                     |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | New features include *gc.freeze()*, *gc.unfreeze()*, *gc-get_freeze_count*                                 |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | `math `_                                                 |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | math.remainder() added to implement IEEE 754-style remainder                                               |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | `re `_                                                     |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | A number of tidy up features including better support for splitting on empty strings and copy support for  |                |
  | compiled expressions and match objects                                                                     |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | `sys `_                                                   |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | sys.breakpointhook() added. sys.get(/set)_coroutine_origin_tracking_depth() added                          |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | `time `_                                                 |                |
  +------------------------------------------------------------------------------------------------------------+----------------+
  | Mostly updates to support nanosecond resolution in PEP564, see above                                       |                |
  +------------------------------------------------------------------------------------------------------------+----------------+

.. rubric:: Notes

.. [#ftimenanosec] Only :func:`time.time_ns` is implemented.

Web Proxy Viewer  |  New URL  |  Original Page