mongo-python-driver/gridfs
henrifroese fa9531b4bf
PYTHON-2824 Make GridOut implement full io.IOBase spec (#677)
Make GridOut inherit from io.IOBase to be a fully "file-like" object (https://docs.python.org/3/glossary.html#term-file-like-object). Implement missing methods `readlines`, `writelines`,
`writable`, `fileno`, `flush`, `isatty`, `truncate`,
and property `closed`, following the spec
(https://docs.python.org/3/library/io.html#io.IOBase.writable).

Iterating over GridOut previously returned chunks, but IOBase specifies
that lines should be returned. Thus, the `GridOutIterator` returning chunks is removed
and GridOut simply uses the existing IOBase iterator implementation (returning `self`
in `__iter__` and using `readline` in `__next__`).

Additionally, iterating over GridOut previously did not move the "file pointer" along, i.e.
`next(iter(some_grid_out_object))` always gave the same result (the first chunk of the file)
as it would create a new iterator starting at the top of the file. This is now fixed as well, so
a first call to `next(iter(some_grid_out_object))` gives the first line, and subsequent calls return
the subsequent lines.
2021-08-23 11:45:34 -04:00
..
__init__.py PYTHON-2870 Add support for man/text/latex/etc.. docs output (#708) 2021-08-19 13:31:46 -07:00
errors.py Fix up copyright dates. 2015-03-25 11:55:02 -07:00
grid_file.py PYTHON-2824 Make GridOut implement full io.IOBase spec (#677) 2021-08-23 11:45:34 -04:00