docs: def climb(self, whole=False):
          """ Climb through the tree (iterate leaf/all nodes) """
          if whole or not self.children:
              yield self
          for name, child in self.children.items():
              for node in child.climb(whole):
                  yield node