summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-01-20 18:38:27 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-01-20 18:42:08 +0200
commitdecd597273c39311541bfd45ab71974f90dca9e6 (patch)
treee6cc6297a4a01e70b34ec311bb82c76c962c67a9
parentd54bef76921ae719bcbaf4ad7f9915da10f25574 (diff)
downloadmicropython-decd597273c39311541bfd45ab71974f90dca9e6.tar.gz
micropython-decd597273c39311541bfd45ab71974f90dca9e6.zip
unix io.FileIO: Add iteration support.
A file cannot be iterated concurrently, so we make io.FileIO its own iterator.
-rw-r--r--tests/io/file-iter.py3
-rw-r--r--unix/file.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/tests/io/file-iter.py b/tests/io/file-iter.py
new file mode 100644
index 0000000000..48e8739966
--- /dev/null
+++ b/tests/io/file-iter.py
@@ -0,0 +1,3 @@
+f = open("io/data/file1")
+for l in f:
+ print(l)
diff --git a/unix/file.c b/unix/file.c
index af75944711..bbe84dfb49 100644
--- a/unix/file.c
+++ b/unix/file.c
@@ -102,8 +102,8 @@ static const mp_obj_type_t rawfile_type = {
"io.FileIO",
.print = fdfile_print,
.make_new = fdfile_make_new,
- .getiter = NULL,
- .iternext = NULL,
+ .getiter = mp_identity,
+ .iternext = mp_stream_unbuffered_iter,
.stream_p = {
.read = fdfile_read,
.write = fdfile_write,