diff --git a/redis/client.py b/redis/client.py index b7a1f88d92..078db6d9e3 100755 --- a/redis/client.py +++ b/redis/client.py @@ -1,10 +1,11 @@ import copy import re +import ssl import threading import time import warnings from itertools import chain -from typing import Any, Callable, Dict, List, Optional, Type, Union +from typing import Any, Callable, Dict, List, Mapping, Optional, Type, Union from redis._cache import ( DEFAULT_ALLOW_LIST, @@ -173,47 +174,47 @@ def from_pool( def __init__( self, - host="localhost", - port=6379, - db=0, - password=None, - socket_timeout=None, - socket_connect_timeout=None, - socket_keepalive=None, - socket_keepalive_options=None, - connection_pool=None, - unix_socket_path=None, - encoding="utf-8", - encoding_errors="strict", - charset=None, - errors=None, - decode_responses=False, - retry_on_timeout=False, - retry_on_error=None, - ssl=False, - ssl_keyfile=None, - ssl_certfile=None, - ssl_cert_reqs="required", - ssl_ca_certs=None, - ssl_ca_path=None, - ssl_ca_data=None, - ssl_check_hostname=False, - ssl_password=None, - ssl_validate_ocsp=False, - ssl_validate_ocsp_stapled=False, + host: str = "localhost", + port: int = 6379, + db: int = 0, + password: Optional[str] = None, + socket_timeout: Optional[float] = None, + socket_connect_timeout: Optional[float] = None, + socket_keepalive: Optional[bool] = None, + socket_keepalive_options: Optional[Mapping[int, Union[int, bytes]]] = None, + connection_pool: Optional[ConnectionPool] = None, + unix_socket_path: Optional[str] = None, + encoding: str = "utf-8", + encoding_errors: str = "strict", + charset: Optional[str] = None, + errors: Optional[str] = None, + decode_responses: bool = False, + retry_on_timeout: bool = False, + retry_on_error: Optional[list] = None, + ssl: bool = False, + ssl_keyfile: Optional[str] = None, + ssl_certfile: Optional[str] = None, + ssl_cert_reqs: str = "required", + ssl_ca_certs: Optional[str] = None, + ssl_ca_path: Optional[str] = None, + ssl_ca_data: Optional[str] = None, + ssl_check_hostname: bool = False, + ssl_password: Optional[str] = None, + ssl_validate_ocsp: bool = False, + ssl_validate_ocsp_stapled: bool = False, ssl_ocsp_context=None, - ssl_ocsp_expected_cert=None, - ssl_min_version=None, - ssl_ciphers=None, - max_connections=None, - single_connection_client=False, - health_check_interval=0, - client_name=None, - lib_name="redis-py", - lib_version=get_lib_version(), - username=None, - retry=None, - redis_connect_func=None, + ssl_ocsp_expected_cert: Optional[str] = None, + ssl_min_version: Optional[ssl.TLSVersion] = None, + ssl_ciphers: Optional[str] = None, + max_connections: Optional[int] = None, + single_connection_client: bool = False, + health_check_interval: int = 0, + client_name: Optional[str] = None, + lib_name: Optional[str] = "redis-py", + lib_version: Optional[str] = get_lib_version(), + username: Optional[str] = None, + retry: Union[Any, None] = None, + redis_connect_func: Optional[Callable[[], None]] = None, credential_provider: Optional[CredentialProvider] = None, protocol: Optional[int] = 2, cache_enabled: bool = False,