class NodePropertyError(Exception): """Basic Node attribute error""" pass class NodeIDAbsentError(NodePropertyError): """Exception throwed if a node's identifier is unknown""" pass class NodePropertyAbsentError(NodePropertyError): """Exception throwed if a node's data property is not specified""" pass class MultipleRootError(Exception): """Exception throwed if more than one root exists in a tree.""" pass class DuplicatedNodeIdError(Exception): """Exception throwed if an identifier already exists in a tree.""" pass class LinkPastRootNodeError(Exception): """ Exception throwed in Tree.link_past_node() if one attempts to "link past" the root node of a tree. """ pass class InvalidLevelNumber(Exception): pass class LoopError(Exception): """ Exception thrown if trying to move node B to node A's position while A is B's ancestor. """ pass