This is the documentation for the latest development branch of MicroPython and may refer to features that are not available in released versions.

If you are looking for the documentation for a specific release, use the drop-down menu on the left and select the desired version.

Python 3.7

New Features:



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__


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


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:


Too many to list


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