diff --git a/patroni/ctl.py b/patroni/ctl.py index 312c0cec..b1d63d2b 100644 --- a/patroni/ctl.py +++ b/patroni/ctl.py @@ -36,7 +36,7 @@ from collections import defaultdict from contextlib import contextmanager from prettytable import ALL, FRAME, PrettyTable from urllib.parse import urlparse -from typing import Any, Dict, Generator, Iterator, List, Optional, Union, Tuple, TYPE_CHECKING +from typing import Any, Dict, Iterator, List, Optional, Union, Tuple, TYPE_CHECKING if TYPE_CHECKING: # pragma: no cover from psycopg import Cursor from psycopg2 import cursor @@ -1816,7 +1816,7 @@ def resume(obj: Dict[str, Any], cluster_name: str, group: Optional[int], wait: b @contextmanager -def temporary_file(contents: bytes, suffix: str = '', prefix: str = 'tmp') -> Generator[str, None, None]: +def temporary_file(contents: bytes, suffix: str = '', prefix: str = 'tmp') -> Iterator[str]: """Create a temporary file with specified contents that persists for the context. :param contents: binary string that will be written to the file. diff --git a/patroni/postgresql/__init__.py b/patroni/postgresql/__init__.py index 04fab0a2..e9844710 100644 --- a/patroni/postgresql/__init__.py +++ b/patroni/postgresql/__init__.py @@ -12,7 +12,7 @@ from datetime import datetime from dateutil import tz from psutil import TimeoutExpired from threading import current_thread, Lock -from typing import Any, Callable, Dict, Generator, List, Optional, Union, Tuple, TYPE_CHECKING +from typing import Any, Callable, Dict, Iterator, List, Optional, Union, Tuple, TYPE_CHECKING from .bootstrap import Bootstrap from .callback_executor import CallbackAction, CallbackExecutor @@ -999,7 +999,7 @@ class Postgresql(object): @contextmanager def get_replication_connection_cursor(self, host: Optional[str] = None, port: int = 5432, - **kwargs: Any) -> Generator[Union['cursor', 'Cursor[Any]'], None, None]: + **kwargs: Any) -> Iterator[Union['cursor', 'Cursor[Any]']]: conn_kwargs = self.config.replication.copy() conn_kwargs.update(host=host, port=int(port) if port else None, user=conn_kwargs.pop('username'), connect_timeout=3, replication=1, options='-c statement_timeout=2000') diff --git a/patroni/postgresql/connection.py b/patroni/postgresql/connection.py index 6a556983..277a4889 100644 --- a/patroni/postgresql/connection.py +++ b/patroni/postgresql/connection.py @@ -2,7 +2,7 @@ import logging from contextlib import contextmanager from threading import Lock -from typing import Any, Dict, Generator, Union, TYPE_CHECKING +from typing import Any, Dict, Iterator, Union, TYPE_CHECKING if TYPE_CHECKING: # pragma: no cover from psycopg import Connection as Connection3, Cursor from psycopg2 import connection, cursor @@ -44,7 +44,7 @@ class Connection(object): @contextmanager -def get_connection_cursor(**kwargs: Any) -> Generator[Union['cursor', 'Cursor[Any]'], None, None]: +def get_connection_cursor(**kwargs: Any) -> Iterator[Union['cursor', 'Cursor[Any]']]: conn = psycopg.connect(**kwargs) with conn.cursor() as cur: yield cur diff --git a/patroni/postgresql/slots.py b/patroni/postgresql/slots.py index fde81a7a..0d2b1ed8 100644 --- a/patroni/postgresql/slots.py +++ b/patroni/postgresql/slots.py @@ -5,7 +5,7 @@ import shutil from collections import defaultdict from contextlib import contextmanager from threading import Condition, Thread -from typing import Any, Dict, Generator, List, Optional, Union, Tuple, TYPE_CHECKING +from typing import Any, Dict, Iterator, List, Optional, Union, Tuple, TYPE_CHECKING from .connection import get_connection_cursor from .misc import format_lsn, fsync_dir @@ -253,7 +253,7 @@ class SlotsHandler(object): self._schedule_load_slots = True @contextmanager - def get_local_connection_cursor(self, **kwargs: Any) -> Generator[Union['cursor', 'Cursor[Any]'], None, None]: + def get_local_connection_cursor(self, **kwargs: Any) -> Iterator[Union['cursor', 'Cursor[Any]']]: conn_kwargs = self._postgresql.config.local_connect_kwargs conn_kwargs.update(kwargs) with get_connection_cursor(**conn_kwargs) as cur: @@ -342,7 +342,7 @@ class SlotsHandler(object): return ret @contextmanager - def _get_leader_connection_cursor(self, leader: Leader) -> Generator[Union['cursor', 'Cursor[Any]'], None, None]: + def _get_leader_connection_cursor(self, leader: Leader) -> Iterator[Union['cursor', 'Cursor[Any]']]: conn_kwargs = leader.conn_kwargs(self._postgresql.config.rewind_credentials) conn_kwargs['dbname'] = self._postgresql.database with get_connection_cursor(connect_timeout=3, options="-c statement_timeout=2000", **conn_kwargs) as cur: