[pypy-svn] r73756 - pypy/trunk/pypy/module/_file
arigo at codespeak.net
arigo at codespeak.net
Thu Apr 15 09:44:07 CEST 2010
Author: arigo
Date: Thu Apr 15 09:44:05 2010
New Revision: 73756
Modified:
pypy/trunk/pypy/module/_file/interp_file.py
pypy/trunk/pypy/module/_file/interp_stream.py
Log:
Cleanup: there was already self.w_name, so adding self.name is just
confusing.
Modified: pypy/trunk/pypy/module/_file/interp_file.py
==============================================================================
--- pypy/trunk/pypy/module/_file/interp_file.py (original)
+++ pypy/trunk/pypy/module/_file/interp_file.py Thu Apr 15 09:44:05 2010
@@ -24,9 +24,10 @@
# Default values until the file is successfully opened
stream = None
- name = "<uninitialized file>"
+ w_name = None
mode = "<uninitialized file>"
- encoding = None
+ softspace= 0 # Required according to file object docs
+ encoding = None # This is not used internally by file objects
fd = -1
def __init__(self, space):
@@ -38,11 +39,8 @@
self.clear_all_weakrefs()
self.direct_close()
- def fdopenstream(self, stream, fd, mode, w_name):
+ def fdopenstream(self, stream, fd, mode):
self.fd = fd
- self.w_name = w_name
- self.softspace = 0 # Required according to file object docs
- self.encoding = None # This is not used internally by file objects
self.mode = mode
self.stream = stream
if stream.flushable():
@@ -82,12 +80,12 @@
def direct___init__(self, w_name, mode='r', buffering=-1):
name = self.space.str_w(w_name)
- self.name = name
self.direct_close()
+ self.w_name = w_name
self.check_mode_ok(mode)
stream = streamio.open_file_as_stream(name, mode, buffering)
fd = stream.try_to_find_file_descriptor()
- self.fdopenstream(stream, fd, mode, w_name)
+ self.fdopenstream(stream, fd, mode)
def direct___enter__(self):
if self.stream is None:
@@ -103,9 +101,10 @@
def direct_fdopen(self, fd, mode='r', buffering=-1):
self.direct_close()
+ self.w_name = self.space.wrap('<fdopen>')
self.check_mode_ok(mode)
stream = streamio.fdopen_as_stream(fd, mode, buffering)
- self.fdopenstream(stream, fd, mode, self.space.wrap('<fdopen>'))
+ self.fdopenstream(stream, fd, mode)
def direct_close(self):
space = self.space
@@ -240,7 +239,7 @@
try:
self.direct_fdopen(fd, mode, buffering)
except StreamErrors, e:
- raise wrap_streamerror(self.space, e, self.name)
+ raise wrap_streamerror(self.space, e, self.w_name)
_exposed_method_names = []
@@ -276,7 +275,7 @@
try:
result = self.direct_%(name)s(%(callsig)s)
except StreamErrors, e:
- raise wrap_streamerror(space, e, self.name)
+ raise wrap_streamerror(space, e, self.w_name)
finally:
self.unlock()
return %(wrapresult)s
@@ -388,16 +387,19 @@
head = "closed"
else:
head = "open"
- if self.space.is_true(self.space.isinstance(self.w_name,
+ w_name = self.w_name
+ if w_name is None:
+ w_name = self.space.wrap('?')
+ if self.space.is_true(self.space.isinstance(w_name,
self.space.w_str)):
info = "%s file '%s', mode '%s'" % (
head,
- self.space.str_w(self.w_name),
+ self.space.str_w(w_name),
self.mode)
else:
info = "%s file %s, mode '%s'" % (
head,
- self.space.str_w(self.space.repr(self.w_name)),
+ self.space.str_w(self.space.repr(w_name)),
self.mode)
return self.getrepr(self.space, info)
file__repr__.unwrap_spec = ['self']
Modified: pypy/trunk/pypy/module/_file/interp_stream.py
==============================================================================
--- pypy/trunk/pypy/module/_file/interp_stream.py (original)
+++ pypy/trunk/pypy/module/_file/interp_stream.py Thu Apr 15 09:44:05 2010
@@ -10,16 +10,16 @@
import os
-def wrap_streamerror(space, e, filename):
+def wrap_streamerror(space, e, w_filename=None):
if isinstance(e, streamio.StreamError):
return OperationError(space.w_ValueError,
space.wrap(e.message))
elif isinstance(e, OSError):
- return wrap_oserror_as_ioerror(space, e, filename)
+ return wrap_oserror_as_ioerror(space, e, w_filename)
else:
return OperationError(space.w_IOError, space.w_None)
-def wrap_oserror_as_ioerror(space, e, filename):
+def wrap_oserror_as_ioerror(space, e, w_filename=None):
assert isinstance(e, OSError)
errno = e.errno
try:
@@ -29,7 +29,7 @@
w_error = space.call_function(space.w_IOError,
space.wrap(errno),
space.wrap(msg),
- space.wrap(filename))
+ w_filename)
return OperationError(space.w_IOError, w_error)
More information about the Pypy-commit
mailing list