Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

# Copyright: 2017, Ansible Project 

# Simplified BSD License (see licenses/simplified_bsd.txt or https://opensource.org/licenses/BSD-2-Clause ) 

 

from ansible.module_utils.six import binary_type, text_type 

from ansible.module_utils._text import to_text 

 

 

BOOLEANS_TRUE = frozenset(('y', 'yes', 'on', '1', 'true', 't', 1, 1.0, True)) 

BOOLEANS_FALSE = frozenset(('n', 'no', 'off', '0', 'false', 'f', 0, 0.0, False)) 

BOOLEANS = BOOLEANS_TRUE.union(BOOLEANS_FALSE) 

 

 

def boolean(value, strict=True): 

if isinstance(value, bool): 

return value 

 

normalized_value = value 

if isinstance(value, (text_type, binary_type)): 

normalized_value = to_text(value, errors='surrogate_or_strict').lower().strip() 

 

if normalized_value in BOOLEANS_TRUE: 

return True 

23 ↛ 26line 23 didn't jump to line 26, because the condition on line 23 was never false elif normalized_value in BOOLEANS_FALSE or not strict: 

return False 

 

raise TypeError("The value '%s' is not a valid boolean. Valid booleans include: %s" % (to_text(value), ', '.join(repr(i) for i in BOOLEANS)))