[pypy-commit] pypy use-file-star-for-file: adjust for rfile raising IOError instead of OSError

bdkearns noreply at buildbot.pypy.org
Mon Sep 8 01:00:52 CEST 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: use-file-star-for-file
Changeset: r73372:63372c8f1af9
Date: 2014-09-07 19:00 -0400
http://bitbucket.org/pypy/pypy/changeset/63372c8f1af9/

Log:	adjust for rfile raising IOError instead of OSError

diff --git a/pypy/module/_file/interp_file.py b/pypy/module/_file/interp_file.py
--- a/pypy/module/_file/interp_file.py
+++ b/pypy/module/_file/interp_file.py
@@ -10,7 +10,6 @@
 from pypy.interpreter.typedef import (TypeDef, GetSetProperty,
     interp_attrproperty, make_weakref_descr, interp_attrproperty_w)
 from pypy.interpreter.gateway import interp2app, unwrap_spec
-from pypy.interpreter.streamutil import wrap_oserror_as_ioerror
 
 
 class W_File(W_AbstractStream):
@@ -52,8 +51,10 @@
         assert isinstance(self, W_File)
         try:
             self.direct_close()
-        except OSError as e:
-            raise wrap_oserror_as_ioerror(self.space, e, self.w_name)
+        except IOError as e:
+            space = self.space
+            w_error = space.call_function(space.w_IOError, space.wrap(e.errno), space.wrap(e.strerror), self.w_name)
+            raise OperationError(space.w_IOError, w_error)
 
     def fdopenstream(self, stream, mode):
         self.stream = stream
@@ -276,8 +277,9 @@
                         result = self.direct_%(name)s(%(callsig)s)
                     except ValueError as e:
                         raise OperationError(space.w_ValueError, space.wrap(str(e)))
-                    except OSError as e:
-                        raise wrap_oserror_as_ioerror(self.space, e, self.w_name)
+                    except IOError as e:
+                        w_error = space.call_function(space.w_IOError, space.wrap(e.errno), space.wrap(e.strerror), self.w_name)
+                        raise OperationError(space.w_IOError, w_error)
                 finally:
                     self.unlock()
                 return %(wrapresult)s


More information about the pypy-commit mailing list