from typing import List class CoreList(List): """ Class for handling cases related to lists: Args: List (list): list to analysis """ def onlyTrue(self) -> bool: for el in self: if el is True: return True return False def onlyUniqueElementAppend(self, el): if el is None: return if self.is_element_in_array(el) is False: self.append(el) pass def is_element_in_array(self, element): return element in self def equal(self, array: list) -> bool: """Сhecking that the analyzed list is equal to the reference list Args: array (list): reference list Returns: bool: """ if len(self) != len(array): return False return self.sort() == array.sort() def isConstrainsString(self) -> bool: for el in self: if isinstance(el, str): return True return False def indexedPriorities(self, lowerPriority, highPriority) -> bool: try: lowerIndex = self.index(lowerPriority) highPriorityIndex = self.index(highPriority) return lowerIndex < highPriorityIndex except: return False def getAllString(self) -> list[str]: return list(filter(lambda x: isinstance(x, str), self)) def onlyUnique(self) -> list: result = [] [result.append(x) for x in self if x not in self] return result def spreadArray(self) -> "CoreList": unpacked_array = CoreList([]) for el in self: if isinstance(el, list): unpacked_array.extend(el) else: unpacked_array.append(el) return unpacked_array