summaryrefslogtreecommitdiffstatshomepage
path: root/docs
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2025-03-02 23:52:13 +1100
committerDamien George <damien@micropython.org>2025-03-05 12:23:40 +1100
commitf5b4545761dbbce0c00dec6d90d180663a61eaa4 (patch)
tree9c1dcdb1c74fb05eaef5683ae1d72e9a05b3384d /docs
parentb4cf82b2d62c60c5e6e10d8d23c6b099b96c6f75 (diff)
downloadmicropython-f5b4545761dbbce0c00dec6d90d180663a61eaa4.tar.gz
micropython-f5b4545761dbbce0c00dec6d90d180663a61eaa4.zip
py/modsys: Add sys.implementation._build entry.
For a given MicroPython firmware/executable it can be sometimes important to know how it was built, which variant/board configuration it came from. This commit adds a new field `sys.implementation._build` that can help identify the configuration that MicroPython was built with. For now it's either: * <VARIANT> for unix, webassembly and windows ports * <BOARD>-<VARIANT> for microcontroller ports (the variant is optional) In the future additional elements may be added to this string, separated by a hyphen. Resolves issue #16498. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'docs')
-rw-r--r--docs/library/sys.rst12
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/library/sys.rst b/docs/library/sys.rst
index c72214c131..baefd92705 100644
--- a/docs/library/sys.rst
+++ b/docs/library/sys.rst
@@ -75,6 +75,8 @@ Constants
* *version* - tuple (major, minor, micro, releaselevel), e.g. (1, 22, 0, '')
* *_machine* - string describing the underlying machine
* *_mpy* - supported mpy file-format version (optional attribute)
+ * *_build* - string that can help identify the configuration that
+ MicroPython was built with
This object is the recommended way to distinguish MicroPython from other
Python implementations (note that it still may not exist in the very
@@ -83,6 +85,16 @@ Constants
Starting with version 1.22.0-preview, the fourth node *releaselevel* in
*implementation.version* is either an empty string or ``"preview"``.
+ The *_build* entry was added in version 1.25.0 and is a hyphen-separated
+ set of elements. New elements may be appended in the future so it's best to
+ access this field using ``sys.implementation._build.split("-")``. The
+ elements that are currently used are:
+
+ * On the unix, webassembly and windows ports the first element is the variant
+ name, for example ``'standard'``.
+ * On microcontroller targets, the first element is the board name and the second
+ element (if present) is the board variant, for example ``'RPI_PICO2-RISCV'``
+
.. admonition:: Difference to CPython
:class: attention