diff --git a/Documentation/index.rst b/Documentation/index.rst index 6ca720da4f64444ce1cb189e0eff0f3c4609c3e7..a34b597553401994ed47fe20d9a20bb69a5ae06e 100644 --- a/Documentation/index.rst +++ b/Documentation/index.rst @@ -21,6 +21,7 @@ Last but not least, if you want to start hacking the lower-level firmware, the :caption: Pycardium pycardium/overview + pycardium/stdlib pycardium/buttons pycardium/color pycardium/display diff --git a/Documentation/pycardium/stdlib.rst b/Documentation/pycardium/stdlib.rst new file mode 100644 index 0000000000000000000000000000000000000000..3f76a3bde8bde360fb55b26de0282474fe376b6f --- /dev/null +++ b/Documentation/pycardium/stdlib.rst @@ -0,0 +1,227 @@ +MicroPython Standard Library +============================ +Pycardium contains some modules from the MicroPython standard library. These +are: + +.. py:module:: ubinascii + +``ubinascii`` +------------- +Refer to the official `MicroPython docs for ubinascii`_. + +.. _MicroPython docs for ubinascii: http://docs.micropython.org/en/latest/library/ubinascii.html + +.. py:module:: ucollections + +``ucollections`` +---------------- + +.. py:function:: namedtuple(...) + + See the official `MicroPython docs for namedtuple`_ for details. + + .. _MicroPython docs for namedtuple: http://docs.micropython.org/en/latest/library/ucollections.html#ucollections.namedtuple + +.. py:module:: uerrno + +``uerrno`` +---------- +Refer to the offical `MicroPython docs for uerrno`_. + +.. _MicroPython docs for uerrno: http://docs.micropython.org/en/latest/library/uerrno.html + +.. py:module:: uheapq + +``uheapq`` +---------- +Refer to the offical `MicroPython docs for uheapq`_. + +.. _MicroPython docs for uheapq: http://docs.micropython.org/en/latest/library/uheapq.html + +.. py:module:: uio + +``uio`` +------- +Refer to the offical `MicroPython docs for uio`_. + +.. _MicroPython docs for uio: http://docs.micropython.org/en/latest/library/uio.html + +.. py:module:: ujson + +``ujson`` +--------- +Refer to the offical `MicroPython docs for ujson`_. + +.. _MicroPython docs for ujson: http://docs.micropython.org/en/latest/library/ujson.html + +.. py:module:: urandom + +``urandom`` +----------- +Pseudo-random number generator. + +.. py:function:: choice(seq) + + Return a random element from the non-empty sequence ``seq``. + +.. py:function:: getrandbits(k) + + Returns a Python integer with ``k`` random bits. + +.. py:function:: randint(a, b) + + Return a random integer ``N`` such that ``a <= N <= b``. Alias for + :py:func:`randrange(a, b+1) <urandom.randrange>`. + +.. py:function:: random() + + Return the next random floating point number in the range [0.0, 1.0). + +.. py:function:: randrange(start, stop, [step]) + +.. py:function:: randrange(stop) + :noindex: + + Return a randomly selected element from ``range(start, stop, step)``. This + is equivalent to ``urandom.choice(range(start, stop, step))``, but doesn’t + actually build a range object. + + The positional argument pattern matches that of ``range()``. Keyword + arguments should not be used because the function may use them in unexpected + ways. + +.. py:function:: seed(n) + + Seed the pseudo-random number generator from ``n``. + + .. note:: + + CPython does not provide a :py:func:`seed` function. This is a + difference in the MicroPython implementation. + +.. py:function:: uniform(a, b) + + Return a random floating point number ``N`` such that ``a <= N <= b`` for + ``a <= b`` and ``b <= N <= a`` for ``b < a``. + + The end-point value ``b`` may or may not be included in the range depending + on floating-point rounding in the equation ``a + (b-a) * random()``. + +.. py:module:: ure + +``ure`` +------- +Minimal regular expression library. Refer to the offical `MicroPython docs for ure`_. + +.. _MicroPython docs for ure: http://docs.micropython.org/en/latest/library/ure.html + +.. py:module:: ustruct + +``ustruct`` +----------- +Refer to the offical `MicroPython docs for ustruct`_. + +.. _MicroPython docs for ustruct: http://docs.micropython.org/en/latest/library/ustruct.html + +``utime`` +--------- +``utime`` contains non-standard functions as well. Please refer to our +dedicated :py:mod:`utime` docs. + + +Python Standard Library +======================= +Additionally to the MicroPython module, Pycardium contains a subset of the +CPython standard library, as implemented by `micropython-lib`_. The following +modules are included: + +.. _micropython-lib: https://github.com/micropython/micropython-lib + +.. py:module:: collections + +``collections`` +--------------- +Collections module. + +.. py:module:: contextlib + +``contextlib`` +-------------- +Contextlib module. + +.. py:module:: functools + +``functools`` +------------- +Functools module. + +.. py:module:: itertools + +``itertools`` +------------- +Itertools module. + +.. warning:: + + :py:func:`itertools.tee` is not implemented correctly. + +.. py:module:: string + +``string`` +---------- +String module. + +.. py:module:: struct + +``struct`` +---------- +Struct module. + +.. py:module:: uuid + +``uuid`` +-------- + +.. py:class:: uuid.UUID(hex=None, bytes=None, int=None, version=None) + + Create a new UUID object. + + Exactly one of ``hex``, ``bytes``, or ``int`` must be given. The + ``version`` argument is optional; if given, the resulting UUID will have its + variant and version set according to RFC 4122, overriding the given ``hex``, + ``bytes``, or ``int``. + + **Examples**: + + .. code-block:: python + + UUID('{12345678-1234-5678-1234-567812345678}') + UUID('12345678123456781234567812345678') + UUID('urn:uuid:12345678-1234-5678-1234-567812345678') + UUID(bytes='\x12\x34\x56\x78' * 4) + UUID(int=0x12345678123456781234567812345678) + + .. py:attribute:: bytes + + UUID as ``bytes()`` object + + .. py:attribute:: node + + Node of this UUID + + .. py:attribute:: hex + + Hex-String representation of this UUID + + .. py:attribute:: version + + UUID version accordiung to RFC 4122 + +.. py:function:: uuid.uuid4(): + + Generate a new UUID version 4 (random UUID). + + .. todo:: + + This function is not yet usable because we don't have + :py:func:`os.urandom` yet.