blob: fb6597077105a15dc11f266673604a6d7a6f78bd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import urllib.request
from contextlib import contextmanager
from typing import Generator, Optional
from urllib.request import OpenerDirector, install_opener
@contextmanager
def context_urlopener(opener: OpenerDirector) -> Generator[OpenerDirector, None, None]:
old_opener: Optional[OpenerDirector] = urllib.request._opener # type: ignore[attr-defined]
try:
install_opener(opener)
yield opener
finally:
install_opener(old_opener) # type: ignore[arg-type]
|