Python 3.7

New Features:

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 1

PEP 565

Show DeprecationWarning in __main__

PEP 567

Context Variables

Other Language Changes:

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:

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

Notes

1

Only time.time_ns() is implemented.