import os import abc from .py27compat import add_metaclass @add_metaclass(abc.ABCMeta) class Credential(object): """Abstract class to manage credentials """ @abc.abstractproperty def username(self): return None @abc.abstractproperty def password(self): return None class SimpleCredential(Credential): """Simple credentials implementation """ def __init__(self, username, password): self._username = username self._password = password @property def username(self): return self._username @property def password(self): return self._password class EnvironCredential(Credential): """Source credentials from environment variables. Actual sourcing is deferred until requested. """ def __init__(self, user_env_var, pwd_env_var): self.user_env_var = user_env_var self.pwd_env_var = pwd_env_var def _get_env(self, env_var): """Helper to read an environment variable """ value = os.environ.get(env_var) if not value: raise ValueError('Missing environment variable:%s' % env_var) return value @property def username(self): return self._get_env(self.user_env_var) @property def password(self): return self._get_env(self.pwd_env_var)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
backends | Folder | 0755 |
|
|
tests | Folder | 0755 |
|
|
util | Folder | 0755 |
|
|
__init__.py | File | 489 B | 0644 |
|
__main__.py | File | 70 B | 0644 |
|
backend.py | File | 5.29 KB | 0644 |
|
cli.py | File | 3.56 KB | 0644 |
|
core.py | File | 3.9 KB | 0644 |
|
credentials.py | File | 1.33 KB | 0644 |
|
devpi_client.py | File | 199 B | 0644 |
|
errors.py | File | 1.25 KB | 0644 |
|
getpassbackend.py | File | 312 B | 0644 |
|
http.py | File | 1.23 KB | 0644 |
|
py27compat.py | File | 1.04 KB | 0644 |
|
py33compat.py | File | 660 B | 0644 |
|