code: def parent(self, index):
          
  
          if not index.isValid():
              return QModelIndex()
  
          node = self.get_node(index)
          parent_node = node.parent
          if not parent_node:
              return QModelIndex()
  
          if parent_node == self.__root_node:
              return QModelIndex()
  
          row = parent_node.row()
          return self.createIndex(row, 0, parent_node) if row is not None else QModelIndex()
docs: Reimplements the :meth:`QAbstractItemModel.parent` method.
  
          :param index: Index.
          :type index: QModelIndex
          :return: Parent.
          :rtype: QModelIndex