# 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.

Language and External Links

Language
  English
  中文

External links
  openmv.io
  forums.openmv.io
  github.com/openmv/openmv
  micropython.org
  forum.micropython.org
  github.com/micropython/micropython