foerderbarometer/input/utils/settings.py

43 lines
949 B
Python
Raw Normal View History

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)