|
8 | 8 | from itertools import chain
|
9 | 9 | from queue import Empty, Full, LifoQueue
|
10 | 10 | from time import time
|
| 11 | +from typing import Optional |
11 | 12 | from urllib.parse import parse_qs, unquote, urlparse
|
12 | 13 |
|
13 | 14 | from redis.backoff import NoBackoff
|
@@ -526,8 +527,6 @@ def __init__(
|
526 | 527 | )
|
527 | 528 |
|
528 | 529 | self.credential_provider = credential_provider
|
529 |
| - self.username = username |
530 |
| - self.password = password |
531 | 530 | if username or password:
|
532 | 531 | # Keep backward compatibility by creating a static credential provider
|
533 | 532 | # for the passed username and password
|
@@ -564,6 +563,38 @@ def __init__(
|
564 | 563 | self._connect_callbacks = []
|
565 | 564 | self._buffer_cutoff = 6000
|
566 | 565 |
|
| 566 | + @property |
| 567 | + def password(self) -> Optional[str]: |
| 568 | + if self.credential_provider is not None: |
| 569 | + return self.credential_provider.password |
| 570 | + else: |
| 571 | + return None |
| 572 | + |
| 573 | + @password.setter |
| 574 | + def password(self, value: Optional[str]): |
| 575 | + if value is None: |
| 576 | + # Delete the credential provider |
| 577 | + self.credential_provider = None |
| 578 | + return |
| 579 | + if self.credential_provider is not None: |
| 580 | + self.credential_provider.password = value |
| 581 | + else: |
| 582 | + self.credential_provider = StaticCredentialProvider(password=value) |
| 583 | + |
| 584 | + @property |
| 585 | + def username(self) -> Optional[str]: |
| 586 | + if self.credential_provider is not None: |
| 587 | + return self.credential_provider.username |
| 588 | + else: |
| 589 | + return None |
| 590 | + |
| 591 | + @username.setter |
| 592 | + def username(self, value: Optional[str]): |
| 593 | + if self.credential_provider is not None: |
| 594 | + self.credential_provider.username = value |
| 595 | + else: |
| 596 | + self.credential_provider = StaticCredentialProvider(username=value) |
| 597 | + |
567 | 598 | def __repr__(self):
|
568 | 599 | repr_args = ",".join([f"{k}={v}" for k, v in self.repr_pieces()])
|
569 | 600 | return f"{self.__class__.__name__}<{repr_args}>"
|
@@ -1087,8 +1118,6 @@ def __init__(
|
1087 | 1118 | "2. 'credential_provider'"
|
1088 | 1119 | )
|
1089 | 1120 | self.credential_provider = credential_provider
|
1090 |
| - self.username = username |
1091 |
| - self.password = password |
1092 | 1121 | if username or password:
|
1093 | 1122 | # Keep backward compatibility by creating a static credential provider
|
1094 | 1123 | # for the passed username and password
|
@@ -1121,6 +1150,38 @@ def __init__(
|
1121 | 1150 | self._connect_callbacks = []
|
1122 | 1151 | self._buffer_cutoff = 6000
|
1123 | 1152 |
|
| 1153 | + @property |
| 1154 | + def password(self) -> Optional[str]: |
| 1155 | + if self.credential_provider is not None: |
| 1156 | + return self.credential_provider.password |
| 1157 | + else: |
| 1158 | + return None |
| 1159 | + |
| 1160 | + @password.setter |
| 1161 | + def password(self, value: Optional[str]): |
| 1162 | + if value is None: |
| 1163 | + # Delete the credential provider |
| 1164 | + self.credential_provider = None |
| 1165 | + return |
| 1166 | + if self.credential_provider is not None: |
| 1167 | + self.credential_provider.password = value |
| 1168 | + else: |
| 1169 | + self.credential_provider = StaticCredentialProvider(password=value) |
| 1170 | + |
| 1171 | + @property |
| 1172 | + def username(self) -> Optional[str]: |
| 1173 | + if self.credential_provider is not None: |
| 1174 | + return self.credential_provider.username |
| 1175 | + else: |
| 1176 | + return None |
| 1177 | + |
| 1178 | + @username.setter |
| 1179 | + def username(self, value: Optional[str]): |
| 1180 | + if self.credential_provider is not None: |
| 1181 | + self.credential_provider.username = value |
| 1182 | + else: |
| 1183 | + self.credential_provider = StaticCredentialProvider(username=value) |
| 1184 | + |
1124 | 1185 | def repr_pieces(self):
|
1125 | 1186 | pieces = [("path", self.path), ("db", self.db)]
|
1126 | 1187 | if self.client_name:
|
|
0 commit comments