1# ticket: 455 2 3def in_sequence(x, seq): 4 """ 5 >>> in_sequence(1, []) 6 False 7 >>> in_sequence(1, ()) 8 False 9 >>> in_sequence(1, {}) 10 False 11 >>> in_sequence(1, [1]) 12 True 13 >>> in_sequence(1, (1,)) 14 True 15 >>> in_sequence(1, {1:None}) 16 True 17 18 >>> in_sequence(1, None) # doctest: +ELLIPSIS 19 Traceback (most recent call last): 20 TypeError: ...iterable... 21 22 >>> in_sequence(1, 1) # doctest: +ELLIPSIS 23 Traceback (most recent call last): 24 TypeError: ...iterable... 25 """ 26 return x in seq 27 28def not_in_sequence(x, seq): 29 """ 30 >>> not_in_sequence(1, []) 31 True 32 >>> not_in_sequence(1, ()) 33 True 34 >>> not_in_sequence(1, {}) 35 True 36 >>> not_in_sequence(1, [1]) 37 False 38 >>> not_in_sequence(1, (1,)) 39 False 40 >>> not_in_sequence(1, {1:None}) 41 False 42 43 >>> not_in_sequence(1, None) # doctest: +ELLIPSIS 44 Traceback (most recent call last): 45 TypeError: ...iterable... 46 47 >>> not_in_sequence(1, 1) # doctest: +ELLIPSIS 48 Traceback (most recent call last): 49 TypeError: ...iterable... 50 """ 51 return x not in seq 52 53 54def in_dict(k, dict dct): 55 """ 56 >>> in_dict(1, {}) 57 False 58 >>> in_dict(1, {1:None}) 59 True 60 61 >>> in_dict(1, None) 62 Traceback (most recent call last): 63 ... 64 TypeError: 'NoneType' object is not iterable 65 """ 66 return k in dct 67 68def not_in_dict(k, dict dct): 69 """ 70 >>> not_in_dict(1, {}) 71 True 72 >>> not_in_dict(1, {1:None}) 73 False 74 75 >>> not_in_dict(1, None) 76 Traceback (most recent call last): 77 ... 78 TypeError: 'NoneType' object is not iterable 79 """ 80 return k not in dct 81 82def cascaded(a, b, c): 83 """ 84 >>> cascaded(1, 2, 3) # doctest: +ELLIPSIS 85 Traceback (most recent call last): 86 ... 87 TypeError: ...iterable... 88 >>> cascaded(-1, (1,2), (1,3)) 89 True 90 >>> cascaded(1, (1,2), (1,3)) 91 False 92 >>> cascaded(-1, (1,2), (1,0)) 93 False 94 """ 95 return a not in b < c 96