From b43a9d142b420841294b089858a6930a7ee4da5f Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Thu, 11 Jun 2020 18:19:38 +0000 Subject: [PATCH] =?UTF-8?q?TreeLib=20|=20p=C5=99epsan=C3=BD=20is=5Forphan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/treelib.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/seminar/treelib.py b/seminar/treelib.py index 03613d05..95fae9a9 100644 --- a/seminar/treelib.py +++ b/seminar/treelib.py @@ -13,13 +13,6 @@ def print_tree(node,indent=0): if node.succ: print_tree(node.succ, indent=indent) -def is_orphan(node): - """ Zjišťuje, jestli už je daný Node někde pověšený či nikoli. """ - if safe_father_of_first(node) is None and safe_pred(node) is None: - return True - else: - return False - # Django je trošku hloupé, takže node.prev nevrací None, ale hází django.core.exceptions.ObjectDoesNotExist def safe_pred(node): try: @@ -63,6 +56,21 @@ def get_last_child(node): else: return last_brother(first) +def is_orphan(node): + """ Zjišťuje, jestli už je daný Node někde pověšený či nikoli. """ + # None jsem se rozhodl, že sirotek není + if node is None: + return False + if get_parent(node) is None: + if node.succ is not None or safe_pred(node) is not None or safe_father_of_first(node) is not None or node.root is not None: + import logging + logger = logging.getLogger(__name__) + # Error = pošle mail :-) + logger.error(f"Node-sirotek s id {node.id} má rodinné vztahy (Node: {node})") + return True + else: + return False + # Obecný next: další Node v "the-right-order" pořadí (já, pak potomci, pak sousedé) def general_next(node): # Máme potomka?