33import enum
44import inspect
55import socket
6- import ssl
76import sys
87import warnings
98import weakref
2726)
2827from urllib .parse import ParseResult , parse_qs , unquote , urlparse
2928
29+ from ..utils import SSL_AVAILABLE
30+
31+ if SSL_AVAILABLE :
32+ import ssl
33+ from ssl import SSLContext , TLSVersion
34+ else :
35+ ssl = None
36+ TLSVersion = None
37+ SSLContext = None
38+
3039from ..auth .token import TokenInterface
3140from ..event import AsyncAfterConnectionReleasedEvent , EventDispatcher
3241from ..utils import deprecated_args , format_error_message
@@ -763,10 +772,13 @@ def __init__(
763772 ssl_ca_certs : Optional [str ] = None ,
764773 ssl_ca_data : Optional [str ] = None ,
765774 ssl_check_hostname : bool = False ,
766- ssl_min_version : Optional [ssl . TLSVersion ] = None ,
775+ ssl_min_version : Optional [TLSVersion ] = None ,
767776 ssl_ciphers : Optional [str ] = None ,
768777 ** kwargs ,
769778 ):
779+ if not SSL_AVAILABLE :
780+ raise RedisError ("Python wasn't built with SSL support" )
781+
770782 self .ssl_context : RedisSSLContext = RedisSSLContext (
771783 keyfile = ssl_keyfile ,
772784 certfile = ssl_certfile ,
@@ -834,9 +846,12 @@ def __init__(
834846 ca_certs : Optional [str ] = None ,
835847 ca_data : Optional [str ] = None ,
836848 check_hostname : bool = False ,
837- min_version : Optional [ssl . TLSVersion ] = None ,
849+ min_version : Optional [TLSVersion ] = None ,
838850 ciphers : Optional [str ] = None ,
839851 ):
852+ if not SSL_AVAILABLE :
853+ raise RedisError ("Python wasn't built with SSL support" )
854+
840855 self .keyfile = keyfile
841856 self .certfile = certfile
842857 if cert_reqs is None :
@@ -857,9 +872,9 @@ def __init__(
857872 self .check_hostname = check_hostname
858873 self .min_version = min_version
859874 self .ciphers = ciphers
860- self .context : Optional [ssl . SSLContext ] = None
875+ self .context : Optional [SSLContext ] = None
861876
862- def get (self ) -> ssl . SSLContext :
877+ def get (self ) -> SSLContext :
863878 if not self .context :
864879 context = ssl .create_default_context ()
865880 context .check_hostname = self .check_hostname
0 commit comments