Python 3.7¶
New Features:
Features: 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__ Partially done PEP 563 Postponed Evaluation of Annotations PEP 564 Time functions with nanosecond resolution PEP 565 Show DeprecationWarning in __main__ PEP 567 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 asyncio (many, may need a separate ticket) 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