Accepts a true or false value
| 281 | |
| 282 | |
| 283 | class SmartBoolean(type(boolean)): |
| 284 | """Accepts a true or false value""" |
| 285 | |
| 286 | __slots__ = () |
| 287 | |
| 288 | def __call__(self, value): |
| 289 | if type(value) == bool or value in (None, 1, 0): |
| 290 | return bool(value) |
| 291 | |
| 292 | value = value.lower() |
| 293 | if value in ("true", "t", "1"): |
| 294 | return True |
| 295 | elif value in ("false", "f", "0", ""): |
| 296 | return False |
| 297 | |
| 298 | raise KeyError("Invalid value passed in for true/false field") |
| 299 | |
| 300 | |
| 301 | class InlineDictionary(Type, metaclass=SubTyped): |