/
__init__.py
47 lines (36 loc) · 1.09 KB
/
__init__.py
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
47
"""Registry of backend types for Annif"""
import configparser
from flask import current_app
from . import dummy
from . import ensemble
from . import http
from . import tfidf
from . import doc2vec
from . import pav
import annif
_backend_types = {}
def register_backend(backend):
_backend_types[backend.name] = backend
def get_backend(backend_id):
try:
return _backend_types[backend_id]
except KeyError:
raise ValueError("No such backend type {}".format(backend_id))
register_backend(dummy.DummyBackend)
register_backend(ensemble.EnsembleBackend)
register_backend(http.HTTPBackend)
register_backend(tfidf.TFIDFBackend)
register_backend(doc2vec.Doc2VecBackend)
register_backend(pav.PAVBackend)
# Optional backends
try:
from . import fasttext
register_backend(fasttext.FastTextBackend)
except ImportError:
annif.logger.debug("fastText not available, not enabling fasttext backend")
try:
from . import vw_multi
register_backend(vw_multi.VWMultiBackend)
except ImportError:
annif.logger.debug(
"vowpalwabbit not available, not enabling vw_multi backend")