Commit graph

35133 commits

Author SHA1 Message Date
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
913dd0be52 struct.unpack() allows a bytes string too (if it has the right size). 2007-04-13 03:33:53 +00:00
Guido van Rossum
98f9746740 Support marshal.dump(x, f) where f is not a real file.
Support ord(b) where b is a 1-byte string.
In zipfile.py, work around bytes being ints instead of chars, sometimes.
2007-04-13 03:31:13 +00:00
Guido van Rossum
84d79ddce2 Disallow u"..." + b"..." and b"..." + u"...". 2007-04-13 02:23:57 +00:00
Guido van Rossum
ad7d8d10b7 Rough and dirty job -- allow concatenation of bytes and arbitrary
buffer-supporting objects (Unicode always excluded), and also of
str and bytes.
(For some reason u"" + b"" doesn't fail, I'll investigate later.)
2007-04-13 01:39:34 +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
b6f1fdc90c Clean up trailing whitespace. 2007-04-12 22:49:52 +00:00
Guido van Rossum
682faf8fe0 Fix most XXX remarks. 2007-04-12 14:56:58 +00:00
Guido van Rossum
31c3a57480 Test closed, mode attribute; don't test __exit__(). 2007-04-12 14:51:49 +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
Georg Brandl
57b39e0916 Bug #1697782: remove all remaining code that uses types.InstanceType. 2007-04-11 19:24:50 +00:00
Guido van Rossum
b5ddcfd2a2 Make array().tofile() work with a new I/O object. 2007-04-11 17:08:28 +00:00
Guido van Rossum
d0712817ac Re-enable cleanup code. 2007-04-11 16:32:43 +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
0ad0812edb An example of action-at-a-distance: fix the problems I had in test_io.py
without touching io.py or test_io.py.  The cause of the failure was that
bytes objects didn't pickle right.  As a stop-gap measure, I'm providing
bytes pickling via copy_reg.  Eventually, we should use a more efficient
protocol, e.g. __reduce_ex__ or __getstate__/__setstate__.
2007-04-11 04:37:43 +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
34d69e57e3 Skip large file tests on Windowns and OSX.
Reduce large file size to 2**31 (and a bit).
2007-04-10 20:08:41 +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
ebea9beab3 Bytes should never equal unicode.
Add tests for str <cmpop> bytes.
2007-04-09 00:49:13 +00:00
Guido van Rossum
343e97ff7f For Make Benefit Glorious Nation of Backwards Compatibility,
bytes objects can now be compared to anything that supports the buffer API.
2007-04-09 00:43:24 +00:00
Guido van Rossum
62cbc8a261 Make sure that a forked child process exits even if it raises an exception. 2007-04-09 00:41:25 +00:00
Guido van Rossum
933520b5ba Fix a place where it's pretty clear that a binary open mode was intended.
(The new I/O library revealed the problem.)
2007-04-09 00:00:23 +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
b04281592e Make it possible to instantiate a _FileIO() with an integer file descriptor
instead of a filename.
Add a 'closed' attribute.
2007-04-08 17:44:42 +00:00
Guido van Rossum
b8551ae68f Somehow this contained a bogus reference to "exceptions" which caused
"import exceptions" to behave bizarrely.
2007-04-07 03:14:46 +00:00
Guido van Rossum
756aa93763 A class used as an exception should inherit from Exception.
(Should be backported to 2.6, really.)
2007-04-07 03:04:01 +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
Fred Drake
0e074483e7 make the markup match that of the trunk to avoid insane spread of
mystery italics
2007-03-29 23:11:24 +00:00
Guido van Rossum
6b18a5bb32 Fix refcounting bug reported by Amaury Forgeot d'Arc. 2007-03-29 20:49:57 +00:00
Collin Winter
42dae6a89b Make readonly members defined in C throw an AttributeError on modification. This brings them into sync with Python-level attributes. Fixes bug #1687163. 2007-03-28 21:44:53 +00:00
Guido van Rossum
d84da1b67a More fixes related to removal of exception slicing. 2007-03-28 21:03:48 +00:00
Guido van Rossum
782ff275b8 Fix errors in bsddb3 tests due to removal of exception slicing.
(There was also a segfault but it disappeared when the tests
stopped erroring out; I presume the segfault is a pre-existing
problem somewhere in a destructor.)
2007-03-28 21:02:43 +00:00
Guido van Rossum
cef2098cfa Moving xreload to the sandbox for now. 2007-03-28 00:30:15 +00:00
Guido van Rossum
e27dc72308 By default, != returns the opposite of ==, unless the latter returns
NotImplemented.

(Is this worth backporting to 2.6?  It seems so useful...!)
2007-03-27 22:37:34 +00:00
Guido van Rossum
a4335b1e6b Looks like this file wasn't checked in. 2007-03-27 22:34:34 +00:00
Collin Winter
e33761dcaa Fix two bugs related to the remove of exception subscripting. 2007-03-27 04:55:27 +00:00
Collin Winter
3e81ec8c7c Address some XXXs from Neal Norwitz. 2007-03-23 22:46:49 +00:00
Brett Cannon
ca477b2280 When removing indexing/slicing on exceptions some places were changed
inappropriately from ``e[0]`` to ``e.message`` instead of ``e.args[0]``.  The
reason it needs to be the last option is the dichotomy of 'message' and 'args':
'message' can be the empty string but args[0] can have a value if more than one
argument was passed.
2007-03-21 22:26:20 +00:00
Guido van Rossum
3a38362592 Fix refleak in compiler.
(A symbol table entry was leaked every time a class was compiled.)
2007-03-21 21:26:58 +00:00
Collin Winter
390d29ca74 Remove isCallable() and sequenceIncludes() from the operator module. 2007-03-21 20:10:51 +00:00
Neal Norwitz
7d71fb8132 Little fixes:
* make some module variables static to prevent name pollution
 * Add some comments to clarify what's going on and some XXXs to address
 * Add a space after "for" before (
 * exc_value and tb can be NULL in some cases
 * Get working on Windows (I think)
2007-03-21 04:45:04 +00:00