File: 01_do-not-use-embedded-python-six.patch

package info (click to toggle)
python-urllib3 1.26.12-1%2Bdeb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-proposed-updates
  • size: 3,024 kB
  • sloc: python: 17,767; makefile: 130; sh: 18
file content (567 lines) | stat: -rw-r--r-- 19,415 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
From: Daniele Tricoli <eriol@mornie.org>
Date: Thu, 8 Oct 2015 13:19:46 -0700
Subject: Do not use embedded copy of python-six.

Forwarded: not-needed

Patch-Name: 01_do-not-use-embedded-python-six.patch
---
 dummyserver/handlers.py                          | 6 +++---
 src/urllib3/_collections.py                      | 4 ++--
 src/urllib3/connection.py                        | 6 +++---
 src/urllib3/connectionpool.py                    | 5 +++--
 src/urllib3/contrib/_securetransport/bindings.py | 2 +-
 src/urllib3/contrib/appengine.py                 | 2 +-
 src/urllib3/contrib/ntlmpool.py                  | 2 +-
 src/urllib3/contrib/pyopenssl.py                 | 2 +-
 src/urllib3/exceptions.py                        | 2 +-
 src/urllib3/fields.py                            | 2 +-
 src/urllib3/filepost.py                          | 4 ++--
 src/urllib3/poolmanager.py                       | 4 ++--
 src/urllib3/request.py                           | 2 +-
 src/urllib3/response.py                          | 2 +-
 src/urllib3/util/connection.py                   | 5 +++--
 src/urllib3/util/queue.py                        | 4 ++--
 src/urllib3/util/request.py                      | 2 +-
 src/urllib3/util/response.py                     | 2 +-
 src/urllib3/util/retry.py                        | 2 +-
 src/urllib3/util/ssl_.py                         | 2 +-
 src/urllib3/util/ssltransport.py                 | 2 +-
 src/urllib3/util/url.py                          | 2 +-
 test/__init__.py                                 | 2 +-
 test/test_collections.py                         | 2 +-
 test/test_compatibility.py                       | 2 +-
 test/test_connectionpool.py                      | 6 +++---
 test/test_fields.py                              | 2 +-
 test/test_filepost.py                            | 2 +-
 test/test_queue_monkeypatch.py                   | 2 +-
 test/test_response.py                            | 2 +-
 test/test_retry.py                               | 4 ++--
 test/test_retry_deprecated.py                    | 4 ++--
 test/test_util.py                                | 2 +-
 test/with_dummyserver/test_connectionpool.py     | 4 ++--
 test/with_dummyserver/test_https.py              | 2 +-
 test/with_dummyserver/test_socketlevel.py        | 2 +-
 36 files changed, 53 insertions(+), 51 deletions(-)

diff --git a/dummyserver/handlers.py b/dummyserver/handlers.py
index c90c2fc..f8bdf25 100644
--- a/dummyserver/handlers.py
+++ b/dummyserver/handlers.py
@@ -14,9 +14,9 @@ from io import BytesIO
 from tornado import httputil
 from tornado.web import RequestHandler
 
-from urllib3.packages.six import binary_type, ensure_str
-from urllib3.packages.six.moves.http_client import responses
-from urllib3.packages.six.moves.urllib.parse import urlsplit
+from six import binary_type, ensure_str
+from six.moves.http_client import responses
+from six.moves.urllib.parse import urlsplit
 
 log = logging.getLogger(__name__)
 
diff --git a/src/urllib3/_collections.py b/src/urllib3/_collections.py
index da9857e..527c1fe 100644
--- a/src/urllib3/_collections.py
+++ b/src/urllib3/_collections.py
@@ -19,8 +19,8 @@ except ImportError:  # Platform-specific: No threads available
 from collections import OrderedDict
 
 from .exceptions import InvalidHeader
-from .packages import six
-from .packages.six import iterkeys, itervalues
+import six
+from six import iterkeys, itervalues
 
 __all__ = ["RecentlyUsedContainer", "HTTPHeaderDict"]
 
diff --git a/src/urllib3/connection.py b/src/urllib3/connection.py
index 10fb36c..cbb9b89 100644
--- a/src/urllib3/connection.py
+++ b/src/urllib3/connection.py
@@ -9,9 +9,9 @@ import warnings
 from socket import error as SocketError
 from socket import timeout as SocketTimeout
 
-from .packages import six
-from .packages.six.moves.http_client import HTTPConnection as _HTTPConnection
-from .packages.six.moves.http_client import HTTPException  # noqa: F401
+import six
+from six.moves.http_client import HTTPConnection as _HTTPConnection
+from six.moves.http_client import HTTPException  # noqa: F401
 from .util.proxy import create_proxy_ssl_context
 
 try:  # Compiled with SSL?
diff --git a/src/urllib3/connectionpool.py b/src/urllib3/connectionpool.py
index 96339e9..1f4ed7d 100644
--- a/src/urllib3/connectionpool.py
+++ b/src/urllib3/connectionpool.py
@@ -9,6 +9,9 @@ import warnings
 from socket import error as SocketError
 from socket import timeout as SocketTimeout
 
+import six
+from six.moves import queue
+
 from .connection import (
     BaseSSLError,
     BrokenPipeError,
@@ -34,8 +37,6 @@ from .exceptions import (
     SSLError,
     TimeoutError,
 )
-from .packages import six
-from .packages.six.moves import queue
 from .request import RequestMethods
 from .response import HTTPResponse
 from .util.connection import is_connection_dropped
diff --git a/src/urllib3/contrib/_securetransport/bindings.py b/src/urllib3/contrib/_securetransport/bindings.py
index 264d564..3619b16 100644
--- a/src/urllib3/contrib/_securetransport/bindings.py
+++ b/src/urllib3/contrib/_securetransport/bindings.py
@@ -48,7 +48,7 @@ from ctypes import (
 )
 from ctypes.util import find_library
 
-from ...packages.six import raise_from
+from six import raise_from
 
 if platform.system() != "Darwin":
     raise ImportError("Only macOS is supported")
diff --git a/src/urllib3/contrib/appengine.py b/src/urllib3/contrib/appengine.py
index f91bdd6..9c73320 100644
--- a/src/urllib3/contrib/appengine.py
+++ b/src/urllib3/contrib/appengine.py
@@ -52,7 +52,7 @@ from ..exceptions import (
     SSLError,
     TimeoutError,
 )
-from ..packages.six.moves.urllib.parse import urljoin
+from six.moves.urllib.parse import urljoin
 from ..request import RequestMethods
 from ..response import HTTPResponse
 from ..util.retry import Retry
diff --git a/src/urllib3/contrib/ntlmpool.py b/src/urllib3/contrib/ntlmpool.py
index 41a8fd1..34adc9e 100644
--- a/src/urllib3/contrib/ntlmpool.py
+++ b/src/urllib3/contrib/ntlmpool.py
@@ -11,7 +11,7 @@ from logging import getLogger
 from ntlm import ntlm
 
 from .. import HTTPSConnectionPool
-from ..packages.six.moves.http_client import HTTPSConnection
+from six.moves.http_client import HTTPSConnection
 
 warnings.warn(
     "The 'urllib3.contrib.ntlmpool' module is deprecated and will be removed "
diff --git a/src/urllib3/contrib/pyopenssl.py b/src/urllib3/contrib/pyopenssl.py
index 50a07d5..0f3e555 100644
--- a/src/urllib3/contrib/pyopenssl.py
+++ b/src/urllib3/contrib/pyopenssl.py
@@ -76,7 +76,7 @@ import sys
 import warnings
 
 from .. import util
-from ..packages import six
+import six
 from ..util.ssl_ import PROTOCOL_TLS_CLIENT
 
 warnings.warn(
diff --git a/src/urllib3/exceptions.py b/src/urllib3/exceptions.py
index cba6f3f..053758e 100644
--- a/src/urllib3/exceptions.py
+++ b/src/urllib3/exceptions.py
@@ -1,6 +1,6 @@
 from __future__ import absolute_import
 
-from .packages.six.moves.http_client import IncompleteRead as httplib_IncompleteRead
+from six.moves.http_client import IncompleteRead as httplib_IncompleteRead
 
 # Base Exceptions
 
diff --git a/src/urllib3/fields.py b/src/urllib3/fields.py
index 9d630f4..65aad4b 100644
--- a/src/urllib3/fields.py
+++ b/src/urllib3/fields.py
@@ -4,7 +4,7 @@ import email.utils
 import mimetypes
 import re
 
-from .packages import six
+import six
 
 
 def guess_content_type(filename, default="application/octet-stream"):
diff --git a/src/urllib3/filepost.py b/src/urllib3/filepost.py
index 36c9252..cc2ecdb 100644
--- a/src/urllib3/filepost.py
+++ b/src/urllib3/filepost.py
@@ -6,8 +6,8 @@ import os
 from io import BytesIO
 
 from .fields import RequestField
-from .packages import six
-from .packages.six import b
+import six
+from six import b
 
 writer = codecs.lookup("utf-8")[3]
 
diff --git a/src/urllib3/poolmanager.py b/src/urllib3/poolmanager.py
index ca4ec34..ca305ec 100644
--- a/src/urllib3/poolmanager.py
+++ b/src/urllib3/poolmanager.py
@@ -13,8 +13,8 @@ from .exceptions import (
     ProxySchemeUnsupported,
     URLSchemeUnknown,
 )
-from .packages import six
-from .packages.six.moves.urllib.parse import urljoin
+import six
+from six.moves.urllib.parse import urljoin
 from .request import RequestMethods
 from .util.proxy import connection_requires_http_tunnel
 from .util.retry import Retry
diff --git a/src/urllib3/request.py b/src/urllib3/request.py
index 398386a..6f5c0a5 100644
--- a/src/urllib3/request.py
+++ b/src/urllib3/request.py
@@ -1,7 +1,7 @@
 from __future__ import absolute_import
 
 from .filepost import encode_multipart_formdata
-from .packages.six.moves.urllib.parse import urlencode
+from six.moves.urllib.parse import urlencode
 
 __all__ = ["RequestMethods"]
 
diff --git a/src/urllib3/response.py b/src/urllib3/response.py
index 01f08ee..4fcf8a0 100644
--- a/src/urllib3/response.py
+++ b/src/urllib3/response.py
@@ -31,7 +31,7 @@ from .exceptions import (
     ResponseNotChunked,
     SSLError,
 )
-from .packages import six
+import six
 from .util.response import is_fp_closed, is_response_to_head
 
 log = logging.getLogger(__name__)
diff --git a/src/urllib3/util/connection.py b/src/urllib3/util/connection.py
index 6af1138..953266f 100644
--- a/src/urllib3/util/connection.py
+++ b/src/urllib3/util/connection.py
@@ -2,9 +2,10 @@ from __future__ import absolute_import
 
 import socket
 
+import six
+
 from ..contrib import _appengine_environ
 from ..exceptions import LocationParseError
-from ..packages import six
 from .wait import NoWayToWaitForSocketError, wait_for_read
 
 
@@ -66,7 +67,7 @@ def create_connection(
         host.encode("idna")
     except UnicodeError:
         return six.raise_from(
-            LocationParseError(u"'%s', label empty or too long" % host), None
+            LocationParseError("'%s', label empty or too long" % host), None
         )
 
     for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
diff --git a/src/urllib3/util/queue.py b/src/urllib3/util/queue.py
index 4178410..7f214cb 100644
--- a/src/urllib3/util/queue.py
+++ b/src/urllib3/util/queue.py
@@ -1,7 +1,7 @@
 import collections
 
-from ..packages import six
-from ..packages.six.moves import queue
+import six
+from six.moves import queue
 
 if six.PY2:
     # Queue is imported for side effects on MS Windows. See issue #229.
diff --git a/src/urllib3/util/request.py b/src/urllib3/util/request.py
index b574b08..7427875 100644
--- a/src/urllib3/util/request.py
+++ b/src/urllib3/util/request.py
@@ -3,7 +3,7 @@ from __future__ import absolute_import
 from base64 import b64encode
 
 from ..exceptions import UnrewindableBodyError
-from ..packages.six import b, integer_types
+from six import b, integer_types
 
 # Pass as a value within ``headers`` to skip
 # emitting some HTTP headers that are added automatically.
diff --git a/src/urllib3/util/response.py b/src/urllib3/util/response.py
index 5ea609c..bd6ecd7 100644
--- a/src/urllib3/util/response.py
+++ b/src/urllib3/util/response.py
@@ -3,7 +3,7 @@ from __future__ import absolute_import
 from email.errors import MultipartInvariantViolationDefect, StartBoundaryNotFoundDefect
 
 from ..exceptions import HeaderParsingError
-from ..packages.six.moves import http_client as httplib
+from six.moves import http_client as httplib
 
 
 def is_fp_closed(obj):
diff --git a/src/urllib3/util/retry.py b/src/urllib3/util/retry.py
index 3398323..4473a8e 100644
--- a/src/urllib3/util/retry.py
+++ b/src/urllib3/util/retry.py
@@ -17,7 +17,7 @@ from ..exceptions import (
     ReadTimeoutError,
     ResponseError,
 )
-from ..packages import six
+import six
 
 log = logging.getLogger(__name__)
 
diff --git a/src/urllib3/util/ssl_.py b/src/urllib3/util/ssl_.py
index 8f86781..11183c4 100644
--- a/src/urllib3/util/ssl_.py
+++ b/src/urllib3/util/ssl_.py
@@ -13,7 +13,7 @@ from ..exceptions import (
     SNIMissingWarning,
     SSLError,
 )
-from ..packages import six
+import six
 from .url import BRACELESS_IPV6_ADDRZ_RE, IPV4_RE
 
 SSLContext = None
diff --git a/src/urllib3/util/ssltransport.py b/src/urllib3/util/ssltransport.py
index 4a7105d..eaa2b60 100644
--- a/src/urllib3/util/ssltransport.py
+++ b/src/urllib3/util/ssltransport.py
@@ -3,7 +3,7 @@ import socket
 import ssl
 
 from ..exceptions import ProxySchemeUnsupported
-from ..packages import six
+import six
 
 SSL_BLOCKSIZE = 16384
 
diff --git a/src/urllib3/util/url.py b/src/urllib3/util/url.py
index b667c16..515d6fc 100644
--- a/src/urllib3/util/url.py
+++ b/src/urllib3/util/url.py
@@ -4,7 +4,7 @@ import re
 from collections import namedtuple
 
 from ..exceptions import LocationParseError
-from ..packages import six
+import six
 
 url_attrs = ["scheme", "auth", "host", "port", "path", "query", "fragment"]
 
diff --git a/test/__init__.py b/test/__init__.py
index 2307b2d..d5cc98b 100644
--- a/test/__init__.py
+++ b/test/__init__.py
@@ -18,7 +18,7 @@ except ImportError:
 
 from urllib3 import util
 from urllib3.exceptions import HTTPWarning
-from urllib3.packages import six
+import six
 from urllib3.util import ssl_
 
 try:
diff --git a/test/test_collections.py b/test/test_collections.py
index 4b8624c..056fddd 100644
--- a/test/test_collections.py
+++ b/test/test_collections.py
@@ -3,7 +3,7 @@ import pytest
 from urllib3._collections import HTTPHeaderDict
 from urllib3._collections import RecentlyUsedContainer as Container
 from urllib3.exceptions import InvalidHeader
-from urllib3.packages import six
+import six
 
 xrange = six.moves.xrange
 
diff --git a/test/test_compatibility.py b/test/test_compatibility.py
index 58a9ab5..0c86d4d 100644
--- a/test/test_compatibility.py
+++ b/test/test_compatibility.py
@@ -3,7 +3,7 @@ import warnings
 import pytest
 
 from urllib3.connection import HTTPConnection
-from urllib3.packages.six.moves import http_cookiejar, urllib
+from six.moves import http_cookiejar, urllib
 from urllib3.response import HTTPResponse
 
 
diff --git a/test/test_connectionpool.py b/test/test_connectionpool.py
index 872d01c..ad70c45 100644
--- a/test/test_connectionpool.py
+++ b/test/test_connectionpool.py
@@ -7,6 +7,9 @@ from test import SHORT_TIMEOUT
 
 import pytest
 from mock import Mock
+from six.moves import http_client as httplib
+from six.moves.http_client import HTTPException
+from six.moves.queue import Empty
 
 from dummyserver.server import DEFAULT_CA
 from urllib3._collections import HTTPHeaderDict
@@ -26,9 +29,6 @@ from urllib3.exceptions import (
     SSLError,
     TimeoutError,
 )
-from urllib3.packages.six.moves import http_client as httplib
-from urllib3.packages.six.moves.http_client import HTTPException
-from urllib3.packages.six.moves.queue import Empty
 from urllib3.response import HTTPResponse
 from urllib3.util.ssl_match_hostname import CertificateError
 from urllib3.util.timeout import Timeout
diff --git a/test/test_fields.py b/test/test_fields.py
index 98ce17c..cde4b96 100644
--- a/test/test_fields.py
+++ b/test/test_fields.py
@@ -1,7 +1,7 @@
 import pytest
 
 from urllib3.fields import RequestField, format_header_param_rfc2231, guess_content_type
-from urllib3.packages.six import u
+from six import u
 
 
 class TestRequestField(object):
diff --git a/test/test_filepost.py b/test/test_filepost.py
index 5b0cfe1..da6ecdc 100644
--- a/test/test_filepost.py
+++ b/test/test_filepost.py
@@ -2,7 +2,7 @@ import pytest
 
 from urllib3.fields import RequestField
 from urllib3.filepost import encode_multipart_formdata, iter_fields
-from urllib3.packages.six import b, u
+from six import b, u
 
 BOUNDARY = "!! test boundary !!"
 
diff --git a/test/test_queue_monkeypatch.py b/test/test_queue_monkeypatch.py
index f8420a0..475d3be 100644
--- a/test/test_queue_monkeypatch.py
+++ b/test/test_queue_monkeypatch.py
@@ -5,7 +5,7 @@ import pytest
 
 from urllib3 import HTTPConnectionPool
 from urllib3.exceptions import EmptyPoolError
-from urllib3.packages.six.moves import queue
+from six.moves import queue
 
 
 class BadError(Exception):
diff --git a/test/test_response.py b/test/test_response.py
index 03f2780..bffef76 100644
--- a/test/test_response.py
+++ b/test/test_response.py
@@ -23,7 +23,7 @@ from urllib3.exceptions import (
     SSLError,
     httplib_IncompleteRead,
 )
-from urllib3.packages.six.moves import http_client as httplib
+from six.moves import http_client as httplib
 from urllib3.response import HTTPResponse, brotli
 from urllib3.util.response import is_fp_closed
 from urllib3.util.retry import RequestHistory, Retry
diff --git a/test/test_retry.py b/test/test_retry.py
index 21ba1e9..53f0935 100644
--- a/test/test_retry.py
+++ b/test/test_retry.py
@@ -11,8 +11,8 @@ from urllib3.exceptions import (
     ResponseError,
     SSLError,
 )
-from urllib3.packages import six
-from urllib3.packages.six.moves import xrange
+import six
+from six.moves import xrange
 from urllib3.response import HTTPResponse
 from urllib3.util.retry import RequestHistory, Retry
 
diff --git a/test/test_retry_deprecated.py b/test/test_retry_deprecated.py
index f55c5d8..4b3c9d8 100644
--- a/test/test_retry_deprecated.py
+++ b/test/test_retry_deprecated.py
@@ -12,8 +12,8 @@ from urllib3.exceptions import (
     ResponseError,
     SSLError,
 )
-from urllib3.packages import six
-from urllib3.packages.six.moves import xrange
+import six
+from six.moves import xrange
 from urllib3.response import HTTPResponse
 from urllib3.util.retry import RequestHistory, Retry
 
diff --git a/test/test_util.py b/test/test_util.py
index bb89464..5311633 100644
--- a/test/test_util.py
+++ b/test/test_util.py
@@ -19,7 +19,7 @@ from urllib3.exceptions import (
     TimeoutStateError,
     UnrewindableBodyError,
 )
-from urllib3.packages import six
+import six
 from urllib3.poolmanager import ProxyConfig
 from urllib3.util import is_fp_closed
 from urllib3.util.connection import _has_ipv6, allowed_gai_family, create_connection
diff --git a/test/with_dummyserver/test_connectionpool.py b/test/with_dummyserver/test_connectionpool.py
index a4efff5..2177c24 100644
--- a/test/with_dummyserver/test_connectionpool.py
+++ b/test/with_dummyserver/test_connectionpool.py
@@ -30,8 +30,8 @@ from urllib3.exceptions import (
     ReadTimeoutError,
     UnrewindableBodyError,
 )
-from urllib3.packages.six import b, u
-from urllib3.packages.six.moves.urllib.parse import urlencode
+from six import b, u
+from six.moves.urllib.parse import urlencode
 from urllib3.util import SKIP_HEADER, SKIPPABLE_HEADERS
 from urllib3.util.retry import RequestHistory, Retry
 from urllib3.util.timeout import Timeout
diff --git a/test/with_dummyserver/test_https.py b/test/with_dummyserver/test_https.py
index f37f8e6..5ddc879 100644
--- a/test/with_dummyserver/test_https.py
+++ b/test/with_dummyserver/test_https.py
@@ -41,7 +41,7 @@ from urllib3.exceptions import (
     SSLError,
     SystemTimeWarning,
 )
-from urllib3.packages import six
+import six
 from urllib3.util.timeout import Timeout
 
 from .. import has_alpn
diff --git a/test/with_dummyserver/test_socketlevel.py b/test/with_dummyserver/test_socketlevel.py
index 41f1834..54e24a4 100644
--- a/test/with_dummyserver/test_socketlevel.py
+++ b/test/with_dummyserver/test_socketlevel.py
@@ -17,7 +17,7 @@ from urllib3.exceptions import (
     ReadTimeoutError,
     SSLError,
 )
-from urllib3.packages.six.moves import http_client as httplib
+from six.moves import http_client as httplib
 from urllib3.poolmanager import proxy_from_url
 from urllib3.util import ssl_, ssl_wrap_socket
 from urllib3.util.retry import Retry