2017-07-01 15:09:40 -04:00
|
|
|
.. _micropython_lib:
|
|
|
|
|
2015-06-04 18:53:26 -04:00
|
|
|
MicroPython libraries
|
|
|
|
=====================
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2017-05-14 17:26:44 -04:00
|
|
|
.. warning::
|
|
|
|
|
|
|
|
Important summary of this section
|
|
|
|
|
|
|
|
* MicroPython implements a subset of Python functionality for each module.
|
|
|
|
* To ease extensibility, MicroPython versions of standard Python modules
|
2017-12-23 14:21:08 -05:00
|
|
|
usually have ``u`` ("micro") prefix.
|
2017-05-14 17:26:44 -04:00
|
|
|
* Any particular MicroPython variant or port may miss any feature/function
|
2017-12-23 14:21:08 -05:00
|
|
|
described in this general documentation (due to resource constraints or
|
|
|
|
other limitations).
|
2017-05-14 17:26:44 -04:00
|
|
|
|
|
|
|
|
2016-06-02 06:05:13 -04:00
|
|
|
This chapter describes modules (function and class libraries) which are built
|
2017-12-23 14:21:08 -05:00
|
|
|
into MicroPython. There are a few categories of such modules:
|
2016-06-01 17:08:07 -04:00
|
|
|
|
2016-06-02 06:05:13 -04:00
|
|
|
* Modules which implement a subset of standard Python functionality and are not
|
|
|
|
intended to be extended by the user.
|
|
|
|
* Modules which implement a subset of Python functionality, with a provision
|
|
|
|
for extension by the user (via Python code).
|
|
|
|
* Modules which implement MicroPython extensions to the Python standard libraries.
|
2020-06-03 21:38:45 -04:00
|
|
|
* Modules specific to a particular :term:`MicroPython port` and thus not portable.
|
2016-06-01 17:08:07 -04:00
|
|
|
|
2017-12-23 14:21:08 -05:00
|
|
|
Note about the availability of the modules and their contents: This documentation
|
2016-06-01 17:08:07 -04:00
|
|
|
in general aspires to describe all modules and functions/classes which are
|
2017-12-23 14:21:08 -05:00
|
|
|
implemented in MicroPython project. However, MicroPython is highly configurable, and
|
2016-06-01 17:08:07 -04:00
|
|
|
each port to a particular board/embedded system makes available only a subset
|
|
|
|
of MicroPython libraries. For officially supported ports, there is an effort
|
|
|
|
to either filter out non-applicable items, or mark individual descriptions
|
|
|
|
with "Availability:" clauses describing which ports provide a given feature.
|
2017-12-23 14:21:08 -05:00
|
|
|
|
2016-06-02 06:05:13 -04:00
|
|
|
With that in mind, please still be warned that some functions/classes
|
2017-12-23 14:21:08 -05:00
|
|
|
in a module (or even the entire module) described in this documentation **may be
|
|
|
|
unavailable** in a particular build of MicroPython on a particular system. The
|
2016-06-02 06:05:13 -04:00
|
|
|
best place to find general information of the availability/non-availability
|
|
|
|
of a particular feature is the "General Information" section which contains
|
2020-06-03 21:38:45 -04:00
|
|
|
information pertaining to a specific :term:`MicroPython port`.
|
2016-06-01 17:08:07 -04:00
|
|
|
|
2018-07-20 01:47:42 -04:00
|
|
|
On some ports you are able to discover the available, built-in libraries that
|
|
|
|
can be imported by entering the following at the REPL::
|
|
|
|
|
|
|
|
help('modules')
|
|
|
|
|
2016-06-01 17:08:07 -04:00
|
|
|
Beyond the built-in libraries described in this documentation, many more
|
|
|
|
modules from the Python standard library, as well as further MicroPython
|
2017-08-22 02:33:31 -04:00
|
|
|
extensions to it, can be found in `micropython-lib`.
|
2016-04-26 18:32:38 -04:00
|
|
|
|
|
|
|
Python standard libraries and micro-libraries
|
|
|
|
---------------------------------------------
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2016-04-26 18:32:38 -04:00
|
|
|
The following standard Python libraries have been "micro-ified" to fit in with
|
|
|
|
the philosophy of MicroPython. They provide the core functionality of that
|
|
|
|
module and are intended to be a drop-in replacement for the standard Python
|
2016-11-15 17:15:25 -05:00
|
|
|
library. Some modules below use a standard Python name, but prefixed with "u",
|
|
|
|
e.g. ``ujson`` instead of ``json``. This is to signify that such a module is
|
|
|
|
micro-library, i.e. implements only a subset of CPython module functionality.
|
|
|
|
By naming them differently, a user has a choice to write a Python-level module
|
|
|
|
to extend functionality for better compatibility with CPython (indeed, this is
|
2017-08-22 02:33:31 -04:00
|
|
|
what done by the `micropython-lib` project mentioned above).
|
2014-11-02 18:37:02 -05:00
|
|
|
|
2016-11-15 17:15:25 -05:00
|
|
|
On some embedded platforms, where it may be cumbersome to add Python-level
|
|
|
|
wrapper modules to achieve naming compatibility with CPython, micro-modules
|
|
|
|
are available both by their u-name, and also by their non-u-name. The
|
2017-12-23 14:21:08 -05:00
|
|
|
non-u-name can be overridden by a file of that name in your library path (``sys.path``).
|
|
|
|
For example, ``import json`` will first search for a file ``json.py`` (or package
|
|
|
|
directory ``json``) and load that module if it is found. If nothing is found,
|
2016-11-15 17:15:25 -05:00
|
|
|
it will fallback to loading the built-in ``ujson`` module.
|
2014-11-02 18:37:02 -05:00
|
|
|
|
2018-07-20 01:34:22 -04:00
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 1
|
|
|
|
|
2021-08-11 23:56:13 -04:00
|
|
|
array.rst
|
|
|
|
binascii.rst
|
2018-07-20 01:34:22 -04:00
|
|
|
builtins.rst
|
|
|
|
cmath.rst
|
2021-08-11 23:56:13 -04:00
|
|
|
collections.rst
|
|
|
|
errno.rst
|
2018-07-20 01:34:22 -04:00
|
|
|
gc.rst
|
2021-08-11 23:56:13 -04:00
|
|
|
hashlib.rst
|
|
|
|
heapq.rst
|
|
|
|
io.rst
|
|
|
|
json.rst
|
2018-07-20 01:34:22 -04:00
|
|
|
math.rst
|
2021-08-11 23:56:13 -04:00
|
|
|
os.rst
|
|
|
|
re.rst
|
|
|
|
select.rst
|
|
|
|
socket.rst
|
|
|
|
ssl.rst
|
|
|
|
struct.rst
|
|
|
|
sys.rst
|
|
|
|
time.rst
|
2020-03-20 09:59:25 -04:00
|
|
|
uasyncio.rst
|
2021-08-11 23:56:13 -04:00
|
|
|
zlib.rst
|
2018-07-20 01:34:22 -04:00
|
|
|
_thread.rst
|
2016-04-26 18:14:16 -04:00
|
|
|
|
|
|
|
|
2016-04-26 18:37:45 -04:00
|
|
|
MicroPython-specific libraries
|
|
|
|
------------------------------
|
|
|
|
|
|
|
|
Functionality specific to the MicroPython implementation is available in
|
|
|
|
the following libraries.
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 1
|
|
|
|
|
2021-08-11 23:56:13 -04:00
|
|
|
bluetooth.rst
|
2017-04-03 17:29:23 -04:00
|
|
|
btree.rst
|
2021-08-11 23:56:13 -04:00
|
|
|
cryptolib.rst
|
2017-02-27 01:16:32 -05:00
|
|
|
framebuf.rst
|
2016-04-26 18:37:45 -04:00
|
|
|
machine.rst
|
|
|
|
micropython.rst
|
|
|
|
network.rst
|
|
|
|
uctypes.rst
|
|
|
|
|
|
|
|
|
2018-11-05 02:13:12 -05:00
|
|
|
Port-specific libraries
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
In some cases the following port/board-specific libraries have functions or
|
|
|
|
classes similar to those in the :mod:`machine` library. Where this occurs, the
|
|
|
|
entry in the port specific library exposes hardware functionality unique to
|
|
|
|
that platform.
|
|
|
|
|
|
|
|
To write portable code use functions and classes from the :mod:`machine` module.
|
|
|
|
To access platform-specific hardware use the appropriate library, e.g.
|
|
|
|
:mod:`pyb` in the case of the Pyboard.
|
|
|
|
|
|
|
|
|
2018-07-20 01:34:22 -04:00
|
|
|
Libraries specific to the pyboard
|
|
|
|
---------------------------------
|
2015-10-14 06:32:01 -04:00
|
|
|
|
2018-07-20 01:34:22 -04:00
|
|
|
The following libraries are specific to the pyboard.
|
2015-10-14 06:32:01 -04:00
|
|
|
|
2018-07-20 01:34:22 -04:00
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 2
|
2014-11-02 18:37:02 -05:00
|
|
|
|
2018-07-20 01:34:22 -04:00
|
|
|
pyb.rst
|
|
|
|
lcd160cr.rst
|
2015-06-10 17:29:56 -04:00
|
|
|
|
|
|
|
|
2018-07-20 01:34:22 -04:00
|
|
|
Libraries specific to the WiPy
|
|
|
|
------------------------------
|
2015-06-10 17:29:56 -04:00
|
|
|
|
2018-07-29 10:19:41 -04:00
|
|
|
The following libraries and classes are specific to the WiPy.
|
2015-06-10 17:29:56 -04:00
|
|
|
|
2018-07-20 01:34:22 -04:00
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 2
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2018-07-20 01:34:22 -04:00
|
|
|
wipy.rst
|
2019-09-04 01:05:03 -04:00
|
|
|
machine.ADCWiPy.rst
|
2018-07-29 10:19:41 -04:00
|
|
|
machine.TimerWiPy.rst
|
2015-05-26 17:34:31 -04:00
|
|
|
|
|
|
|
|
2019-01-21 16:06:17 -05:00
|
|
|
Libraries specific to the ESP8266 and ESP32
|
|
|
|
-------------------------------------------
|
2015-05-26 17:34:31 -04:00
|
|
|
|
2019-01-21 16:06:17 -05:00
|
|
|
The following libraries are specific to the ESP8266 and ESP32.
|
2015-05-26 17:34:31 -04:00
|
|
|
|
2018-07-20 01:34:22 -04:00
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 2
|
2015-05-26 17:34:31 -04:00
|
|
|
|
2018-07-20 01:34:22 -04:00
|
|
|
esp.rst
|
2019-01-23 01:26:39 -05:00
|
|
|
esp32.rst
|
2021-04-16 07:18:04 -04:00
|
|
|
|
|
|
|
|
|
|
|
Libraries specific to the RP2040
|
|
|
|
--------------------------------
|
|
|
|
|
|
|
|
The following libraries are specific to the RP2040, as used in the Raspberry Pi Pico.
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 2
|
|
|
|
|
|
|
|
rp2.rst
|
2021-08-02 18:08:00 -04:00
|
|
|
|
|
|
|
Libraries specific to Zephyr
|
|
|
|
----------------------------
|
|
|
|
|
|
|
|
The following libraries are specific to the Zephyr port.
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 2
|
|
|
|
|
|
|
|
zephyr.rst
|