| Conditions | 6 | 
| Total Lines | 33 | 
| Code Lines | 21 | 
| Lines | 33 | 
| Ratio | 100 % | 
| Changes | 0 | ||
| 1 | View Code Duplication | def get_ReadingOrderGroups(self) -> dict:  | 
            |
| 
                                                                                                    
                        
                         | 
                |||
| 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)):  | 
            ||
| 17 | regionrefs = (group.get_RegionRefIndexed() +  | 
            ||
| 18 | group.get_OrderedGroupIndexed() +  | 
            ||
| 19 | group.get_UnorderedGroupIndexed())  | 
            ||
| 20 | if isinstance(group, (UnorderedGroupType, UnorderedGroupIndexedType)):  | 
            ||
| 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)):  | 
            ||
| 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 |