summaryrefslogtreecommitdiff
path: root/README.rst
blob: d8a4a5a7761d09ee26574e156a49905e64b92b6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
===============================
 lesana - a collection manager
===============================

lesana is a python3 library to organize collections of various kinds.
It is designed to have a data storage / serialization format that is
friendly to git and other VCSs, but decent performances.

To reach this aim it uses yaml_ as its serialization format, which is
easy to store in a VCS, share between people and syncronize between
different computers, but it also keeps an index of this data in a local
xapian_ database in order to allow for fast searches.

.. _yaml: http://yaml.org/
.. _xapian: https://xapian.org/

lesana supports collections of any kind, as long as their entries can be
described with a mostly flat dictionary of fields of the types described
in the documentation file ``field_types``.

Some example collection schemas are provided, but one big strenght of
lesana is the ability to customize your collection with custom fields
either by simply writing a personalize schema.yaml or, in more complex
cases, by inheriting from it in another module.

Installation
------------

lesana expects to run on a POSIX-like system and requires the following
dependencies:

* python3
* `guacamole <https://github.com/zyga/guacamole/>`_
* xapian_
* `ruamel.yaml <https://bitbucket.org/ruamel/yaml>`_
* `jinja2 <http://jinja.pocoo.org/>`_
* `GitPython <https://github.com/gitpython-developers/GitPython>`_
  optional, to add git support.

Under debian (and derivatives), the packages to install are::

   apt install python3-guacamole python3-jinja2 python3-ruamel.yaml \
   python3-xapian python3-git

(some of those are only available on stretch-onwards because earlier
versions lacked python3 support.)