1 """
2 Code relating to interfaces and policies.
3
4 To run a program, the following steps are typical:
5
6 1. Create some L{requirements.Requirements}, giving the root interface's URI.
7 2. Instantiate a L{driver.Driver}, giving it the requirements
8 3. Ask the driver to choose a set of implementations.
9 1. The driver will try to find a compatible set of implementations that meet the user's policy
10 and work on the current L{arch}itecture, using a L{solve.Solver}.
11 2. The solver looks up feeds in the L{iface_cache}.
12 3. The driver will L{fetch} any feeds that are missing.
13 4. The cached or downloaded XML is parsed into a L{model} using the L{reader} module.
14 4. Download the selected implementations and L{zerostore.unpack} into the L{zerostore}.
15 5. Finally, L{run} the program.
16
17 The L{cli} module provides the B{0launch} command-line interface.
18 """
19