图片解析应用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
738 B

  1. from typing import Optional, Tuple, Union
  2. class CredentialProvider:
  3. """
  4. Credentials Provider.
  5. """
  6. def get_credentials(self) -> Union[Tuple[str], Tuple[str, str]]:
  7. raise NotImplementedError("get_credentials must be implemented")
  8. class UsernamePasswordCredentialProvider(CredentialProvider):
  9. """
  10. Simple implementation of CredentialProvider that just wraps static
  11. username and password.
  12. """
  13. def __init__(self, username: Optional[str] = None, password: Optional[str] = None):
  14. self.username = username or ""
  15. self.password = password or ""
  16. def get_credentials(self):
  17. if self.username:
  18. return self.username, self.password
  19. return (self.password,)