566d8f1d7e
Previously, "import _io" worked on both CPython and MicroPython (essentially by a chance on CPython, as there's not guarantee that its contents will stay the same across versions), but as the module was renamed to uio, need to use more robust import sequence for compatibility.
46 lines
828 B
Python
46 lines
828 B
Python
try:
|
|
import uio as io
|
|
except ImportError:
|
|
import io
|
|
|
|
a = io.StringIO()
|
|
print('io.StringIO' in repr(a))
|
|
print(a.getvalue())
|
|
print(a.read())
|
|
|
|
a = io.StringIO("foobar")
|
|
print(a.getvalue())
|
|
print(a.read())
|
|
print(a.read())
|
|
|
|
a = io.StringIO()
|
|
a.write("foo")
|
|
print(a.getvalue())
|
|
|
|
a = io.StringIO("foo")
|
|
a.write("12")
|
|
print(a.getvalue())
|
|
|
|
a = io.StringIO("foo")
|
|
a.write("123")
|
|
print(a.getvalue())
|
|
|
|
a = io.StringIO("foo")
|
|
a.write("1234")
|
|
print(a.getvalue())
|
|
|
|
a = io.StringIO()
|
|
a.write("foo")
|
|
print(a.read())
|
|
|
|
a = io.StringIO()
|
|
a.close()
|
|
for f in [a.read, a.getvalue, lambda:a.write("")]:
|
|
# CPython throws for operations on closed I/O, micropython makes
|
|
# the underlying string empty unless MICROPY_CPYTHON_COMPAT defined
|
|
try:
|
|
f()
|
|
print("ValueError")
|
|
except ValueError:
|
|
print("ValueError")
|