Passed
Push — master ( 407c02...ff81c6 )
by Konstantin
02:41
created

get_ReadingOrderGroups.get_ReadingOrderGroups()   B

Complexity

Conditions 6

Size

Total Lines 33
Code Lines 21

Duplication

Lines 33
Ratio 100 %

Importance

Changes 0
Metric Value
eloc 21
dl 33
loc 33
rs 8.4426
c 0
b 0
f 0
cc 6
nop 1
1 View Code Duplication
def get_ReadingOrderGroups(self) -> dict:
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
2
    """
3
    Aggregate recursive ReadingOrder into a dictionary, mapping each regionRef
4
    (i.e. segment `@id`) to its referring group object (i.e one of
5
6
    \b
7
    - :py:class:`.RegionRefType`
8
    - :py:class:`.RegionRefIndexedType`
9
    - :py:class:`.OrderedGroupType`
10
    - :py:class:`.OrderedGroupIndexedType`
11
    - :py:class:`.UnoderedGroupType`
12
    - :py:class:`.UnoderedGroupIndexedType`
13
    """
14
    def get_groupdict(group):
15
        regionrefs = list()
16
        if isinstance(group, (OrderedGroupType, OrderedGroupIndexedType)):
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable OrderedGroupType does not seem to be defined.
Loading history...
Comprehensibility Best Practice introduced by
The variable OrderedGroupIndexedType does not seem to be defined.
Loading history...
17
            regionrefs = (group.get_RegionRefIndexed() +
18
                          group.get_OrderedGroupIndexed() +
19
                          group.get_UnorderedGroupIndexed())
20
        if isinstance(group, (UnorderedGroupType, UnorderedGroupIndexedType)):
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable UnorderedGroupType does not seem to be defined.
Loading history...
Comprehensibility Best Practice introduced by
The variable UnorderedGroupIndexedType does not seem to be defined.
Loading history...
21
            regionrefs = (group.get_RegionRef() +
22
                          group.get_OrderedGroup() +
23
                          group.get_UnorderedGroup())
24
        refdict = {}
25
        for elem in regionrefs:
26
            refdict[elem.get_regionRef()] = elem
27
            if not isinstance(elem, (RegionRefType, RegionRefIndexedType)):
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable RegionRefType does not seem to be defined.
Loading history...
Comprehensibility Best Practice introduced by
The variable RegionRefIndexedType does not seem to be defined.
Loading history...
28
                refdict = {**refdict, **get_groupdict(elem)}
29
        return refdict
30
    ro = self.get_ReadingOrder()
31
    if ro is None:
32
        return {}
33
    return get_groupdict(ro.get_OrderedGroup() or ro.get_UnorderedGroup())
34