1
2
3 """
4 Internal implementation utilities and details.
5
6 This module contains various odds and ends to make development easier. None of
7 the code within should be relied upon as it is subject to change at a whim.
8 """
9
10 __docformat__ = 'restructuredtext en'
11
12
13
14
15 import types
16
17 __all__ = [
18 'make_list',
19 ]
20
21
22
23
24
25
27 """
28 If this isn't a list, make it one.
29
30 :Parameters:
31 x : list, tuple, other
32 a sequence, or a single element to be placed in a sequence
33
34 :Returns:
35 Either the original a parameter if a sequence, or the parameter placed in
36 a list.
37
38 Syntactic sugar for allowing method calls to be single elements or lists of
39 elements.
40
41 For example::
42
43 >>> make_list (1)
44 [1]
45 >>> make_list ('1')
46 ['1']
47 >>> make_list ([1, 2])
48 [1, 2]
49 >>> make_list ((1, 2))
50 (1, 2)
51
52 """
53
54 if (type (x) not in (types.ListType, types.TupleType)):
55 x = [x]
56 return x
57
58
59
60
61 if __name__ == "__main__":
62 import doctest
63 doctest.testmod()
64
65
66
67
68