import os from .confirmation import TRUTHY def env(key, default=None, parser=None): value = os.environ.get(key) if value is None: return default if parser is None: if default is None: return value else: parser = type(default) if parser is bool: return truthy(value, default) return parser(value) def truthy(value, default=False): return TRUTHY.get(value, default) def password_validators(*validators): return list(_parse_password_validators(validators)) def _parse_password_validators(validators): for validator in validators: if isinstance(validator, (tuple, list)): validator, options = validator else: validator, options = validator, {} if '.' not in validator: validator = 'django.contrib.auth.password_validation.%s' % validator yield dict(NAME=validator, OPTIONS=options)