Commit Graph

135 Commits

Author SHA1 Message Date
Guido van Rossum 7d0a8264ff Sockets facelift. APIs that could return binary data (e.g. aton() and
recv()) now return bytes, not str or str8.  The socket.py code is
redone; it now subclasses _socket.socket and instead of having its own
_fileobject for makefile(), it uses io.SocketIO.  Some stuff in io.py
was moved around to make this work.  (I really need to rethink my
policy regarding readline() and read(-1) on raw files; and readline()
on buffered files ought to use peeking().  Later.)
2007-05-21 23:13:11 +00:00
Guido van Rossum 024da5c257 Make all the multibyte codec tests pass.
Changes to io.py, necessary to make this work:
- Redid io.StringIO as a TextIOWrapper on top of a BytesIO instance.
- Got rid of _MemoryIOMixin, folding it into BytesIO instead.
- The read() functions that take -1 to mean "eveything" now also take None.
- Added readline() support to BufferedIOBase. :-(
2007-05-17 23:59:11 +00:00
Walter Dörwald e35553e24c Fix io.StringIO for wide Python builds. 2007-05-16 12:53:48 +00:00
Walter Dörwald 9d2ac22721 Fix io.StringIO: String are stored encoded (using "unicode-internal" as the
encoding) which makes the buffer mutable. Strings are encoded on the way in
and decoded on the way out.

Use io.StringIO in test_codecs.py.

Fix the base64_codec test in test_codecs.py.
2007-05-16 12:47:53 +00:00
Guido van Rossum a5c313dc4d Add to an XXX comment. 2007-05-09 23:41:10 +00:00
Guido van Rossum 2b08b38dea Fix a few places where a str instead of a bytes object was used. 2007-05-08 20:18:39 +00:00
Georg Brandl a18af4e7a2 PEP 3114: rename .next() to .__next__() and add next() builtin. 2007-04-21 15:47:16 +00:00
Guido van Rossum d76e7796c9 Instead of pickling the whole decoder, use the new getstate/setstate API. 2007-04-17 02:38:04 +00:00
Guido van Rossum 13633bb8c5 Support name and mode attributes on all file types.
Don't read more than one line when reading text from a tty device.
Add peek() and read1() methods.
Return str instead of unicode when return ASCII characters in text mode.
2007-04-13 18:42:35 +00:00
Guido van Rossum dc0b1a1069 Make a few more tests pass with the new I/O library.
Fix the truncate() semantics -- it should not affect the current position.
Switch wave.py/chunk.py to struct.unpack_from() to support bytes.
Don't use writelines() on binary files (test_fileinput.py).
2007-04-12 22:55:07 +00:00
Guido van Rossum d410395ea7 Make sure that writing an array instance returns the number of bytes,
not the number of array elements.
2007-04-12 05:44:49 +00:00
Guido van Rossum aa43ed95cd TextIO improvement:
- 25% speed increse in tell();
- f.seek(0, 1) now maps to f.seek(f.tell(), 0) instead of to f.tell().
2007-04-12 05:24:24 +00:00
Guido van Rossum b9c4c3e455 Speed up next() by disabling snapshot updating then. 2007-04-11 16:07:50 +00:00
Guido van Rossum cba608cadb More efficient implementation of tell(); _read_chunk() doesn't have to
call self.buffer.tell().
2007-04-11 14:19:59 +00:00
Guido van Rossum 0dd32e246c Real pickling for bytes.
Restore complex pickling.
Use cPickle in io.py.
2007-04-11 05:40:58 +00:00
Guido van Rossum 9b76da6a8f Checkpoint so I can continue to work on this at a different box.
There is somewhat working (but slow) code supporting seek/tell for text files,
but extensive testing exposes a bug I can't nail down.
2007-04-11 01:09:03 +00:00
Guido van Rossum 8742977b33 truncate() returns the new size and position.
write() returns the number of bytes/characters written/buffered.
FileIO.close() calls self.flush().
Implement readinto() for buffered readers.
Tests th check all these.
Test proper behavior of __enter__/__exit__.
2007-04-10 21:06:59 +00:00
Guido van Rossum 53807dabf0 Implement long positioning (Unix only, probably).
Etc., etc.
2007-04-10 19:01:47 +00:00
Guido van Rossum cce92b27d6 BufferedIOBase and TextIOBase should derive from IOBase, not from RawIOBase! 2007-04-10 14:41:39 +00:00
Guido van Rossum 141f767d46 More cleanup. Renamed BlockingIO to BlockingIOError.
Removed unused _PyFileIO class.
Changed inheritance structure.
TODO: do the same kinds of things to TextIO.
2007-04-10 00:22:16 +00:00
Guido van Rossum 4f0db6e4a1 Cleanup.
Add closed attribute.
Support int argument to open() -- wrapping a file descriptor.
For b/w compat, support readline(n).
Support readlines() and readlines(n).
Flush on __del__.
Added some XXX comments.
2007-04-08 23:59:06 +00:00
Guido van Rossum 9be5597abf Add some backwards compatibility stuff.
This now appears to work when io.open is substituted for the real open
in fileinput.py -- at least the latter's unit tests pass.
2007-04-07 02:59:27 +00:00
Guido van Rossum 76c5d4d72d Checkpoint.
Some cleanup of test_io.py and io.py.
Added seeking to buffered reader and writer, but no tests yet.
2007-04-06 19:10:29 +00:00
Guido van Rossum 186685905c Get rid of duplicate definition of BufferedIOBase. 2007-04-06 18:11:47 +00:00
Guido van Rossum 78892e4613 Added a working Text I/O layer, by Mark Russell.
This is essentially a checkpoint.
2007-04-06 17:31:18 +00:00
Guido van Rossum ef17c16b36 Bug 1679498: remove unused instance variables _readable, _writable and
_seekable.
2007-03-18 03:42:15 +00:00
Guido van Rossum bb09b21250 Bug 1679498: unset variable 'bs'. 2007-03-18 03:36:28 +00:00
Guido van Rossum c819dea40d Add some XXX comments and fix BufferedReader signature. 2007-03-15 18:59:31 +00:00
Guido van Rossum a9e2024b84 Check in Daniel Stutzbach's _fileio.c and test_fileio.py
(see SF#1671314) with small tweaks.
The io module now uses this instead of its own implementation
of the FileIO class, if it can import _fileio.
2007-03-08 00:43:48 +00:00
Guido van Rossum 00efeadbcf Change the specs for readinto() -- it should *not* shorten the buffer to
the amount of data read.
2007-03-07 05:23:25 +00:00
Guido van Rossum 01a2752d19 New version from Mike Verdone (sat in my inbox since 2/27).
I cleaned up whitespace but otherwise didn't change it.

This will need work to reflect the tentative decision to drop nonblocking I/O
support from the buffering layers.
2007-03-07 01:00:12 +00:00
Guido van Rossum 68bbcd2a71 Mike Verdone's checkpoint, cleaned up.
Also implemented Neal's suggestion (add fileno() to SocketIO)
and some unrelated changes, e.g. remove Google copyright
and make BytesIO a subclass of BufferedIOBase.
2007-02-27 17:19:33 +00:00
Guido van Rossum 17e43e582c Added some comments and docstrings. More is needed. 2007-02-27 15:45:13 +00:00
Neal Norwitz 8b41c3dc28 Add some XXX comments for Guido to look at. 2007-02-27 06:26:14 +00:00
Guido van Rossum 28524c7f10 Checkpoint for new I/O library. 2007-02-27 05:47:44 +00:00