- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
def booleanize(value):
"""Return value as a boolean."""
true_values = ("yes", "true", "1")
false_values = ("no", "false", "0")
if isinstance(value, bool):
return value
if value.lower() in true_values:
return True
elif value.lower() in false_values:
return False
anonimb84a2f6fd141 29.08.2014 23:27 # +2
Dummy00001 30.08.2014 13:56 # 0
bormand 30.08.2014 14:32 # 0
Троичная логика, как в SQL. Не True и не False - значит вернем None. Хотя не помешало бы.
Dummy00001 30.08.2014 16:18 # +2
на самом деле с точки зрения парсинга ввода пользователя, код весьма неплох.
по моему опыту, правильнее проверять на истину (case insensitive yes, yeah, ja, bitte, да и не ноль) а все остальное считать ложным. но красивее бы от этого код не стал.
bormand 31.08.2014 07:01 # +1
Парсинг конфига, имхо, совсем не то место, где нужна отказоустойчивость... И обо всех ошибках в конфиге лучше сообщать сразу же - админ спасибо скажет.