From nobody Sun May 22 05:16:08 2022 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 2824F1AEBD35; Sun, 22 May 2022 05:16:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4L5TFj0LBfz3QNc; Sun, 22 May 2022 05:16:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1653196569; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y/dyJ6Ma8tuBzZynskEUXU6oT00sk7ViF0HTZMqq7q8=; b=oL/JwmjNrvJhxiSK5+R9cuSezYbJ/HNIfiB1uImf9fIKyqUE53/VkK0Cpt7f1J9CfhEXk5 n2KfDUliAh5Iz5ZlHBIBK6IlXbAZnIWZHbtlgreCTNXUk4qKD2nFR533VSkUD/sytw4jX9 kToeVdQockNtWAkvzxcshH23Zv6PUfcOHRTM79zKK/sT8JrNWRV5IKwKI1oPqLv3XtJi57 Oss+GW5huVn295tJm7O7aRa5UB2brpVF4WG5lS3zn/LsS8cAF2mj7jvNQilw/sw6zSYYTl P+RUbmiCEk+pigHu2sEX7QVUVB+spsymH1yGCJ5VY1dyUlP2z4lTQHo7TuHS3w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AD12B15520; Sun, 22 May 2022 05:16:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 24M5G8m4062940; Sun, 22 May 2022 05:16:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 24M5G8b6062939; Sun, 22 May 2022 05:16:08 GMT (envelope-from git) Date: Sun, 22 May 2022 05:16:08 GMT Message-Id: <202205220516.24M5G8b6062939@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Po-Chuan Hsieh Subject: git: 5b718ffa36da - main - www/py-httpx: Allow build with py-httpcore 0.15.0 List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sunpoet X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5b718ffa36da92349f14039f9af5a4c7aa9b7d8e Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1653196569; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y/dyJ6Ma8tuBzZynskEUXU6oT00sk7ViF0HTZMqq7q8=; b=pWwKwv9fYuG51r4MtmSNekbNhW2B+2bGFcEGAotAiwSoEkW6rrCCPs6G2DwQh6J7ATWwRg m4Nkdvu+eNXLmkVKU/tCe3vHtIomiETkxnieXAwQfigMlPjiEuX+uKoZW3CZdZNWRGIBRi HdZ/04CA6qEdANgAIeY69j8XxZfq4aRXnmwov85RQtmNWQ4yBa9dXYP75L9frD8BbFj1PG tnh63GMe3KOCqqh2UgryXvaEPchfaTvm9hszlZgb4GkKmI3Px/dn7eoq68G3wTGQvMMy5s Th/TKI2O4vhzkKrBN/tdAeThs/1/szvxAXoAbK39IjRfxO6yc0XpYXJMTNKJ6g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1653196569; a=rsa-sha256; cv=none; b=QO8tr19ea/QpnzJCymjHt6FZbPHNl7wJUz8RRnZDKmoaWEj9GlqFpTvkVPeeAVdMH0yxC7 RwtKgz32gaqG4+nDoGLXOlWQwwz+dxkOAwRkCOApFtfSgQZjmFAvjb90YQcce0w9bKX9Fp N/t/xcKOH+My2irYkm6G7kUd/pad9XMLK4UfmWxAVTISG9KqHdwySTL3LrV2yKh3NbWwX/ XnW4k1S9BeXcx+v2/0Sf2srcgspEsIMgR0KkvGcaIEPypxGbShKXL0xz+19ul6oRl8poAT g4J5GxGOsRQQTeVvKqLutm57YmwzE67KSsjo0yof1yX/kqqRHLEr/5ReuQd9Qg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by sunpoet: URL: https://cgit.FreeBSD.org/ports/commit/?id=5b718ffa36da92349f14039f9af5a4c7aa9b7d8e commit 5b718ffa36da92349f14039f9af5a4c7aa9b7d8e Author: Po-Chuan Hsieh AuthorDate: 2022-05-22 05:08:55 +0000 Commit: Po-Chuan Hsieh 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 ***