jrnl.plugins.get_importer()   A
last analyzed

Complexity

Conditions 4

Size

Total Lines 5
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 5
nop 1
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
#!/usr/bin/env python
2
# encoding: utf-8
3
4
from .fancy_exporter import FancyExporter
5
from .jrnl_importer import JRNLImporter
6
from .json_exporter import JSONExporter
7
from .markdown_exporter import MarkdownExporter
8
from .tag_exporter import TagExporter
9
from .template_exporter import __all__ as template_exporters
10
from .text_exporter import TextExporter
11
from .xml_exporter import XMLExporter
12
from .yaml_exporter import YAMLExporter
13
14
__exporters = [
15
    JSONExporter,
16
    MarkdownExporter,
17
    TagExporter,
18
    TextExporter,
19
    XMLExporter,
20
    YAMLExporter,
21
    FancyExporter,
22
] + template_exporters
23
__importers = [JRNLImporter]
24
25
__exporter_types = {name: plugin for plugin in __exporters for name in plugin.names}
26
__importer_types = {name: plugin for plugin in __importers for name in plugin.names}
27
28
EXPORT_FORMATS = sorted(__exporter_types.keys())
29
IMPORT_FORMATS = sorted(__importer_types.keys())
30
31
32
def get_exporter(format):
33
    for exporter in __exporters:
34
        if hasattr(exporter, "names") and format in exporter.names:
35
            return exporter
36
    return None
37
38
39
def get_importer(format):
40
    for importer in __importers:
41
        if hasattr(importer, "names") and format in importer.names:
42
            return importer
43
    return None
44