The http_client paragraph of ClientApplication.__init__ (msal/application.py:496-502 on dev) explains retries but says nothing about timeout, verify and proxies. Those three parameters each carry "This does not apply if you have chosen to pass your own Http client" (lines 508, 513, 518), so the information exists, but only if you read those three entries; someone reading the http_client docs to decide whether to pass one does not see it.
The behaviour itself is as documented: timeout is applied with functools.partial on the session MSAL builds (application.py:702-713) and a custom client is wrapped in ThrottledHttpClient untouched. Checked on 1.38.0 with a recording fake client: its request receives no timeout kwarg, while the default session's request is a partial with timeout=5.
Proposal: one sentence in the http_client paragraph pointing at the three parameters. PR follows.
The
http_clientparagraph ofClientApplication.__init__(msal/application.py:496-502 ondev) explains retries but says nothing abouttimeout,verifyandproxies. Those three parameters each carry "This does not apply if you have chosen to pass your own Http client" (lines 508, 513, 518), so the information exists, but only if you read those three entries; someone reading thehttp_clientdocs to decide whether to pass one does not see it.The behaviour itself is as documented:
timeoutis applied withfunctools.partialon the session MSAL builds (application.py:702-713) and a custom client is wrapped inThrottledHttpClientuntouched. Checked on 1.38.0 with a recording fake client: itsrequestreceives notimeoutkwarg, while the default session'srequestis a partial withtimeout=5.Proposal: one sentence in the
http_clientparagraph pointing at the three parameters. PR follows.