File: urlopen.py

package info (click to toggle)
rdflib 7.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 77,852 kB
  • sloc: python: 59,555; sh: 153; makefile: 83; ruby: 74; xml: 45
file content (16 lines) | stat: -rw-r--r-- 530 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from __future__ import annotations

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]