.. This document was generated by tools/gen-cpydiff.py Modules ======= Generated Thu 16 May 2019 04:46:41 UTC array ----- .. _cpydiff_modules_array_containment: Looking for integer not implemented ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sample code:: import array print(1 in array.array('B', b'12')) +-------------+------------------------------------------------+ | CPy output: | uPy output: | +-------------+------------------------------------------------+ | :: | :: | | | | | False | /bin/sh: 1: ../unix/micropython: not found | +-------------+------------------------------------------------+ .. _cpydiff_modules_array_deletion: Array deletion not implemented ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sample code:: import array a = array.array('b', (1, 2, 3)) del a[1] print(a) +------------------------+------------------------------------------------+ | CPy output: | uPy output: | +------------------------+------------------------------------------------+ | :: | :: | | | | | array('b', [1, 3]) | /bin/sh: 1: ../unix/micropython: not found | +------------------------+------------------------------------------------+ .. _cpydiff_modules_array_subscrstep: Subscript with step != 1 is not yet implemented ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sample code:: import array a = array.array('b', (1, 2, 3)) print(a[3:2:2]) +----------------+------------------------------------------------+ | CPy output: | uPy output: | +----------------+------------------------------------------------+ | :: | :: | | | | | array('b') | /bin/sh: 1: ../unix/micropython: not found | +----------------+------------------------------------------------+ deque ----- .. _cpydiff_modules_deque: Deque not implemented ~~~~~~~~~~~~~~~~~~~~~ **Workaround:** Use regular lists. micropython-lib has implementation of collections.deque. Sample code:: import collections D = collections.deque() print(D) +---------------+------------------------------------------------+ | CPy output: | uPy output: | +---------------+------------------------------------------------+ | :: | :: | | | | | deque([]) | /bin/sh: 1: ../unix/micropython: not found | +---------------+------------------------------------------------+ json ---- .. _cpydiff_modules_json_nonserializable: JSON module does not throw exception when object is not serialisable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sample code:: import json a = bytes(x for x in range(256)) try: z = json.dumps(a) x = json.loads(z) print('Should not get here') except TypeError: print('TypeError') +---------------+------------------------------------------------+ | CPy output: | uPy output: | +---------------+------------------------------------------------+ | :: | :: | | | | | TypeError | /bin/sh: 1: ../unix/micropython: not found | +---------------+------------------------------------------------+ struct ------ .. _cpydiff_modules_struct_fewargs: Struct pack with too few args, not checked by uPy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sample code:: import struct try: print(struct.pack('bb', 1)) print('Should not get here') except: print('struct.error') +------------------+------------------------------------------------+ | CPy output: | uPy output: | +------------------+------------------------------------------------+ | :: | :: | | | | | struct.error | /bin/sh: 1: ../unix/micropython: not found | +------------------+------------------------------------------------+ .. _cpydiff_modules_struct_manyargs: Struct pack with too many args, not checked by uPy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sample code:: import struct try: print(struct.pack('bb', 1, 2, 3)) print('Should not get here') except: print('struct.error') +------------------+------------------------------------------------+ | CPy output: | uPy output: | +------------------+------------------------------------------------+ | :: | :: | | | | | struct.error | /bin/sh: 1: ../unix/micropython: not found | +------------------+------------------------------------------------+ sys --- .. _cpydiff_modules_sys_stdassign: Overriding sys.stdin, sys.stdout and sys.stderr not possible ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Cause:** They are stored in read-only memory. Sample code:: import sys sys.stdin = None print(sys.stdin) +-------------+------------------------------------------------+ | CPy output: | uPy output: | +-------------+------------------------------------------------+ | :: | :: | | | | | None | /bin/sh: 1: ../unix/micropython: not found | +-------------+------------------------------------------------+