Python 3.7¶
New Features:
Features:
Status
Coercing the legacy C locale to a UTF-8 based locale
A New C-API for Thread-Local Storage in CPython
UTF-8 mode
Deterministic pyc
Built-in breakpoint()
Data Classes
Core support for typing module and generic types
Module __getattr__ and __dir__
Partially done
Postponed Evaluation of Annotations
Time functions with nanosecond resolution
Show DeprecationWarning in __main__
Context Variables
Other Language Changes:
async and await are now reserved keywords
Completed
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 whenfrom … 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 (many, may need a separate ticket)
New features include gc.freeze(), gc.unfreeze(), gc-get_freeze_count
math.remainder() added to implement IEEE 754-style remainder
A number of tidy up features including better support for splitting on empty strings and copy support for compiled expressions and match objects
sys.breakpointhook() added. sys.get(/set)_coroutine_origin_tracking_depth() added
Mostly updates to support nanosecond resolution in PEP564, see above