| @@ 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 | """ |
|