tiramisu/doc/getting-started.txt

76 lines
2.4 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

==================================
Getting started
==================================
What is Configuration handling ?
=================================
Due to more and more available configuration options required to set up
an operating system, it became quite annoying to hand the necessary
options to where they are actually used and even more annoying to add
new options. To circumvent these problems the configuration management
was introduced...
What is Tiramisu ?
===================
Tiramisu is yet another configuration handler, wich aims at producing flexible
and fast configuration options access. The main advantages are its access rules
and the fact that the configuration's consistency is preserved at any time, see
:doc:`consistency`. There is of course type and structure validations, but also
validations towards the whole configuration.
Last but not least, configuration options can be reached and changed
according to the access rules from nearly everywhere in your appliance.
Just the facts
==============
.. _gettingtiramisu:
Download
---------
To obtain a copy of the sources, check it out from the repository using `git`.
We suggest using `git` if one wants to access the current developments.
::
git clone git://git.labs.libre-entreprise.org/tiramisu.git
This will get you a fresh checkout of the code repository in a local directory
named ``tiramisu``.
Getting started
-------------------
Configuration option objects can be created in different ways. Let's perform
very basic :class:`tiramisu.config.Config` object manipulations:
::
>>> from tiramisu.config import Config
>>> from tiramisu.option import OptionDescription, BoolOption
>>> descr = OptionDescription("optgroup", "", [
... BoolOption("bool", "", default=False)])
>>>
>>> config = Config(descr)
>>> # now we have a config, wich contains an option:
>>> config.bool
False
>>> config.bool = True
>>> config.bool
True
So by now, we have
- a namespace (which is `config` here)
- the access of an option's value by the
attribute access way (here `bool`, wich is a boolean option:
:class:`tiramisu.option.BoolOption()`.
Configuration option objects :class:`tiramisu.config.Config()` are produced at
the entry point and then handed down to where they are actually used. This
keeps configuration local but available everywhere and consistent.