import os import abc from .py27compat import add_metaclass __metaclass__ = type @add_metaclass(abc.ABCMeta) class Credential: """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 | 277 B | 0644 |
|
__main__.py | File | 70 B | 0644 |
|
backend.py | File | 5.93 KB | 0644 |
|
cli.py | File | 4.13 KB | 0644 |
|
core.py | File | 4.96 KB | 0644 |
|
credentials.py | File | 1.34 KB | 0644 |
|
devpi_client.py | File | 199 B | 0644 |
|
errors.py | File | 1.44 KB | 0644 |
|
http.py | File | 1.24 KB | 0644 |
|
py27compat.py | File | 1.06 KB | 0644 |
|
py32compat.py | File | 107 B | 0644 |
|
py33compat.py | File | 660 B | 0644 |
|