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 "<stdin>", line 8, in <module>
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 "<stdin>", line 9, in <module>
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 "<stdin>", line 9, in <module>
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 "<stdin>", line 8, in <module>
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 "<stdin>", line 8, in <module>
AttributeError: 'module' object has no attribute 'stdin'
|