Skip to content

Commit 62c9c3b

Browse files
annatischlmazuel
andauthored
Add experimental urllib3 transport (#35995)
* Add experimental urllib3 transport * Update CI dependencies * Fix test * Fix black * Update sdk/core/azure-core-experimental/azure/core/experimental/transport/_urllib3.py Co-authored-by: Anna Tisch <[email protected]> * Add testserver framework * Add initial tests * Syntax fail * Rename test param * More tests: part one * More tests: part two * More tests: part three * Fix tests: part one * Fix tests: part two * Response headers * Fix response headers * CI cleanup * Bump core dependency * Fix pylint * Make testserver more selective * Fix pyodide tests * Fixed cert typehint --------- Co-authored-by: Laurent Mazuel <[email protected]>
1 parent 3d0672b commit 62c9c3b

22 files changed

+2019
-45
lines changed

eng/ci_tools.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ readme_renderer==42.0;
2828
pyopenssl==24.0.0
2929
python-dotenv==1.0.0; python_version > '3.7'
3030
pyyaml==6.0.1
31-
urllib3==1.26.9
31+
urllib3==2.0.7
3232
ConfigArgParse==1.2.3
3333
six==1.16.0
3434

eng/test_tools.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ readme_renderer==42.0;
1717
pyopenssl==24.0.0
1818
python-dotenv==1.0.0; python_version > '3.7'
1919
pyyaml==6.0.1
20-
urllib3==1.26.9
20+
urllib3==2.0.7
2121
ConfigArgParse==1.2.3
2222
six==1.16.0

sdk/core/azure-core-experimental/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
### Features Added
66

7+
- urllib3 implementation of azure-core transport protocol
8+
79
### Breaking Changes
810

911
### Bugs Fixed

sdk/core/azure-core-experimental/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ pip install azure-core-experimental
1515

1616
- pyodide transport
1717
- httpx transport
18+
- urllib3 transport
1819

1920
## Contributing
2021

sdk/core/azure-core-experimental/azure/core/experimental/transport/__init__.py

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -23,42 +23,49 @@
2323
# IN THE SOFTWARE.
2424
#
2525
# --------------------------------------------------------------------------
26-
import sys
26+
# pylint:disable=undefined-all-variable
2727
from typing import List
2828

29-
# pylint: disable=undefined-all-variable
3029

31-
if sys.version_info >= (3, 7):
32-
__all__ = [
33-
"PyodideTransport",
34-
"HttpXTransport",
35-
"AsyncHttpXTransport",
36-
]
30+
__all__ = [
31+
"PyodideTransport",
32+
"HttpXTransport",
33+
"AsyncHttpXTransport",
34+
"Urllib3Transport",
35+
]
3736

38-
def __dir__() -> List[str]:
39-
return __all__
4037

41-
def __getattr__(name: str):
42-
if name == "PyodideTransport":
43-
try:
44-
from ._pyodide import PyodideTransport
38+
def __dir__() -> List[str]:
39+
return __all__
4540

46-
return PyodideTransport
47-
except ImportError as err:
48-
raise ImportError("pyodide package is not installed") from err
49-
if name == "HttpXTransport":
50-
try:
51-
from ._httpx import HttpXTransport
5241

53-
return HttpXTransport
54-
except ImportError as err:
55-
raise ImportError("httpx package is not installed") from err
56-
if name == "AsyncHttpXTransport":
57-
try:
58-
from ._httpx_async import AsyncHttpXTransport
42+
def __getattr__(name: str):
43+
if name == "PyodideTransport":
44+
try:
45+
from ._pyodide import PyodideTransport
5946

60-
return AsyncHttpXTransport
61-
except ImportError as err:
62-
raise ImportError("httpx package is not installed") from err
47+
return PyodideTransport
48+
except ImportError as err:
49+
raise ImportError("pyodide package is not installed") from err
50+
if name == "HttpXTransport":
51+
try:
52+
from ._httpx import HttpXTransport
6353

64-
raise AttributeError(f"module 'azure.core.experimental.transport' has no attribute {name}")
54+
return HttpXTransport
55+
except ImportError as err:
56+
raise ImportError("httpx package is not installed") from err
57+
if name == "AsyncHttpXTransport":
58+
try:
59+
from ._httpx_async import AsyncHttpXTransport
60+
61+
return AsyncHttpXTransport
62+
except ImportError as err:
63+
raise ImportError("httpx package is not installed") from err
64+
if name == "Urllib3Transport":
65+
try:
66+
from ._urllib3 import Urllib3Transport
67+
68+
return Urllib3Transport
69+
except ImportError as err:
70+
raise ImportError("urllib3 package is not installed") from err
71+
raise AttributeError(f"module 'azure.core.experimental.transport' has no attribute {name}")

0 commit comments

Comments
 (0)