Message76109
The attached patch is an attempt to set mode and name attributes to all
three objects in the IO stack.
For example,
>>> f = open("foo", "U+")
>>> f.buffer.name, f.buffer.mode
('foo', 'r+')
See also the unit tests.
There is a little inconsistency that I don't know how to resolve: with
my patch, the mode does not round-trip: open(name, mode).mode is not
always equal to mode:
>>> f = open("foo", "rb")
>>> f.name, f.mode
('t', 'r')
The 'b' was removed because f is already a binary file returning bytes.
But it seems better than attaching the initial mode to the FileIO
object. Currently,
>>> io.open("foo", "Ub+", buffering=0)
_fileio._FileIO(3, 'r+')
>>> io.open("foo", "Ub+", buffering=0).mode
'Ub+'
Which is even more surprising IMO. |
|
Date |
User |
Action |
Args |
2008-11-20 15:31:07 | amaury.forgeotdarc | set | recipients:
+ amaury.forgeotdarc, beazley, christian.heimes |
2008-11-20 15:31:07 | amaury.forgeotdarc | set | messageid: <1227195067.75.0.992780074304.issue4362@psf.upfronthosting.co.za> |
2008-11-20 15:31:07 | amaury.forgeotdarc | link | issue4362 messages |
2008-11-20 15:31:06 | amaury.forgeotdarc | create | |
|