def _get_node_by_path_list(
        self, dataset_rows: "DataTable", path_list: list[str], name: str
    ) -> "Node":
        """
        Gets node that correspond some path list, e.g ["data-lakes", "dogs-and-cats"]
        """
        parent = "/".join(path_list)
        dr = dataset_rows
        de = dr.dir_expansion()
        q = de.query(
            dr.select().where(dr.c("is_latest") == true()).subquery(),
            column=dr.column,
        ).subquery()
        q = self.expand_query(de, q, dr)

        q = q.where(de.c(q, "path") == get_path(parent, name)).order_by(
            de.c(q, "source"), de.c(q, "path"), de.c(q, "version")
        )
        row = next(self.dataset_rows_select(q), None)
        if not row:
            path = f"{parent}/{name}"
            raise FileNotFoundError(f"Unable to resolve path {path!r}")
        return Node(*row)

        Gets node that correspond some path list, e.g ["data-lakes", "dogs-and-cats"]
        
src/datachain/data_storage/warehouse.py