def mark_done(self, node_id: UniqueId) -> None:
        """Given a node's unique ID, mark it as done.

        This method takes the lock.

        :param str node_id: The node ID to mark as complete.
        """
        with self.lock:
            self.in_progress.remove(node_id)
            successors = list(self.graph.successors(node_id))
            self.graph.remove_node(node_id)
            self._find_new_additions(successors)
            self.inner.task_done()
            self.some_task_done.notify_all()
Given a node's unique ID, mark it as done.

        This method takes the lock.

        :param str node_id: The node ID to mark as complete.
        
core/dbt/graph/queue.py