sdoc.sdoc2.node.IconNode.IconNode.__init__()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 9
Code Lines 2

Duplication

Lines 9
Ratio 100 %

Code Coverage

Tests 1
CRAP Score 1.125

Importance

Changes 0
Metric Value
eloc 2
dl 9
loc 9
ccs 1
cts 2
cp 0.5
rs 10
c 0
b 0
f 0
cc 1
nop 4
crap 1.125
1 1
from typing import Dict, Optional
2
3 1
from cleo.io.io import IO
4
5 1
from sdoc.sdoc2.node.Node import Node
6 1
from sdoc.sdoc2.NodeStore import NodeStore
7
8
9 1 View Code Duplication
class IconNode(Node):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
10
    """
11
    Node for icons (i.e. small inline images).
12
    """
13
14
    # ------------------------------------------------------------------------------------------------------------------
15 1
    _definitions = {}
16
    """
17
    The icon definitions. Map from ion name ot attributes.
18
19
    :type: dict[str,dict[str,str]]
20
    """
21
22
    # ------------------------------------------------------------------------------------------------------------------
23 1
    def __init__(self, io: IO, options: Dict[str, str], argument: str):
24
        """
25
        Object constructor.
26
27
        :param OutputStyle io: The IO object.
28
        :param dict[str,str] options: The options of this figure.
29
        :param str argument: Not used.
30
        """
31
        super().__init__(io, 'icon', options, argument)
32
33
    # ------------------------------------------------------------------------------------------------------------------
34 1
    def get_command(self) -> str:
35
        """
36
        Returns the command of this node, i.e. icon.
37
        """
38
        return 'icon'
39
40
    # ------------------------------------------------------------------------------------------------------------------
41 1
    def is_block_command(self) -> bool:
42
        """
43
        Returns False.
44
        """
45
        return False
46
47
    # ------------------------------------------------------------------------------------------------------------------
48 1
    def is_inline_command(self) -> bool:
49
        """
50
        Returns True.
51
        """
52
        return True
53
54
    # ------------------------------------------------------------------------------------------------------------------
55 1
    def is_phrasing(self) -> bool:
56
        """
57
        Returns True if this node is a phrasing node, i.e. is a part of a paragraph. Otherwise returns False.
58
        """
59
        return True
60
61
    # ------------------------------------------------------------------------------------------------------------------
62 1
    @staticmethod
63 1
    def add_definition(name: str, attributes: Dict[str, str]):
64
        """
65
        Adds the definition of an icon to the icon definitions.
66
67
        :param str name: The name of a reference to icon definition.
68
        :param dict[str,str] attributes: The attributes.
69
        """
70
        IconNode._definitions[name] = attributes
71
72
    # ------------------------------------------------------------------------------------------------------------------
73 1
    @staticmethod
74 1
    def get_definition(name: str) -> Optional[Dict[str, str]]:
75
        """
76
        Returns the attributes of a definition, if name of definition is exists.
77
78
        :param str name: The name of a definition
79
80
        :rtype: dict[str,str]|None
81
        """
82
        if name in IconNode._definitions:
83
            return IconNode._definitions[name]
84
        else:
85
            return None
86
87
88
# ----------------------------------------------------------------------------------------------------------------------
89
NodeStore.register_inline_command('icon', IconNode)
90