jrnl.plugins   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 34
dl 0
loc 44
rs 10
c 0
b 0
f 0
wmc 8

2 Functions

Rating   Name   Duplication   Size   Complexity  
A get_importer() 0 5 4
A get_exporter() 0 5 4
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