@@ 2-29 (lines=28) @@ | ||
1 | # pylint: disable=line-too-long,invalid-name,missing-module-docstring |
|
2 | def extend_AllIndexed(self, elements, validate_continuity=False): |
|
3 | """ |
|
4 | Add all elements in list `elements`, respecting ``@index`` order. |
|
5 | With `validate_continuity`, check that all new elements come after all old elements |
|
6 | (or raise an exception). |
|
7 | Otherwise, ensure this condition silently (by increasing ``@index`` accordingly). |
|
8 | """ |
|
9 | if not isinstance(elements, list): |
|
10 | elements = [elements] |
|
11 | siblings = self.get_AllIndexed() |
|
12 | highest_sibling_index = siblings[-1].index if siblings else -1 |
|
13 | if validate_continuity: |
|
14 | elements = sorted(elements, key=lambda x: x.index) |
|
15 | lowest_element_index = elements[0].index |
|
16 | if lowest_element_index <= highest_sibling_index: |
|
17 | raise Exception("@index already used: {}".format(lowest_element_index)) |
|
18 | else: |
|
19 | for element in elements: |
|
20 | highest_sibling_index += 1 |
|
21 | element.index = highest_sibling_index |
|
22 | for element in elements: |
|
23 | if isinstance(element, RegionRefIndexedType): # pylint: disable=undefined-variable |
|
24 | self.add_RegionRefIndexed(element) |
|
25 | elif isinstance(element, OrderedGroupIndexedType): # pylint: disable=undefined-variable |
|
26 | self.add_OrderedGroupIndexed(element) |
|
27 | elif isinstance(element, UnorderedGroupIndexedType): # pylint: disable=undefined-variable |
|
28 | self.add_UnorderedGroupIndexed(element) |
|
29 | return self.get_AllIndexed() |
|
30 |
@@ 8006-8033 (lines=28) @@ | ||
8003 | return ret |
|
8004 | ||
8005 | # pylint: disable=line-too-long,invalid-name,missing-module-docstring |
|
8006 | def extend_AllIndexed(self, elements, validate_continuity=False): |
|
8007 | """ |
|
8008 | Add all elements in list `elements`, respecting ``@index`` order. |
|
8009 | With `validate_continuity`, check that all new elements come after all old elements |
|
8010 | (or raise an exception). |
|
8011 | Otherwise, ensure this condition silently (by increasing ``@index`` accordingly). |
|
8012 | """ |
|
8013 | if not isinstance(elements, list): |
|
8014 | elements = [elements] |
|
8015 | siblings = self.get_AllIndexed() |
|
8016 | highest_sibling_index = siblings[-1].index if siblings else -1 |
|
8017 | if validate_continuity: |
|
8018 | elements = sorted(elements, key=lambda x: x.index) |
|
8019 | lowest_element_index = elements[0].index |
|
8020 | if lowest_element_index <= highest_sibling_index: |
|
8021 | raise Exception("@index already used: {}".format(lowest_element_index)) |
|
8022 | else: |
|
8023 | for element in elements: |
|
8024 | highest_sibling_index += 1 |
|
8025 | element.index = highest_sibling_index |
|
8026 | for element in elements: |
|
8027 | if isinstance(element, RegionRefIndexedType): # pylint: disable=undefined-variable |
|
8028 | self.add_RegionRefIndexed(element) |
|
8029 | elif isinstance(element, OrderedGroupIndexedType): # pylint: disable=undefined-variable |
|
8030 | self.add_OrderedGroupIndexed(element) |
|
8031 | elif isinstance(element, UnorderedGroupIndexedType): # pylint: disable=undefined-variable |
|
8032 | self.add_UnorderedGroupIndexed(element) |
|
8033 | return self.get_AllIndexed() |
|
8034 | # pylint: disable=line-too-long,invalid-name,missing-module-docstring |
|
8035 | def sort_AllIndexed(self, validate_uniqueness=True): |
|
8036 | """ |
|
@@ 7043-7070 (lines=28) @@ | ||
7040 | return ret |
|
7041 | ||
7042 | # pylint: disable=line-too-long,invalid-name,missing-module-docstring |
|
7043 | def extend_AllIndexed(self, elements, validate_continuity=False): |
|
7044 | """ |
|
7045 | Add all elements in list `elements`, respecting ``@index`` order. |
|
7046 | With `validate_continuity`, check that all new elements come after all old elements |
|
7047 | (or raise an exception). |
|
7048 | Otherwise, ensure this condition silently (by increasing ``@index`` accordingly). |
|
7049 | """ |
|
7050 | if not isinstance(elements, list): |
|
7051 | elements = [elements] |
|
7052 | siblings = self.get_AllIndexed() |
|
7053 | highest_sibling_index = siblings[-1].index if siblings else -1 |
|
7054 | if validate_continuity: |
|
7055 | elements = sorted(elements, key=lambda x: x.index) |
|
7056 | lowest_element_index = elements[0].index |
|
7057 | if lowest_element_index <= highest_sibling_index: |
|
7058 | raise Exception("@index already used: {}".format(lowest_element_index)) |
|
7059 | else: |
|
7060 | for element in elements: |
|
7061 | highest_sibling_index += 1 |
|
7062 | element.index = highest_sibling_index |
|
7063 | for element in elements: |
|
7064 | if isinstance(element, RegionRefIndexedType): # pylint: disable=undefined-variable |
|
7065 | self.add_RegionRefIndexed(element) |
|
7066 | elif isinstance(element, OrderedGroupIndexedType): # pylint: disable=undefined-variable |
|
7067 | self.add_OrderedGroupIndexed(element) |
|
7068 | elif isinstance(element, UnorderedGroupIndexedType): # pylint: disable=undefined-variable |
|
7069 | self.add_UnorderedGroupIndexed(element) |
|
7070 | return self.get_AllIndexed() |
|
7071 | # pylint: disable=line-too-long,invalid-name,missing-module-docstring |
|
7072 | def sort_AllIndexed(self, validate_uniqueness=True): |
|
7073 | """ |