doc is ready for the new api refactoring
[tiramisu.git] / doc / option.txt
1 .. default-role:: literal
2
3 The 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     :special-members:
25     :members:
26
27
28 If you need to access an option object, you can do it with the OptionDescription
29 object. Not only the value of the option by attribute access, but the option
30 object itself that lives behind the scene. It can always be accessed internally
31 with the `impl_descr` attribute of the `config` objects. For example, with a
32 option named `name` in a `gc` group the `name` object can be accessed like
33 this::
34
35     conf._impl_descr.name
36
37 of sub configs with ::
38
39     conf.gc._impl_descr.name
40
41 This is a binding. The option objects are in the `_children` config's attribute.
42
43 Why accessing an option object ? It is possible for example freeze the
44 configuration option
45
46 ::
47
48     conf.gc._impl_descr.dummy.freeze()
49
50 or to hide it, or disable it, or... anything.
51
52 The `Option` base class
53 -------------------------
54
55 It's the abstract base class for almost all options (except the symblink).
56
57 .. _optioninit:
58
59 .. autoclass:: Option
60     :special-members:
61     :members:
62
63 All option types
64 ------------------
65
66 .. autoclass:: BoolOption
67     :private-members:
68
69 .. autoclass:: IntOption
70     :private-members:
71
72 .. autoclass:: FloatOption
73     :private-members:
74
75 .. autoclass:: StrOption
76     :private-members:
77
78
79 .. autoclass:: SymLinkOption
80
81     .. automethod:: __init__
82
83
84 ``SymLinkOption`` redirects to another configuration option in the
85 configuration, that is :
86
87 - retrieves the value of the target,
88 - can set the value of the target too
89
90
91 .. autoclass:: IPOption
92
93 .. autoclass:: NetmaskOption
94
95 .. autoclass:: NetworkOption
96
97 .. autoclass:: DomainnameOption
98
99
100 .. autoclass:: ChoiceOption
101
102     .. automethod:: __init__