1 """
2 Backend implementation
3 ======================
4
5 Backends are the part of the Advene implementation that is specific to a given
6 storage-and-indexing layer. Everything that is independant of that layer is
7 implemented in the `advene.model.core` package instead.
8
9 A consequence of the dependance-requirement is that consistency checking is
10 normally not expected from the backend. However, a given backend may chose to
11 implement some checkings for its internal requirements (indexing, for example).
12 Note that some consistency checking may also be implemented as ``assert`` to
13 make debugging easier, but implementations should not rely on those assertions,
14 since they are not active in optimized code.
15
16 TODO: more documentation, including the fact that only one backend instance
17 should exist for a given "database" (or the like, depending on
18 implementations).
19
20 See the reference implementation `advene.model.backend.sqlite`.
21 """
22