git: 5b718ffa36da - main - www/py-httpx: Allow build with py-httpcore 0.15.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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 ***