[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