.. _python_37: 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 | | +------------------------------------------------------------------------------------------------------------+----------------+