1
2def bool_list(list obj):
3    """
4    >>> bool_list( [] )
5    False
6    >>> bool_list( [1] )
7    True
8    >>> bool_list(None)
9    False
10    """
11    return bool(obj)
12
13
14def if_list(list obj):
15    """
16    >>> if_list( [] )
17    False
18    >>> if_list( [1] )
19    True
20    >>> if_list(None)
21    False
22    """
23    if obj:
24        return True
25    else:
26        return False
27
28
29def if_list_nogil(list obj):
30    """
31    >>> if_list_nogil( [] )
32    False
33    >>> if_list_nogil( [1] )
34    True
35    >>> if_list_nogil(None)
36    False
37    """
38    cdef bint result
39    with nogil:
40        if obj:
41            result = True
42        else:
43            result = False
44    return result
45
46
47def if_list_literal(t):
48    """
49    >>> if_list_literal(True)
50    True
51    >>> if_list_literal(False)
52    False
53    """
54    if t:
55        if [1,2,3]:
56            return True
57        else:
58            return False
59    else:
60        if []:
61            return True
62        else:
63            return False
64
65
66def bool_tuple(tuple obj):
67    """
68    >>> bool_tuple( () )
69    False
70    >>> bool_tuple( (1,) )
71    True
72    >>> bool_tuple(None)
73    False
74    """
75    return bool(obj)
76
77
78def if_tuple(tuple obj):
79    """
80    >>> if_tuple( () )
81    False
82    >>> if_tuple( (1,) )
83    True
84    >>> if_tuple(None)
85    False
86    """
87    if obj:
88        return True
89    else:
90        return False
91
92
93def if_tuple_literal(t):
94    """
95    >>> if_tuple_literal(True)
96    True
97    >>> if_tuple_literal(False)
98    False
99    """
100    if t:
101        if (1,2,3):
102            return True
103        else:
104            return False
105    else:
106        if ():
107            return True
108        else:
109            return False
110
111
112def bool_set(set obj):
113    """
114    >>> bool_set( set() )
115    False
116    >>> bool_set( set([1]) )
117    True
118    >>> bool_set(None)
119    False
120    """
121    return bool(obj)
122
123
124def if_set(set obj):
125    """
126    >>> if_set( set() )
127    False
128    >>> if_set( set([1]) )
129    True
130    >>> if_set(None)
131    False
132    """
133    if obj:
134        return True
135    else:
136        return False
137
138
139def if_set_nogil(set obj):
140    """
141    >>> if_set_nogil( set() )
142    False
143    >>> if_set_nogil( set([1]) )
144    True
145    >>> if_set_nogil(None)
146    False
147    """
148    cdef bint result
149    with nogil:
150        if obj:
151            result = True
152        else:
153            result = False
154    return result
155
156
157def if_set_literal(t):
158    """
159    >>> if_set_literal(True)
160    True
161    >>> if_set_literal(False)
162    False
163    """
164    if t:
165        if {1,2,3}:
166            return True
167        else:
168            return False
169    else:
170        if set():
171            return True
172        else:
173            return False
174
175
176def bool_frozenset(frozenset obj):
177    """
178    >>> bool_frozenset( frozenset() )
179    False
180    >>> bool_frozenset( frozenset([1]) )
181    True
182    >>> bool_frozenset(None)
183    False
184    """
185    return bool(obj)
186
187
188def if_frozenset(frozenset obj):
189    """
190    >>> if_frozenset( frozenset() )
191    False
192    >>> if_frozenset( frozenset([1]) )
193    True
194    >>> if_frozenset(None)
195    False
196    """
197    if obj:
198        return True
199    else:
200        return False
201
202
203b0 = b''
204b1 = b'abc'
205
206def bool_bytes(bytes obj):
207    """
208    >>> bool_bytes(b0)
209    False
210    >>> bool_bytes(b1)
211    True
212    >>> bool_bytes(None)
213    False
214    """
215    return bool(obj)
216
217def if_bytes(bytes obj):
218    """
219    >>> if_bytes(b0)
220    False
221    >>> if_bytes(b1)
222    True
223    >>> if_bytes(None)
224    False
225    """
226    if obj:
227        return True
228    else:
229        return False
230
231def if_bytes_literal(t):
232    """
233    >>> if_bytes_literal(True)
234    True
235    >>> if_bytes_literal(False)
236    False
237    """
238    if t:
239        if b'abc':
240            return True
241        else:
242            return False
243    else:
244        if b'':
245            return True
246        else:
247            return False
248
249
250u0 = u''
251u1 = u'abc'
252
253def bool_unicode(unicode obj):
254    """
255    >>> bool_unicode(u0)
256    False
257    >>> bool_unicode(u1)
258    True
259    >>> bool_unicode(None)
260    False
261    """
262    return bool(obj)
263
264def if_unicode(unicode obj):
265    """
266    >>> if_unicode(u0)
267    False
268    >>> if_unicode(u1)
269    True
270    >>> if_unicode(None)
271    False
272    """
273    if obj:
274        return True
275    else:
276        return False
277
278def if_unicode_literal(t):
279    """
280    >>> if_unicode_literal(True)
281    True
282    >>> if_unicode_literal(False)
283    False
284    """
285    if t:
286        if u'abc':
287            return True
288        else:
289            return False
290    else:
291        if u'':
292            return True
293        else:
294            return False
295