1fa4642a248ff438070981648b623e48ac258acc
[tiramisu.git] / doc / option.txt
1 .. default-role:: literal
2
3 The `tiramisu.option.Option` options
4 ======================================
5
6 Description of Options
7 ----------------------
8
9 All the constructors take a ``name`` and a ``doc`` argument as first
10 arguments to give the option or option group a name and to document it.
11 Most constructors take a ``default`` argument that specifies the default
12 value of the option. If this argument is not supplied the default value
13 is assumed to be ``None``.
14
15
16 .. _optdescr:
17
18 The `OptionDescription` class
19 -------------------------------
20
21 .. module:: tiramisu.option
22
23 .. autoclass: OptionDescription
24
25     .. automethod:: __init__
26
27     .. rubric:: Methods
28
29     .. autosummary::
30
31       ~Config.__init__
32       ~Config.set_group_type
33
34     .. automethod:: set_group_type
35
36 `Options description` objects lives in the :class:`tiramisu.config.Config` attribute.
37
38 If you need to access an option object, you can do it with the OptionDescription
39 object. Not only the value of the option by attribute access, but the option
40 object itself that lives behind the scene. It can always be accessed internally
41 with the `_cfgimpl_descr` attribute of the `config` objects. For example, with a
42 option named `name` in a `gc` group the `name` object can be accessed like
43 this::
44
45     conf._cfgimpl_descr.name
46
47 of sub configs with ::
48
49     conf.gc._cfgimpl_descr.name
50
51 This is a binding. The option objects are in the `_children` config's attribute.
52
53 Why accessing an option object ? It is possible for example freeze the
54 configuration option
55
56 ::
57
58     conf.gc._cfgimpl_descr.dummy.freeze()
59
60 or to hide it, or disable it, or... anything.
61
62 The `Option` base class
63 -------------------------
64
65 It's the abstract base class for almost all options (except the symblink).
66
67 .. _optioninit:
68
69 .. autoclass:: Option
70     :special-members:
71     :members:
72
73 All option types 
74 ------------------
75
76 .. autoclass:: BoolOption
77     :private-members:
78
79 .. autoclass:: IntOption
80     :private-members:
81
82 .. autoclass:: FloatOption
83     :private-members:
84
85 .. autoclass:: StrOption
86     :private-members:
87
88
89 .. autoclass:: SymLinkOption
90
91     .. automethod:: __init__
92
93
94 ``SymLinkOption`` redirects to another configuration option in the 
95 configuration, that is :
96
97 - retrieves the value of the target,
98 - can set the value of the target too
99
100
101 .. autoclass:: IPOption
102
103 .. autoclass:: NetmaskOption
104
105 .. autoclass:: NetworkOption
106
107 .. autoclass:: DomainnameOption
108
109
110 .. autoclass:: ChoiceOption
111
112     .. automethod:: __init__
113
114
115