2014-10-31 18:21:37 -04:00
|
|
|
:mod:`sys` -- system specific functions
|
2021-08-11 23:59:29 -04:00
|
|
|
=======================================
|
2018-05-22 20:49:08 -04:00
|
|
|
|
2014-10-30 21:37:19 -04:00
|
|
|
.. module:: sys
|
|
|
|
:synopsis: system specific functions
|
|
|
|
|
2017-07-02 08:37:31 -04:00
|
|
|
|see_cpython_module| :mod:`python:sys`.
|
|
|
|
|
2014-10-30 21:37:19 -04:00
|
|
|
Functions
|
|
|
|
---------
|
|
|
|
|
2020-01-11 01:44:17 -05:00
|
|
|
.. function:: exit(retval=0, /)
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2016-05-01 06:42:36 -04:00
|
|
|
Terminate current program with a given exit code. Underlyingly, this
|
2017-06-27 17:37:47 -04:00
|
|
|
function raise as `SystemExit` exception. If an argument is given, its
|
|
|
|
value given as an argument to `SystemExit`.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
Constants
|
|
|
|
---------
|
|
|
|
|
|
|
|
.. data:: argv
|
|
|
|
|
2016-05-01 06:38:45 -04:00
|
|
|
A mutable list of arguments the current program was started with.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
.. data:: byteorder
|
|
|
|
|
2017-06-27 17:37:47 -04:00
|
|
|
The byte order of the system (``"little"`` or ``"big"``).
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2016-05-01 06:59:34 -04:00
|
|
|
.. data:: implementation
|
|
|
|
|
|
|
|
Object with information about the current Python implementation. For
|
2018-05-22 19:52:01 -04:00
|
|
|
CircuitPython, it has following attributes:
|
2016-05-01 06:59:34 -04:00
|
|
|
|
2018-05-22 19:52:01 -04:00
|
|
|
* *name* - string "circuitpython"
|
2017-06-27 17:37:47 -04:00
|
|
|
* *version* - tuple (major, minor, micro), e.g. (1, 7, 0)
|
2022-04-26 03:28:39 -04:00
|
|
|
* *_machine* - string describing the underlying machine
|
2022-04-26 03:23:29 -04:00
|
|
|
* *_mpy* - supported mpy file-format version (optional attribute)
|
2016-05-01 06:59:34 -04:00
|
|
|
|
2018-05-22 19:52:01 -04:00
|
|
|
This object is the recommended way to distinguish CircuitPython from other
|
2016-05-01 06:59:34 -04:00
|
|
|
Python implementations (note that it still may not exist in the very
|
|
|
|
minimal ports).
|
|
|
|
|
|
|
|
.. admonition:: Difference to CPython
|
|
|
|
:class: attention
|
|
|
|
|
|
|
|
CPython mandates more attributes for this object, but the actual useful
|
2018-05-22 19:52:01 -04:00
|
|
|
bare minimum is implemented in CircuitPython.
|
2016-05-01 06:59:34 -04:00
|
|
|
|
2016-05-01 07:31:08 -04:00
|
|
|
.. data:: maxsize
|
|
|
|
|
|
|
|
Maximum value which a native integer type can hold on the current platform,
|
2018-05-22 19:52:01 -04:00
|
|
|
or maximum value representable by CircuitPython integer type, if it's smaller
|
|
|
|
than platform max value (that is the case for CircuitPython ports without
|
2016-05-01 07:31:08 -04:00
|
|
|
long int support).
|
|
|
|
|
|
|
|
This attribute is useful for detecting "bitness" of a platform (32-bit vs
|
|
|
|
64-bit, etc.). It's recommended to not compare this attribute to some
|
|
|
|
value directly, but instead count number of bits in it::
|
|
|
|
|
|
|
|
bits = 0
|
|
|
|
v = sys.maxsize
|
|
|
|
while v:
|
|
|
|
bits += 1
|
|
|
|
v >>= 1
|
|
|
|
if bits > 32:
|
|
|
|
# 64-bit (or more) platform
|
|
|
|
...
|
|
|
|
else:
|
|
|
|
# 32-bit (or less) platform
|
|
|
|
# Note that on 32-bit platform, value of bits may be less than 32
|
|
|
|
# (e.g. 31) due to peculiarities described above, so use "> 16",
|
|
|
|
# "> 32", "> 64" style of comparisons.
|
|
|
|
|
2016-05-01 06:32:15 -04:00
|
|
|
.. data:: modules
|
|
|
|
|
|
|
|
Dictionary of loaded modules. On some ports, it may not include builtin
|
|
|
|
modules.
|
|
|
|
|
2014-10-30 21:37:19 -04:00
|
|
|
.. data:: path
|
|
|
|
|
2016-05-01 06:38:45 -04:00
|
|
|
A mutable list of directories to search for imported modules.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2021-12-11 07:39:40 -05:00
|
|
|
.. admonition:: Difference to CPython
|
|
|
|
:class: attention
|
|
|
|
|
|
|
|
On MicroPython, an entry with the value ``".frozen"`` will indicate that import
|
|
|
|
should search :term:`frozen modules <frozen module>` at that point in the search.
|
|
|
|
If no frozen module is found then search will *not* look for a directory called
|
|
|
|
``.frozen``, instead it will continue with the next entry in ``sys.path``.
|
|
|
|
|
2014-10-30 21:37:19 -04:00
|
|
|
.. data:: platform
|
|
|
|
|
2018-05-22 19:52:01 -04:00
|
|
|
The platform that CircuitPython is running on. For OS/RTOS ports, this is
|
2016-05-01 07:39:38 -04:00
|
|
|
usually an identifier of the OS, e.g. ``"linux"``. For baremetal ports it
|
2018-05-22 19:52:01 -04:00
|
|
|
is an identifier of the chip on a board, e.g. ``"MicroChip SAMD51"``.
|
|
|
|
It thus can be used to distinguish one board from another.
|
2018-05-22 20:49:08 -04:00
|
|
|
If you need to check whether your program runs on CircuitPython (vs other
|
2017-06-27 17:37:47 -04:00
|
|
|
Python implementation), use `sys.implementation` instead.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2021-07-26 10:43:35 -04:00
|
|
|
.. data:: ps1
|
|
|
|
ps2
|
|
|
|
|
|
|
|
Mutable attributes holding strings, which are used for the REPL prompt. The defaults
|
|
|
|
give the standard Python prompt of ``>>>`` and ``...``.
|
|
|
|
|
2014-10-30 21:37:19 -04:00
|
|
|
.. data:: stderr
|
|
|
|
|
2018-07-29 16:47:06 -04:00
|
|
|
Standard error ``stream``.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
.. data:: stdin
|
|
|
|
|
2018-07-29 16:47:06 -04:00
|
|
|
Standard input ``stream``.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
.. data:: stdout
|
|
|
|
|
2018-07-29 16:47:06 -04:00
|
|
|
Standard output ``stream``.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2021-07-26 10:41:27 -04:00
|
|
|
.. data:: tracebacklimit
|
|
|
|
|
|
|
|
A mutable attribute holding an integer value which is the maximum number of traceback
|
|
|
|
entries to store in an exception. Set to 0 to disable adding tracebacks. Defaults
|
|
|
|
to 1000.
|
|
|
|
|
|
|
|
Note: this is not available on all ports.
|
|
|
|
|
2014-10-30 21:37:19 -04:00
|
|
|
.. data:: version
|
|
|
|
|
2016-05-01 06:38:45 -04:00
|
|
|
Python language version that this implementation conforms to, as a string.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
.. data:: version_info
|
|
|
|
|
2016-05-01 06:38:45 -04:00
|
|
|
Python language version that this implementation conforms to, as a tuple of ints.
|
2021-04-23 15:26:42 -04:00
|
|
|
|
|
|
|
.. admonition:: Difference to CPython
|
|
|
|
:class: attention
|
|
|
|
|
|
|
|
Only the first three version numbers (major, minor, micro) are supported and
|
|
|
|
they can be referenced only by index, not by name.
|