From 6f4ce1ed5cd57d9b42617871389f68771f0e69e0 Mon Sep 17 00:00:00 2001 From: John Estabrook Date: Tue, 23 Sep 2025 08:27:26 -0500 Subject: T7850: add util list_strip to remove initial or final sub-list --- python/vyos/utils/list.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'python') diff --git a/python/vyos/utils/list.py b/python/vyos/utils/list.py index 931084e7c..ea4bcd3ba 100644 --- a/python/vyos/utils/list.py +++ b/python/vyos/utils/list.py @@ -18,3 +18,26 @@ def is_list_equal(first: list, second: list) -> bool: if len(first) != len(second) or len(first) == 0: return False return sorted(first) == sorted(second) + + +def list_strip(lst: list, sub: list, right: bool = False) -> list: + """Remove list 'sub' from beginning (right=False), resp., end of list 'lst'""" + + if not right: + while sub: + if lst[:1] == sub[:1]: + lst = lst[1:] + sub = sub[1:] + else: + lst = [] + sub = [] + else: + while sub: + if lst[-1:] == sub[-1:]: + lst = lst[:-1] + sub = sub[:-1] + else: + lst = [] + sub = [] + + return lst -- cgit v1.2.3