.. This document was generated by tools/gen-cpydiff.py Modules ======= Generated Fri 26 May 2017 09:18:36 UTC array ----- **Looking for integer not implemented** Sample code:: import array print(1 in array.array('B', b'12')) +-------------+-------------------------------------------+ | CPy output: | uPy output: | +-------------+-------------------------------------------+ | :: | :: | | | | | False | Traceback (most recent call last): | | | File "", line 8, in | | | NotImplementedError: | +-------------+-------------------------------------------+ **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]) | Traceback (most recent call last): | | | File "", line 9, in | | | TypeError: 'array' object does not support item deletion | +------------------------+--------------------------------------------------------------+ **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') | Traceback (most recent call last): | | | File "", line 9, in | | | NotImplementedError: only slices with step=1 (aka None) are supported | +----------------+---------------------------------------------------------------------------+ deque ----- **Deque not implemented** **Workaround:** Use regular queues or lists creatively Sample code:: import collections D = collections.deque() print(D) +---------------+--------------------------------------------------------------+ | CPy output: | uPy output: | +---------------+--------------------------------------------------------------+ | :: | :: | | | | | deque([]) | Traceback (most recent call last): | | | File "", line 8, in | | | AttributeError: 'module' object has no attribute 'deque' | +---------------+--------------------------------------------------------------+ json ---- **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 | Should not get here | +---------------+-------------------------+ struct ------ **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 | b'\x01\x00' | | | Should not get here | +------------------+-------------------------+ **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 | b'\x01\x02' | | | Should not get here | +------------------+-------------------------+ sys --- **Override sys.stdin, sys.stdout and sys.stderr. Impossible as they are stored in read-only memory.** Sample code:: import sys sys.stdin = None print(sys.stdin) +-------------+--------------------------------------------------------------+ | CPy output: | uPy output: | +-------------+--------------------------------------------------------------+ | :: | :: | | | | | None | Traceback (most recent call last): | | | File "", line 8, in | | | AttributeError: 'module' object has no attribute 'stdin' | +-------------+--------------------------------------------------------------+