| @@ 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 | ||
| @@ 8010-8037 (lines=28) @@ | ||
| 8007 | return ret |
|
| 8008 | ||
| 8009 | # pylint: disable=line-too-long,invalid-name,missing-module-docstring |
|
| 8010 | def extend_AllIndexed(self, elements, validate_continuity=False): |
|
| 8011 | """ |
|
| 8012 | Add all elements in list `elements`, respecting ``@index`` order. |
|
| 8013 | With `validate_continuity`, check that all new elements come after all old elements |
|
| 8014 | (or raise an exception). |
|
| 8015 | Otherwise, ensure this condition silently (by increasing ``@index`` accordingly). |
|
| 8016 | """ |
|
| 8017 | if not isinstance(elements, list): |
|
| 8018 | elements = [elements] |
|
| 8019 | siblings = self.get_AllIndexed() |
|
| 8020 | highest_sibling_index = siblings[-1].index if siblings else -1 |
|
| 8021 | if validate_continuity: |
|
| 8022 | elements = sorted(elements, key=lambda x: x.index) |
|
| 8023 | lowest_element_index = elements[0].index |
|
| 8024 | if lowest_element_index <= highest_sibling_index: |
|
| 8025 | raise Exception("@index already used: {}".format(lowest_element_index)) |
|
| 8026 | else: |
|
| 8027 | for element in elements: |
|
| 8028 | highest_sibling_index += 1 |
|
| 8029 | element.index = highest_sibling_index |
|
| 8030 | for element in elements: |
|
| 8031 | if isinstance(element, RegionRefIndexedType): # pylint: disable=undefined-variable |
|
| 8032 | self.add_RegionRefIndexed(element) |
|
| 8033 | elif isinstance(element, OrderedGroupIndexedType): # pylint: disable=undefined-variable |
|
| 8034 | self.add_OrderedGroupIndexed(element) |
|
| 8035 | elif isinstance(element, UnorderedGroupIndexedType): # pylint: disable=undefined-variable |
|
| 8036 | self.add_UnorderedGroupIndexed(element) |
|
| 8037 | return self.get_AllIndexed() |
|
| 8038 | # pylint: disable=line-too-long,invalid-name,missing-module-docstring |
|
| 8039 | def sort_AllIndexed(self, validate_uniqueness=True): |
|
| 8040 | """ |
|
| @@ 7047-7074 (lines=28) @@ | ||
| 7044 | return ret |
|
| 7045 | ||
| 7046 | # pylint: disable=line-too-long,invalid-name,missing-module-docstring |
|
| 7047 | def extend_AllIndexed(self, elements, validate_continuity=False): |
|
| 7048 | """ |
|
| 7049 | Add all elements in list `elements`, respecting ``@index`` order. |
|
| 7050 | With `validate_continuity`, check that all new elements come after all old elements |
|
| 7051 | (or raise an exception). |
|
| 7052 | Otherwise, ensure this condition silently (by increasing ``@index`` accordingly). |
|
| 7053 | """ |
|
| 7054 | if not isinstance(elements, list): |
|
| 7055 | elements = [elements] |
|
| 7056 | siblings = self.get_AllIndexed() |
|
| 7057 | highest_sibling_index = siblings[-1].index if siblings else -1 |
|
| 7058 | if validate_continuity: |
|
| 7059 | elements = sorted(elements, key=lambda x: x.index) |
|
| 7060 | lowest_element_index = elements[0].index |
|
| 7061 | if lowest_element_index <= highest_sibling_index: |
|
| 7062 | raise Exception("@index already used: {}".format(lowest_element_index)) |
|
| 7063 | else: |
|
| 7064 | for element in elements: |
|
| 7065 | highest_sibling_index += 1 |
|
| 7066 | element.index = highest_sibling_index |
|
| 7067 | for element in elements: |
|
| 7068 | if isinstance(element, RegionRefIndexedType): # pylint: disable=undefined-variable |
|
| 7069 | self.add_RegionRefIndexed(element) |
|
| 7070 | elif isinstance(element, OrderedGroupIndexedType): # pylint: disable=undefined-variable |
|
| 7071 | self.add_OrderedGroupIndexed(element) |
|
| 7072 | elif isinstance(element, UnorderedGroupIndexedType): # pylint: disable=undefined-variable |
|
| 7073 | self.add_UnorderedGroupIndexed(element) |
|
| 7074 | return self.get_AllIndexed() |
|
| 7075 | # pylint: disable=line-too-long,invalid-name,missing-module-docstring |
|
| 7076 | def sort_AllIndexed(self, validate_uniqueness=True): |
|
| 7077 | """ |
|