Module brevettiai.io.credentials
Expand source code
import logging
from abc import ABC, abstractmethod
from typing import List
from dataclasses import dataclass, field
log = logging.getLogger(__name__)
class LoginError(Exception):
pass
class Credentials(ABC):
"""
Abstract class for credential managers
"""
@abstractmethod
def get_credentials(self, resource_id, resource_type="dataset", mode="r"):
pass
@abstractmethod
def set_credentials(self, type, user, secret, **kwargs):
pass
@dataclass
class CredentialsChain(Credentials):
"""
Credentials chain grouping a number of credentials into one trying all of them in order
"""
chain: List[Credentials] = field(default_factory=list)
def get_credentials(self, resource_id, resource_type="dataset", mode="r"):
if not self.chain:
raise LoginError("Credentials chain empty")
exceptions = []
for credentials in self.chain:
try:
return credentials.get_credentials(resource_id, resource_type, mode)
except LoginError as ex:
exceptions.append(ex)
raise LoginError(f"Error logging in with credentials chain", exceptions)
def set_credentials(self, type, user, secret, **kwargs):
for cred in self.chain:
cred.set_credentials(type, user, secret, **kwargs)
Classes
class Credentials
-
Abstract class for credential managers
Expand source code
class Credentials(ABC): """ Abstract class for credential managers """ @abstractmethod def get_credentials(self, resource_id, resource_type="dataset", mode="r"): pass @abstractmethod def set_credentials(self, type, user, secret, **kwargs): pass
Ancestors
- abc.ABC
Subclasses
- AWSConfigCredentials
- SagemakerCredentials
- CredentialsChain
- JobCredentials
- PlatformDatasetCredentials
Methods
def get_credentials(self, resource_id, resource_type='dataset', mode='r')
-
Expand source code
@abstractmethod def get_credentials(self, resource_id, resource_type="dataset", mode="r"): pass
def set_credentials(self, type, user, secret, **kwargs)
-
Expand source code
@abstractmethod def set_credentials(self, type, user, secret, **kwargs): pass
class CredentialsChain (chain: List[Credentials] = <factory>)
-
Credentials chain grouping a number of credentials into one trying all of them in order
Expand source code
class CredentialsChain(Credentials): """ Credentials chain grouping a number of credentials into one trying all of them in order """ chain: List[Credentials] = field(default_factory=list) def get_credentials(self, resource_id, resource_type="dataset", mode="r"): if not self.chain: raise LoginError("Credentials chain empty") exceptions = [] for credentials in self.chain: try: return credentials.get_credentials(resource_id, resource_type, mode) except LoginError as ex: exceptions.append(ex) raise LoginError(f"Error logging in with credentials chain", exceptions) def set_credentials(self, type, user, secret, **kwargs): for cred in self.chain: cred.set_credentials(type, user, secret, **kwargs)
Ancestors
- Credentials
- abc.ABC
Subclasses
Class variables
var chain : List[Credentials]
Methods
def get_credentials(self, resource_id, resource_type='dataset', mode='r')
-
Expand source code
def get_credentials(self, resource_id, resource_type="dataset", mode="r"): if not self.chain: raise LoginError("Credentials chain empty") exceptions = [] for credentials in self.chain: try: return credentials.get_credentials(resource_id, resource_type, mode) except LoginError as ex: exceptions.append(ex) raise LoginError(f"Error logging in with credentials chain", exceptions)
def set_credentials(self, type, user, secret, **kwargs)
-
Expand source code
def set_credentials(self, type, user, secret, **kwargs): for cred in self.chain: cred.set_credentials(type, user, secret, **kwargs)
class LoginError (*args, **kwargs)
-
Common base class for all non-exit exceptions.
Expand source code
class LoginError(Exception): pass
Ancestors
- builtins.Exception
- builtins.BaseException