[Python-checkins] bpo-42427: Use the errno attribute of OSError instead of args[0] (GH-23449)

serhiy-storchaka webhook-mailer at python.org
Sun Nov 22 03:29:02 EST 2020


https://github.com/python/cpython/commit/c4d45ee670c09d4f6da709df072ec80cb7dfad22
commit: c4d45ee670c09d4f6da709df072ec80cb7dfad22
branch: master
author: Serhiy Storchaka <storchaka at gmail.com>
committer: serhiy-storchaka <storchaka at gmail.com>
date: 2020-11-22T10:28:34+02:00
summary:

bpo-42427: Use the errno attribute of OSError instead of args[0] (GH-23449)

files:
M Lib/asyncore.py
M Lib/smtpd.py
M Lib/socket.py

diff --git a/Lib/asyncore.py b/Lib/asyncore.py
index ce16f11a2f5ce..eeea48888616d 100644
--- a/Lib/asyncore.py
+++ b/Lib/asyncore.py
@@ -113,7 +113,7 @@ def readwrite(obj, flags):
         if flags & (select.POLLHUP | select.POLLERR | select.POLLNVAL):
             obj.handle_close()
     except OSError as e:
-        if e.args[0] not in _DISCONNECTED:
+        if e.errno not in _DISCONNECTED:
             obj.handle_error()
         else:
             obj.handle_close()
@@ -236,7 +236,7 @@ def __init__(self, sock=None, map=None):
             try:
                 self.addr = sock.getpeername()
             except OSError as err:
-                if err.args[0] in (ENOTCONN, EINVAL):
+                if err.errno in (ENOTCONN, EINVAL):
                     # To handle the case where we got an unconnected
                     # socket.
                     self.connected = False
@@ -346,7 +346,7 @@ def accept(self):
         except TypeError:
             return None
         except OSError as why:
-            if why.args[0] in (EWOULDBLOCK, ECONNABORTED, EAGAIN):
+            if why.errno in (EWOULDBLOCK, ECONNABORTED, EAGAIN):
                 return None
             else:
                 raise
@@ -358,9 +358,9 @@ def send(self, data):
             result = self.socket.send(data)
             return result
         except OSError as why:
-            if why.args[0] == EWOULDBLOCK:
+            if why.errno == EWOULDBLOCK:
                 return 0
-            elif why.args[0] in _DISCONNECTED:
+            elif why.errno in _DISCONNECTED:
                 self.handle_close()
                 return 0
             else:
@@ -378,7 +378,7 @@ def recv(self, buffer_size):
                 return data
         except OSError as why:
             # winsock sometimes raises ENOTCONN
-            if why.args[0] in _DISCONNECTED:
+            if why.errno in _DISCONNECTED:
                 self.handle_close()
                 return b''
             else:
@@ -393,7 +393,7 @@ def close(self):
             try:
                 self.socket.close()
             except OSError as why:
-                if why.args[0] not in (ENOTCONN, EBADF):
+                if why.errno not in (ENOTCONN, EBADF):
                     raise
 
     # log and log_info may be overridden to provide more sophisticated
@@ -557,7 +557,7 @@ def close_all(map=None, ignore_all=False):
         try:
             x.close()
         except OSError as x:
-            if x.args[0] == EBADF:
+            if x.errno == EBADF:
                 pass
             elif not ignore_all:
                 raise
diff --git a/Lib/smtpd.py b/Lib/smtpd.py
index 8f1a22e937871..1e2adc87a2bf2 100755
--- a/Lib/smtpd.py
+++ b/Lib/smtpd.py
@@ -163,7 +163,7 @@ def __init__(self, server, conn, addr, data_size_limit=DATA_SIZE_DEFAULT,
             # a race condition  may occur if the other end is closing
             # before we can get the peername
             self.close()
-            if err.args[0] != errno.ENOTCONN:
+            if err.errno != errno.ENOTCONN:
                 raise
             return
         print('Peer:', repr(self.peer), file=DEBUGSTREAM)
diff --git a/Lib/socket.py b/Lib/socket.py
index 54a380787601e..5276cc8ba3d61 100755
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -706,7 +706,7 @@ def readinto(self, b):
                 self._timeout_occurred = True
                 raise
             except error as e:
-                if e.args[0] in _blocking_errnos:
+                if e.errno in _blocking_errnos:
                     return None
                 raise
 
@@ -722,7 +722,7 @@ def write(self, b):
             return self._sock.send(b)
         except error as e:
             # XXX what about EINTR?
-            if e.args[0] in _blocking_errnos:
+            if e.errno in _blocking_errnos:
                 return None
             raise
 



More information about the Python-checkins mailing list