git: 5b718ffa36da - main - www/py-httpx: Allow build with py-httpcore 0.15.0

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Sun, 22 May 2022 05:16:08 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5b718ffa36da92349f14039f9af5a4c7aa9b7d8e

commit 5b718ffa36da92349f14039f9af5a4c7aa9b7d8e
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2022-05-22 05:08:55 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2022-05-22 05:08:55 +0000

    www/py-httpx: Allow build with py-httpcore 0.15.0
    
    - While I'm here, remove py-rfc3986 patch from setup.py and update RUN_DEPENDS
    - Bump PORTREVISION for package change
    
    Obtained from:  https://github.com/encode/httpx/commit/14a1704be507cf435fa84da75c249c2ecd1c3981
---
 www/py-httpx/Makefile             |    5 +-
 www/py-httpx/files/patch-httpcore | 1414 +++++++++++++++++++++++++++++++++++++
 www/py-httpx/files/patch-setup.py |    9 -
 3 files changed, 1417 insertions(+), 11 deletions(-)

diff --git a/www/py-httpx/Makefile b/www/py-httpx/Makefile
index a86d24b3f6f9..eca23317d640 100644
--- a/www/py-httpx/Makefile
+++ b/www/py-httpx/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	httpx
 PORTVERSION=	0.22.0
+PORTREVISION=	1
 CATEGORIES=	www python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -15,9 +16,9 @@ LICENSE_FILE=	${WRKSRC}/LICENSE.md
 # idna is from rfc3986[idna2008]
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}certifi>=0:security/py-certifi@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}charset-normalizer>=0:textproc/py-charset-normalizer@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}httpcore>=0.14.5<0.15.0:www/py-httpcore@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}httpcore>=0.15.0<0.16.0:www/py-httpcore@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}idna>=0:dns/py-idna@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}rfc3986>=1.3,1:www/py-rfc3986@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}rfc3986>=1.3,1<2,1:www/py-rfc3986@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}sniffio>=0:devel/py-sniffio@${PY_FLAVOR}
 
 USES=		cpe python:3.7+
diff --git a/www/py-httpx/files/patch-httpcore b/www/py-httpx/files/patch-httpcore
new file mode 100644
index 000000000000..5d0d9153bea8
--- /dev/null
+++ b/www/py-httpx/files/patch-httpcore
@@ -0,0 +1,1414 @@
+Obtained from:	https://github.com/encode/httpx/commit/14a1704be507cf435fa84da75c249c2ecd1c3981
+
+--- httpx/_api.py.orig	2022-01-26 14:49:48 UTC
++++ httpx/_api.py
+@@ -24,19 +24,19 @@ def request(
+     method: str,
+     url: URLTypes,
+     *,
+-    params: QueryParamTypes = None,
+-    content: RequestContent = None,
+-    data: RequestData = None,
+-    files: RequestFiles = None,
+-    json: typing.Any = None,
+-    headers: HeaderTypes = None,
+-    cookies: CookieTypes = None,
+-    auth: AuthTypes = None,
+-    proxies: ProxiesTypes = None,
++    params: typing.Optional[QueryParamTypes] = None,
++    content: typing.Optional[RequestContent] = None,
++    data: typing.Optional[RequestData] = None,
++    files: typing.Optional[RequestFiles] = None,
++    json: typing.Optional[typing.Any] = None,
++    headers: typing.Optional[HeaderTypes] = None,
++    cookies: typing.Optional[CookieTypes] = None,
++    auth: typing.Optional[AuthTypes] = None,
++    proxies: typing.Optional[ProxiesTypes] = None,
+     timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+     follow_redirects: bool = False,
+     verify: VerifyTypes = True,
+-    cert: CertTypes = None,
++    cert: typing.Optional[CertTypes] = None,
+     trust_env: bool = True,
+ ) -> Response:
+     """
+@@ -116,19 +116,19 @@ def stream(
+     method: str,
+     url: URLTypes,
+     *,
+-    params: QueryParamTypes = None,
+-    content: RequestContent = None,
+-    data: RequestData = None,
+-    files: RequestFiles = None,
+-    json: typing.Any = None,
+-    headers: HeaderTypes = None,
+-    cookies: CookieTypes = None,
+-    auth: AuthTypes = None,
+-    proxies: ProxiesTypes = None,
++    params: typing.Optional[QueryParamTypes] = None,
++    content: typing.Optional[RequestContent] = None,
++    data: typing.Optional[RequestData] = None,
++    files: typing.Optional[RequestFiles] = None,
++    json: typing.Optional[typing.Any] = None,
++    headers: typing.Optional[HeaderTypes] = None,
++    cookies: typing.Optional[CookieTypes] = None,
++    auth: typing.Optional[AuthTypes] = None,
++    proxies: typing.Optional[ProxiesTypes] = None,
+     timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+     follow_redirects: bool = False,
+     verify: VerifyTypes = True,
+-    cert: CertTypes = None,
++    cert: typing.Optional[CertTypes] = None,
+     trust_env: bool = True,
+ ) -> typing.Iterator[Response]:
+     """
+@@ -167,13 +167,13 @@ def stream(
+ def get(
+     url: URLTypes,
+     *,
+-    params: QueryParamTypes = None,
+-    headers: HeaderTypes = None,
+-    cookies: CookieTypes = None,
+-    auth: AuthTypes = None,
+-    proxies: ProxiesTypes = None,
++    params: typing.Optional[QueryParamTypes] = None,
++    headers: typing.Optional[HeaderTypes] = None,
++    cookies: typing.Optional[CookieTypes] = None,
++    auth: typing.Optional[AuthTypes] = None,
++    proxies: typing.Optional[ProxiesTypes] = None,
+     follow_redirects: bool = False,
+-    cert: CertTypes = None,
++    cert: typing.Optional[CertTypes] = None,
+     verify: VerifyTypes = True,
+     timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+     trust_env: bool = True,
+@@ -205,13 +205,13 @@ def get(
+ def options(
+     url: URLTypes,
+     *,
+-    params: QueryParamTypes = None,
+-    headers: HeaderTypes = None,
+-    cookies: CookieTypes = None,
+-    auth: AuthTypes = None,
+-    proxies: ProxiesTypes = None,
++    params: typing.Optional[QueryParamTypes] = None,
++    headers: typing.Optional[HeaderTypes] = None,
++    cookies: typing.Optional[CookieTypes] = None,
++    auth: typing.Optional[AuthTypes] = None,
++    proxies: typing.Optional[ProxiesTypes] = None,
+     follow_redirects: bool = False,
+-    cert: CertTypes = None,
++    cert: typing.Optional[CertTypes] = None,
+     verify: VerifyTypes = True,
+     timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+     trust_env: bool = True,
+@@ -243,13 +243,13 @@ def options(
+ def head(
+     url: URLTypes,
+     *,
+-    params: QueryParamTypes = None,
+-    headers: HeaderTypes = None,
+-    cookies: CookieTypes = None,
+-    auth: AuthTypes = None,
+-    proxies: ProxiesTypes = None,
++    params: typing.Optional[QueryParamTypes] = None,
++    headers: typing.Optional[HeaderTypes] = None,
++    cookies: typing.Optional[CookieTypes] = None,
++    auth: typing.Optional[AuthTypes] = None,
++    proxies: typing.Optional[ProxiesTypes] = None,
+     follow_redirects: bool = False,
+-    cert: CertTypes = None,
++    cert: typing.Optional[CertTypes] = None,
+     verify: VerifyTypes = True,
+     timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+     trust_env: bool = True,
+@@ -281,17 +281,17 @@ def head(
+ def post(
+     url: URLTypes,
+     *,
+-    content: RequestContent = None,
+-    data: RequestData = None,
+-    files: RequestFiles = None,
+-    json: typing.Any = None,
+-    params: QueryParamTypes = None,
+-    headers: HeaderTypes = None,
+-    cookies: CookieTypes = None,
+-    auth: AuthTypes = None,
+-    proxies: ProxiesTypes = None,
++    content: typing.Optional[RequestContent] = None,
++    data: typing.Optional[RequestData] = None,
++    files: typing.Optional[RequestFiles] = None,
++    json: typing.Optional[typing.Any] = None,
++    params: typing.Optional[QueryParamTypes] = None,
++    headers: typing.Optional[HeaderTypes] = None,
++    cookies: typing.Optional[CookieTypes] = None,
++    auth: typing.Optional[AuthTypes] = None,
++    proxies: typing.Optional[ProxiesTypes] = None,
+     follow_redirects: bool = False,
+-    cert: CertTypes = None,
++    cert: typing.Optional[CertTypes] = None,
+     verify: VerifyTypes = True,
+     timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+     trust_env: bool = True,
+@@ -324,17 +324,17 @@ def post(
+ def put(
+     url: URLTypes,
+     *,
+-    content: RequestContent = None,
+-    data: RequestData = None,
+-    files: RequestFiles = None,
+-    json: typing.Any = None,
+-    params: QueryParamTypes = None,
+-    headers: HeaderTypes = None,
+-    cookies: CookieTypes = None,
+-    auth: AuthTypes = None,
+-    proxies: ProxiesTypes = None,
++    content: typing.Optional[RequestContent] = None,
++    data: typing.Optional[RequestData] = None,
++    files: typing.Optional[RequestFiles] = None,
++    json: typing.Optional[typing.Any] = None,
++    params: typing.Optional[QueryParamTypes] = None,
++    headers: typing.Optional[HeaderTypes] = None,
++    cookies: typing.Optional[CookieTypes] = None,
++    auth: typing.Optional[AuthTypes] = None,
++    proxies: typing.Optional[ProxiesTypes] = None,
+     follow_redirects: bool = False,
+-    cert: CertTypes = None,
++    cert: typing.Optional[CertTypes] = None,
+     verify: VerifyTypes = True,
+     timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+     trust_env: bool = True,
+@@ -367,17 +367,17 @@ def put(
+ def patch(
+     url: URLTypes,
+     *,
+-    content: RequestContent = None,
+-    data: RequestData = None,
+-    files: RequestFiles = None,
+-    json: typing.Any = None,
+-    params: QueryParamTypes = None,
+-    headers: HeaderTypes = None,
+-    cookies: CookieTypes = None,
+-    auth: AuthTypes = None,
+-    proxies: ProxiesTypes = None,
++    content: typing.Optional[RequestContent] = None,
++    data: typing.Optional[RequestData] = None,
++    files: typing.Optional[RequestFiles] = None,
++    json: typing.Optional[typing.Any] = None,
++    params: typing.Optional[QueryParamTypes] = None,
++    headers: typing.Optional[HeaderTypes] = None,
++    cookies: typing.Optional[CookieTypes] = None,
++    auth: typing.Optional[AuthTypes] = None,
++    proxies: typing.Optional[ProxiesTypes] = None,
+     follow_redirects: bool = False,
+-    cert: CertTypes = None,
++    cert: typing.Optional[CertTypes] = None,
+     verify: VerifyTypes = True,
+     timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+     trust_env: bool = True,
+@@ -410,13 +410,13 @@ def patch(
+ def delete(
+     url: URLTypes,
+     *,
+-    params: QueryParamTypes = None,
+-    headers: HeaderTypes = None,
+-    cookies: CookieTypes = None,
+-    auth: AuthTypes = None,
+-    proxies: ProxiesTypes = None,
++    params: typing.Optional[QueryParamTypes] = None,
++    headers: typing.Optional[HeaderTypes] = None,
++    cookies: typing.Optional[CookieTypes] = None,
++    auth: typing.Optional[AuthTypes] = None,
++    proxies: typing.Optional[ProxiesTypes] = None,
+     follow_redirects: bool = False,
+-    cert: CertTypes = None,
++    cert: typing.Optional[CertTypes] = None,
+     verify: VerifyTypes = True,
+     timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+     trust_env: bool = True,
+--- httpx/_client.py.orig	2022-01-26 14:49:48 UTC
++++ httpx/_client.py
+@@ -155,14 +155,16 @@ class BaseClient:
+     def __init__(
+         self,
+         *,
+-        auth: AuthTypes = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        auth: typing.Optional[AuthTypes] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+         follow_redirects: bool = False,
+         max_redirects: int = DEFAULT_MAX_REDIRECTS,
+-        event_hooks: typing.Mapping[str, typing.List[typing.Callable]] = None,
++        event_hooks: typing.Optional[
++            typing.Mapping[str, typing.List[typing.Callable]]
++        ] = None,
+         base_url: URLTypes = "",
+         trust_env: bool = True,
+     ):
+@@ -315,15 +317,15 @@ class BaseClient:
+         method: str,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Request:
+         """
+         Build and return a request instance.
+@@ -384,7 +386,7 @@ class BaseClient:
+         return merge_url
+ 
+     def _merge_cookies(
+-        self, cookies: CookieTypes = None
++        self, cookies: typing.Optional[CookieTypes] = None
+     ) -> typing.Optional[CookieTypes]:
+         """
+         Merge a cookies argument together with any cookies on the client,
+@@ -397,7 +399,7 @@ class BaseClient:
+         return cookies
+ 
+     def _merge_headers(
+-        self, headers: HeaderTypes = None
++        self, headers: typing.Optional[HeaderTypes] = None
+     ) -> typing.Optional[HeaderTypes]:
+         """
+         Merge a headers argument together with any headers on the client,
+@@ -408,7 +410,7 @@ class BaseClient:
+         return merged_headers
+ 
+     def _merge_queryparams(
+-        self, params: QueryParamTypes = None
++        self, params: typing.Optional[QueryParamTypes] = None
+     ) -> typing.Optional[QueryParamTypes]:
+         """
+         Merge a queryparams argument together with any queryparams on the client,
+@@ -419,7 +421,7 @@ class BaseClient:
+             return merged_queryparams.merge(params)
+         return params
+ 
+-    def _build_auth(self, auth: AuthTypes) -> typing.Optional[Auth]:
++    def _build_auth(self, auth: typing.Optional[AuthTypes]) -> typing.Optional[Auth]:
+         if auth is None:
+             return None
+         elif isinstance(auth, tuple):
+@@ -434,7 +436,7 @@ class BaseClient:
+     def _build_request_auth(
+         self,
+         request: Request,
+-        auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
++        auth: typing.Union[AuthTypes, UseClientDefault, None] = USE_CLIENT_DEFAULT,
+     ) -> Auth:
+         auth = (
+             self._auth if isinstance(auth, UseClientDefault) else self._build_auth(auth)
+@@ -612,24 +614,26 @@ class Client(BaseClient):
+     def __init__(
+         self,
+         *,
+-        auth: AuthTypes = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        auth: typing.Optional[AuthTypes] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         verify: VerifyTypes = True,
+-        cert: CertTypes = None,
++        cert: typing.Optional[CertTypes] = None,
+         http1: bool = True,
+         http2: bool = False,
+-        proxies: ProxiesTypes = None,
+-        mounts: typing.Mapping[str, BaseTransport] = None,
++        proxies: typing.Optional[ProxiesTypes] = None,
++        mounts: typing.Optional[typing.Mapping[str, BaseTransport]] = None,
+         timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+         follow_redirects: bool = False,
+         limits: Limits = DEFAULT_LIMITS,
+         max_redirects: int = DEFAULT_MAX_REDIRECTS,
+-        event_hooks: typing.Mapping[str, typing.List[typing.Callable]] = None,
++        event_hooks: typing.Optional[
++            typing.Mapping[str, typing.List[typing.Callable]]
++        ] = None,
+         base_url: URLTypes = "",
+-        transport: BaseTransport = None,
+-        app: typing.Callable = None,
++        transport: typing.Optional[BaseTransport] = None,
++        app: typing.Optional[typing.Callable] = None,
+         trust_env: bool = True,
+     ):
+         super().__init__(
+@@ -691,12 +695,12 @@ class Client(BaseClient):
+     def _init_transport(
+         self,
+         verify: VerifyTypes = True,
+-        cert: CertTypes = None,
++        cert: typing.Optional[CertTypes] = None,
+         http1: bool = True,
+         http2: bool = False,
+         limits: Limits = DEFAULT_LIMITS,
+-        transport: BaseTransport = None,
+-        app: typing.Callable = None,
++        transport: typing.Optional[BaseTransport] = None,
++        app: typing.Optional[typing.Callable] = None,
+         trust_env: bool = True,
+     ) -> BaseTransport:
+         if transport is not None:
+@@ -718,7 +722,7 @@ class Client(BaseClient):
+         self,
+         proxy: Proxy,
+         verify: VerifyTypes = True,
+-        cert: CertTypes = None,
++        cert: typing.Optional[CertTypes] = None,
+         http1: bool = True,
+         http2: bool = False,
+         limits: Limits = DEFAULT_LIMITS,
+@@ -750,17 +754,17 @@ class Client(BaseClient):
+         method: str,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
+-        auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
++        auth: typing.Union[AuthTypes, UseClientDefault, None] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Build and send a request.
+@@ -807,17 +811,17 @@ class Client(BaseClient):
+         method: str,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
+-        auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
++        auth: typing.Union[AuthTypes, UseClientDefault, None] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> typing.Iterator[Response]:
+         """
+         Alternative to `httpx.request()` that streams the response body
+@@ -858,7 +862,7 @@ class Client(BaseClient):
+         request: Request,
+         *,
+         stream: bool = False,
+-        auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
++        auth: typing.Union[AuthTypes, UseClientDefault, None] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+     ) -> Response:
+         """
+@@ -1009,13 +1013,13 @@ class Client(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `GET` request.
+@@ -1038,13 +1042,13 @@ class Client(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send an `OPTIONS` request.
+@@ -1067,13 +1071,13 @@ class Client(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `HEAD` request.
+@@ -1096,17 +1100,17 @@ class Client(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `POST` request.
+@@ -1133,17 +1137,17 @@ class Client(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `PUT` request.
+@@ -1170,17 +1174,17 @@ class Client(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `PATCH` request.
+@@ -1207,13 +1211,13 @@ class Client(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `DELETE` request.
+@@ -1262,9 +1266,9 @@ class Client(BaseClient):
+ 
+     def __exit__(
+         self,
+-        exc_type: typing.Type[BaseException] = None,
+-        exc_value: BaseException = None,
+-        traceback: TracebackType = None,
++        exc_type: typing.Optional[typing.Type[BaseException]] = None,
++        exc_value: typing.Optional[BaseException] = None,
++        traceback: typing.Optional[TracebackType] = None,
+     ) -> None:
+         self._state = ClientState.CLOSED
+ 
+@@ -1325,24 +1329,26 @@ class AsyncClient(BaseClient):
+     def __init__(
+         self,
+         *,
+-        auth: AuthTypes = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        auth: typing.Optional[AuthTypes] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         verify: VerifyTypes = True,
+-        cert: CertTypes = None,
++        cert: typing.Optional[CertTypes] = None,
+         http1: bool = True,
+         http2: bool = False,
+-        proxies: ProxiesTypes = None,
+-        mounts: typing.Mapping[str, AsyncBaseTransport] = None,
++        proxies: typing.Optional[ProxiesTypes] = None,
++        mounts: typing.Optional[typing.Mapping[str, AsyncBaseTransport]] = None,
+         timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
+         follow_redirects: bool = False,
+         limits: Limits = DEFAULT_LIMITS,
+         max_redirects: int = DEFAULT_MAX_REDIRECTS,
+-        event_hooks: typing.Mapping[str, typing.List[typing.Callable]] = None,
++        event_hooks: typing.Optional[
++            typing.Mapping[str, typing.List[typing.Callable]]
++        ] = None,
+         base_url: URLTypes = "",
+-        transport: AsyncBaseTransport = None,
+-        app: typing.Callable = None,
++        transport: typing.Optional[AsyncBaseTransport] = None,
++        app: typing.Optional[typing.Callable] = None,
+         trust_env: bool = True,
+     ):
+         super().__init__(
+@@ -1404,12 +1410,12 @@ class AsyncClient(BaseClient):
+     def _init_transport(
+         self,
+         verify: VerifyTypes = True,
+-        cert: CertTypes = None,
++        cert: typing.Optional[CertTypes] = None,
+         http1: bool = True,
+         http2: bool = False,
+         limits: Limits = DEFAULT_LIMITS,
+-        transport: AsyncBaseTransport = None,
+-        app: typing.Callable = None,
++        transport: typing.Optional[AsyncBaseTransport] = None,
++        app: typing.Optional[typing.Callable] = None,
+         trust_env: bool = True,
+     ) -> AsyncBaseTransport:
+         if transport is not None:
+@@ -1431,7 +1437,7 @@ class AsyncClient(BaseClient):
+         self,
+         proxy: Proxy,
+         verify: VerifyTypes = True,
+-        cert: CertTypes = None,
++        cert: typing.Optional[CertTypes] = None,
+         http1: bool = True,
+         http2: bool = False,
+         limits: Limits = DEFAULT_LIMITS,
+@@ -1462,17 +1468,17 @@ class AsyncClient(BaseClient):
+         method: str,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
+-        auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
++        auth: typing.Union[AuthTypes, UseClientDefault, None] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Build and send a request.
+@@ -1511,17 +1517,17 @@ class AsyncClient(BaseClient):
+         method: str,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> typing.AsyncIterator[Response]:
+         """
+         Alternative to `httpx.request()` that streams the response body
+@@ -1562,7 +1568,7 @@ class AsyncClient(BaseClient):
+         request: Request,
+         *,
+         stream: bool = False,
+-        auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
++        auth: typing.Union[AuthTypes, UseClientDefault, None] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+     ) -> Response:
+         """
+@@ -1713,13 +1719,13 @@ class AsyncClient(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
+-        auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
++        auth: typing.Union[AuthTypes, UseClientDefault, None] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `GET` request.
+@@ -1742,13 +1748,13 @@ class AsyncClient(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send an `OPTIONS` request.
+@@ -1771,13 +1777,13 @@ class AsyncClient(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `HEAD` request.
+@@ -1800,17 +1806,17 @@ class AsyncClient(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `POST` request.
+@@ -1837,17 +1843,17 @@ class AsyncClient(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `PUT` request.
+@@ -1874,17 +1880,17 @@ class AsyncClient(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        content: RequestContent = None,
+-        data: RequestData = None,
+-        files: RequestFiles = None,
+-        json: typing.Any = None,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        content: typing.Optional[RequestContent] = None,
++        data: typing.Optional[RequestData] = None,
++        files: typing.Optional[RequestFiles] = None,
++        json: typing.Optional[typing.Any] = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `PATCH` request.
+@@ -1911,13 +1917,13 @@ class AsyncClient(BaseClient):
+         self,
+         url: URLTypes,
+         *,
+-        params: QueryParamTypes = None,
+-        headers: HeaderTypes = None,
+-        cookies: CookieTypes = None,
++        params: typing.Optional[QueryParamTypes] = None,
++        headers: typing.Optional[HeaderTypes] = None,
++        cookies: typing.Optional[CookieTypes] = None,
+         auth: typing.Union[AuthTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+         follow_redirects: typing.Union[bool, UseClientDefault] = USE_CLIENT_DEFAULT,
+         timeout: typing.Union[TimeoutTypes, UseClientDefault] = USE_CLIENT_DEFAULT,
+-        extensions: dict = None,
++        extensions: typing.Optional[dict] = None,
+     ) -> Response:
+         """
+         Send a `DELETE` request.
+@@ -1966,9 +1972,9 @@ class AsyncClient(BaseClient):
+ 
+     async def __aexit__(
+         self,
+-        exc_type: typing.Type[BaseException] = None,
+-        exc_value: BaseException = None,
+-        traceback: TracebackType = None,
++        exc_type: typing.Optional[typing.Type[BaseException]] = None,
++        exc_value: typing.Optional[BaseException] = None,
++        traceback: typing.Optional[TracebackType] = None,
+     ) -> None:
+         self._state = ClientState.CLOSED
+ 
+--- httpx/_config.py.orig	2022-01-26 14:49:48 UTC
++++ httpx/_config.py
+@@ -41,7 +41,7 @@ UNSET = UnsetType()
+ 
+ 
+ def create_ssl_context(
+-    cert: CertTypes = None,
++    cert: typing.Optional[CertTypes] = None,
+     verify: VerifyTypes = True,
+     trust_env: bool = True,
+     http2: bool = False,
+@@ -61,7 +61,7 @@ class SSLConfig:
+     def __init__(
+         self,
+         *,
+-        cert: CertTypes = None,
++        cert: typing.Optional[CertTypes] = None,
+         verify: VerifyTypes = True,
+         trust_env: bool = True,
+         http2: bool = False,
+@@ -289,8 +289,8 @@ class Limits:
+     def __init__(
+         self,
+         *,
+-        max_connections: int = None,
+-        max_keepalive_connections: int = None,
++        max_connections: typing.Optional[int] = None,
++        max_keepalive_connections: typing.Optional[int] = None,
+         keepalive_expiry: typing.Optional[float] = 5.0,
+     ):
+         self.max_connections = max_connections
+@@ -319,8 +319,8 @@ class Proxy:
+         self,
+         url: URLTypes,
+         *,
+-        auth: typing.Tuple[str, str] = None,
+-        headers: HeaderTypes = None,
++        auth: typing.Optional[typing.Tuple[str, str]] = None,
*** 498 LINES SKIPPED ***