Treelib: create_node_before

This commit is contained in:
Pavel 'LEdoian' Turinsky 2020-03-19 01:24:51 +01:00
parent db5f0fd0c5
commit c1e107c89e

View file

@ -173,9 +173,20 @@ def create_child(parent, type, **kwargs):
new_node.succ = orig_child
new_node.save()
def create_node_before(some, arguments, but, i, dont, know, which, yet):
pass
# Tohle bude hell.
def create_node_before(successor, type, **kwargs):
if safe_pred(successor) is not None:
# Easy: přidáme za předchůdce
create_node_after(successor.prev, type, **kwargs)
# Nemáme předchůdce, jsme tedy první z bratrů. Máme otce?
if safe_father_of_first(successor) is not None:
# Ano -> Easy: vyrobíme nového potomka
# NOTE: Tohle je možná trošku abuse implementace výše, ale to nevadí moc...
create_child(successor.father_of_first, type, **kwargs)
# Teď už easy: Jsme sirotci, takže se vyrobíme a našeho následníka si přidáme jako succ
new = type.objects.create(**kwargs)
new.succ = successor
new.save()
# ValueError, pokud je (aspoň) jeden parametr None
def swap(node, other):