diff --git a/.github/workflows/_test.yml b/.github/workflows/_test.yml index 83a5d9837..3a4f0d4d2 100644 --- a/.github/workflows/_test.yml +++ b/.github/workflows/_test.yml @@ -33,6 +33,11 @@ jobs: poetry-version: ${{ env.POETRY_VERSION }} working-directory: ${{ inputs.working-directory }} cache-key: test-${{ inputs.working-directory }} + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_RO_TOKEN }} - name: Install dependencies shell: bash diff --git a/.github/workflows/_test_langgraph.yml b/.github/workflows/_test_langgraph.yml index 3f6c7c2b8..2aad17993 100644 --- a/.github/workflows/_test_langgraph.yml +++ b/.github/workflows/_test_langgraph.yml @@ -18,8 +18,10 @@ jobs: - "3.12" - "3.13" core-version: - - ">=0.2.39,<0.3.0" - "latest" + include: + - python-version: "3.11" + core-version: ">=0.2.39,<0.3.0" defaults: run: @@ -33,6 +35,11 @@ jobs: python-version: ${{ matrix.python-version }} poetry-version: ${{ env.POETRY_VERSION }} cache-key: test-langgraph + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_RO_TOKEN }} - name: Install dependencies shell: bash diff --git a/.github/workflows/_test_scheduler_kafka.yml b/.github/workflows/_test_scheduler_kafka.yml index 8bfdfb18c..da01a9bd8 100644 --- a/.github/workflows/_test_scheduler_kafka.yml +++ b/.github/workflows/_test_scheduler_kafka.yml @@ -27,6 +27,11 @@ jobs: python-version: ${{ matrix.python-version }} poetry-version: ${{ env.POETRY_VERSION }} cache-key: test-scheduler-kafka + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_RO_TOKEN }} - name: Install dependencies shell: bash diff --git a/examples/tutorials/tool-calling-agent-local.ipynb b/examples/tutorials/tool-calling-agent-local.ipynb deleted file mode 100644 index 71bb26be7..000000000 --- a/examples/tutorials/tool-calling-agent-local.ipynb +++ /dev/null @@ -1,33 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "8a63cfe9", - "metadata": {}, - "source": [ - "This file has been moved to https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/tutorials/tool-calling-agent-local.ipynb" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/libs/langgraph/langgraph/pregel/__init__.py b/libs/langgraph/langgraph/pregel/__init__.py index 2109d4b39..01d53feab 100644 --- a/libs/langgraph/langgraph/pregel/__init__.py +++ b/libs/langgraph/langgraph/pregel/__init__.py @@ -252,8 +252,8 @@ class Pregel(Runnable[Union[dict[str, Any], Any], Union[dict[str, Any], Any]]): if auto_validate: self.validate() - def copy(self, update: dict[str, Any]) -> Self: - attrs = {**self.__dict__, **update} + def copy(self, update: dict[str, Any] | None = None) -> Self: + attrs = {**self.__dict__, **(update or {})} return self.__class__(**attrs) def with_config(self, config: RunnableConfig | None = None, **kwargs: Any) -> Self: diff --git a/libs/langgraph/langgraph/pregel/remote.py b/libs/langgraph/langgraph/pregel/remote.py index f96060a5a..54db4ad60 100644 --- a/libs/langgraph/langgraph/pregel/remote.py +++ b/libs/langgraph/langgraph/pregel/remote.py @@ -154,6 +154,8 @@ class RemoteGraph(PregelProtocol, Runnable): interrupts=tuple(interrupts), state=self._create_state_snapshot(task["state"]) if task["state"] + else {"configurable": task["checkpoint"]} + if task["checkpoint"] else None, result=task.get("result"), )