Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Exclude the
object
possibility from the ClientSession.timeout
type
This is a follow-up PR to #6917, which fixes the overly inclusive typing of `ClientSession.timeout` attribute, which can never actually end up as an `object` instance. This leftover probably exists from the time when there was the `_sentinel` value being assigned to the attribute (see "3.8 branch `self._timeout` assignment" from the linked issue), hence why it ended up this way. For untyped code, there's absolutely no change — the `self._timeout` attribute was never actually assigned the sentinel value to. Most of the explanation already exists in #6917, here's the test code snippet from there again: ```py import asyncio import aiohttp async def main: session = aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=10)) # read back the total time attribute total_time = session.timeout.total # "object" type of "Union[object, ClientTimeout]" has no attribute "total" print(total_time) asyncio.run(main()) ``` For typed code, the current solution would be to `assert isinstance(session.timeout, aiohttp.ClientTimeout)` everywhere the attribute is being accessed. This PR removes this "unnecessary necessity". Co-authored-by: Sviatoslav Sydorenko <[email protected]> Fixes #6917 PR #6923
- Loading branch information