Skip to content

Commit 2591169

Browse files
committed
address review
1 parent c57aed2 commit 2591169

File tree

4 files changed

+22
-37
lines changed

4 files changed

+22
-37
lines changed

pymongo/asynchronous/encryption.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
)
8686
from pymongo.read_concern import ReadConcern
8787
from pymongo.results import BulkWriteResult, DeleteResult
88-
from pymongo.ssl_support import BLOCKING_IO_ERRORS, PYBLOCKING_IO_ERRORS, get_ssl_context
88+
from pymongo.ssl_support import BLOCKING_IO_ERRORS, get_ssl_context
8989
from pymongo.typings import _DocumentType, _DocumentTypeArg
9090
from pymongo.uri_parser_shared import parse_host
9191
from pymongo.write_concern import WriteConcern
@@ -217,7 +217,7 @@ async def kms_request(self, kms_context: MongoCryptKmsContext) -> None:
217217
raise # Propagate MongoCryptError errors directly.
218218
except Exception as exc:
219219
# Wrap I/O errors in PyMongo exceptions.
220-
if isinstance(exc, (BLOCKING_IO_ERRORS, PYBLOCKING_IO_ERRORS)):
220+
if isinstance(exc, BLOCKING_IO_ERRORS):
221221
exc = socket.timeout("timed out")
222222
# Async raises an OSError instead of returning empty bytes.
223223
if isinstance(exc, OSError):

pymongo/network_layer.py

+6-15
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,6 @@
5757
BLOCKING_IO_LOOKUP_ERROR,
5858
BLOCKING_IO_READ_ERROR,
5959
BLOCKING_IO_WRITE_ERROR,
60-
PYBLOCKING_IO_LOOKUP_ERROR,
61-
PYBLOCKING_IO_READ_ERROR,
62-
PYBLOCKING_IO_WRITE_ERROR,
6360
)
6461

6562
if TYPE_CHECKING:
@@ -73,9 +70,7 @@
7370
BLOCKING_IO_ERRORS = (
7471
BlockingIOError,
7572
BLOCKING_IO_LOOKUP_ERROR,
76-
PYBLOCKING_IO_LOOKUP_ERROR,
7773
*ssl_support.BLOCKING_IO_ERRORS,
78-
*ssl_support.PYBLOCKING_IO_ERRORS,
7974
)
8075

8176

@@ -118,23 +113,21 @@ def _is_ready(fut: Future) -> None:
118113
# Check for closed socket.
119114
if fd == -1:
120115
raise SSLError("Underlying socket has been closed") from None
121-
if isinstance(exc, (BLOCKING_IO_READ_ERROR, PYBLOCKING_IO_READ_ERROR)):
116+
if isinstance(exc, BLOCKING_IO_READ_ERROR):
122117
fut = loop.create_future()
123118
loop.add_reader(fd, _is_ready, fut)
124119
try:
125120
await fut
126121
finally:
127122
loop.remove_reader(fd)
128-
if isinstance(exc, (BLOCKING_IO_WRITE_ERROR, PYBLOCKING_IO_WRITE_ERROR)):
123+
if isinstance(exc, BLOCKING_IO_WRITE_ERROR):
129124
fut = loop.create_future()
130125
loop.add_writer(fd, _is_ready, fut)
131126
try:
132127
await fut
133128
finally:
134129
loop.remove_writer(fd)
135-
if _HAVE_PYOPENSSL and isinstance(
136-
exc, (BLOCKING_IO_LOOKUP_ERROR, PYBLOCKING_IO_LOOKUP_ERROR)
137-
):
130+
if _HAVE_PYOPENSSL and isinstance(exc, BLOCKING_IO_LOOKUP_ERROR):
138131
fut = loop.create_future()
139132
loop.add_reader(fd, _is_ready, fut)
140133
try:
@@ -169,23 +162,21 @@ def _is_ready(fut: Future) -> None:
169162
# Check for closed socket.
170163
if fd == -1:
171164
raise SSLError("Underlying socket has been closed") from None
172-
if isinstance(exc, (BLOCKING_IO_READ_ERROR, PYBLOCKING_IO_READ_ERROR)):
165+
if isinstance(exc, BLOCKING_IO_READ_ERROR):
173166
fut = loop.create_future()
174167
loop.add_reader(fd, _is_ready, fut)
175168
try:
176169
await fut
177170
finally:
178171
loop.remove_reader(fd)
179-
if isinstance(exc, (BLOCKING_IO_WRITE_ERROR, PYBLOCKING_IO_WRITE_ERROR)):
172+
if isinstance(exc, BLOCKING_IO_WRITE_ERROR):
180173
fut = loop.create_future()
181174
loop.add_writer(fd, _is_ready, fut)
182175
try:
183176
await fut
184177
finally:
185178
loop.remove_writer(fd)
186-
if _HAVE_PYOPENSSL and isinstance(
187-
exc, (BLOCKING_IO_LOOKUP_ERROR, PYBLOCKING_IO_LOOKUP_ERROR)
188-
):
179+
if _HAVE_PYOPENSSL and isinstance(exc, BLOCKING_IO_LOOKUP_ERROR):
189180
fut = loop.create_future()
190181
loop.add_reader(fd, _is_ready, fut)
191182
try:

pymongo/ssl_support.py

+12-18
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import types
1919
import warnings
20-
from typing import Any, Optional, Union
20+
from typing import Optional, Union
2121

2222
from pymongo.errors import ConfigurationError
2323

@@ -52,27 +52,21 @@
5252
import ssl as _stdlibssl # noqa: F401
5353
from ssl import CERT_NONE, CERT_REQUIRED
5454

55-
HAS_SNI = _ssl.HAS_SNI
5655
IPADDR_SAFE = True
57-
SSLError = _ssl.SSLError
58-
BLOCKING_IO_ERRORS = _ssl.BLOCKING_IO_ERRORS
59-
BLOCKING_IO_READ_ERROR = _ssl.BLOCKING_IO_READ_ERROR
60-
BLOCKING_IO_WRITE_ERROR = _ssl.BLOCKING_IO_WRITE_ERROR
61-
BLOCKING_IO_LOOKUP_ERROR = BLOCKING_IO_READ_ERROR
6256

6357
if HAVE_PYSSL:
64-
PYSSLError: Any = _pyssl.SSLError
65-
PYBLOCKING_IO_ERRORS: Any = _pyssl.BLOCKING_IO_ERRORS
66-
PYBLOCKING_IO_READ_ERROR: Any = _pyssl.BLOCKING_IO_READ_ERROR
67-
PYBLOCKING_IO_WRITE_ERROR: Any = _pyssl.BLOCKING_IO_WRITE_ERROR
68-
PYBLOCKING_IO_LOOKUP_ERROR: Any = BLOCKING_IO_READ_ERROR
58+
HAS_SNI = _pyssl.HAS_SNI | _ssl.HAS_SNI
59+
SSLError = _pyssl.SSLError | _ssl.SSLError
60+
BLOCKING_IO_ERRORS = _pyssl.BLOCKING_IO_ERRORS | _ssl.BLOCKING_IO_ERRORS
61+
BLOCKING_IO_READ_ERROR = _pyssl.BLOCKING_IO_READ_ERROR | _ssl.BLOCKING_IO_READ_ERROR
62+
BLOCKING_IO_WRITE_ERROR = _pyssl.BLOCKING_IO_WRITE_ERROR | _ssl.BLOCKING_IO_WRITE_ERROR
6963
else:
70-
# just make them the same as SSL so imports won't error
71-
PYSSLError = _ssl.SSLError
72-
PYBLOCKING_IO_ERRORS = _ssl.BLOCKING_IO_ERRORS
73-
PYBLOCKING_IO_READ_ERROR = _ssl.BLOCKING_IO_READ_ERROR
74-
PYBLOCKING_IO_WRITE_ERROR = _ssl.BLOCKING_IO_WRITE_ERROR
75-
PYBLOCKING_IO_LOOKUP_ERROR = BLOCKING_IO_READ_ERROR
64+
HAS_SNI = _ssl.HAS_SNI
65+
SSLError = _ssl.SSLError
66+
BLOCKING_IO_ERRORS = _ssl.BLOCKING_IO_ERRORS
67+
BLOCKING_IO_READ_ERROR = _ssl.BLOCKING_IO_READ_ERROR
68+
BLOCKING_IO_WRITE_ERROR = _ssl.BLOCKING_IO_WRITE_ERROR
69+
BLOCKING_IO_LOOKUP_ERROR = BLOCKING_IO_READ_ERROR
7670

7771
def get_ssl_context(
7872
certfile: Optional[str],

pymongo/synchronous/encryption.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
)
8181
from pymongo.read_concern import ReadConcern
8282
from pymongo.results import BulkWriteResult, DeleteResult
83-
from pymongo.ssl_support import BLOCKING_IO_ERRORS, PYBLOCKING_IO_ERRORS, get_ssl_context
83+
from pymongo.ssl_support import BLOCKING_IO_ERRORS, get_ssl_context
8484
from pymongo.synchronous.collection import Collection
8585
from pymongo.synchronous.cursor import Cursor
8686
from pymongo.synchronous.database import Database
@@ -216,7 +216,7 @@ def kms_request(self, kms_context: MongoCryptKmsContext) -> None:
216216
raise # Propagate MongoCryptError errors directly.
217217
except Exception as exc:
218218
# Wrap I/O errors in PyMongo exceptions.
219-
if isinstance(exc, (BLOCKING_IO_ERRORS, PYBLOCKING_IO_ERRORS)):
219+
if isinstance(exc, BLOCKING_IO_ERRORS):
220220
exc = socket.timeout("timed out")
221221
# Async raises an OSError instead of returning empty bytes.
222222
if isinstance(exc, OSError):

0 commit comments

Comments
 (0)