Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-langgraph for 
openSUSE:Factory checked in at 2026-07-29 19:00:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-langgraph (Old)
 and      /work/SRC/openSUSE:Factory/.python-langgraph.new.2004 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-langgraph"

Wed Jul 29 19:00:04 2026 rev:4 rq:1368301 version:1.2.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-langgraph/python-langgraph.changes        
2026-07-10 17:45:09.001090285 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-langgraph.new.2004/python-langgraph.changes  
    2026-07-29 19:01:30.170308485 +0200
@@ -1,0 +2,8 @@
+Wed Jul 29 06:32:58 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 1.2.10:
+  * Type the v3 stream_events return and add native projections
+  * Expose trace_policy on add_node, then drop tags from
+    TracePolicy and revert its deletion
+
+-------------------------------------------------------------------

Old:
----
  langgraph-1.2.9.tar.gz

New:
----
  langgraph-1.2.10.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-langgraph.spec ++++++
--- /var/tmp/diff_new_pack.1RjQpf/_old  2026-07-29 19:01:31.042338562 +0200
+++ /var/tmp/diff_new_pack.1RjQpf/_new  2026-07-29 19:01:31.046338699 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-langgraph
-Version:        1.2.9
+Version:        1.2.10
 Release:        0
 Summary:        Library for building stateful, multi-actor applications with 
LLMs
 License:        MIT

++++++ langgraph-1.2.9.tar.gz -> langgraph-1.2.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langgraph-1.2.9/PKG-INFO 
new/langgraph-1.2.10/PKG-INFO
--- old/langgraph-1.2.9/PKG-INFO        2020-02-02 01:00:00.000000000 +0100
+++ new/langgraph-1.2.10/PKG-INFO       2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: langgraph
-Version: 1.2.9
+Version: 1.2.10
 Summary: Building stateful, multi-actor applications with LLMs
 Project-URL: Homepage, https://docs.langchain.com/oss/python/langgraph/overview
 Project-URL: Documentation, https://reference.langchain.com/python/langgraph/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langgraph-1.2.9/langgraph/pregel/main.py 
new/langgraph-1.2.10/langgraph/pregel/main.py
--- old/langgraph-1.2.9/langgraph/pregel/main.py        2020-02-02 
01:00:00.000000000 +0100
+++ new/langgraph-1.2.10/langgraph/pregel/main.py       2020-02-02 
01:00:00.000000000 +0100
@@ -3512,7 +3512,7 @@
         control: RunControl | None = None,
         transformers: Sequence[Callable[[tuple[str, ...]], Any]] | None = None,
         **kwargs: Any,
-    ) -> Any:
+    ) -> GraphRunStream:
         """Internal v3 sync streaming implementation. Public entry: 
stream_events(version='v3').
 
         Extra keyword arguments are forwarded to the underlying ``stream(...)``
@@ -3568,7 +3568,7 @@
         control: RunControl | None = None,
         transformers: Sequence[Callable[[tuple[str, ...]], Any]] | None = None,
         **kwargs: Any,
-    ) -> Any:
+    ) -> AsyncGraphRunStream:
         """Internal v3 async streaming implementation. Public entry: 
astream_events(version='v3').
 
         Extra keyword arguments are forwarded to the underlying 
``astream(...)``
@@ -3633,7 +3633,7 @@
         control: RunControl | None = None,
         transformers: Sequence[Callable[[tuple[str, ...]], Any]] | None = None,
         **kwargs: Any,
-    ) -> Any: ...
+    ) -> GraphRunStream: ...
 
     def stream_events(
         self,
@@ -3738,7 +3738,7 @@
         control: RunControl | None = None,
         transformers: Sequence[Callable[[tuple[str, ...]], Any]] | None = None,
         **kwargs: Any,
-    ) -> Awaitable[Any]: ...
+    ) -> Awaitable[AsyncGraphRunStream]: ...
 
     def astream_events(
         self,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langgraph-1.2.9/langgraph/stream/run_stream.py 
new/langgraph-1.2.10/langgraph/stream/run_stream.py
--- old/langgraph-1.2.9/langgraph/stream/run_stream.py  2020-02-02 
01:00:00.000000000 +0100
+++ new/langgraph-1.2.10/langgraph/stream/run_stream.py 2020-02-02 
01:00:00.000000000 +0100
@@ -12,7 +12,13 @@
 from langgraph.stream._types import ProtocolEvent
 
 if TYPE_CHECKING:
-    from langgraph.stream.transformers import SubgraphStatus
+    from langchain_core.language_models.chat_model_stream import (
+        AsyncChatModelStream,
+        ChatModelStream,
+    )
+
+    from langgraph.stream.stream_channel import StreamChannel
+    from langgraph.stream.transformers import LifecyclePayload, SubgraphStatus
 
 
 def _drive_until_done(pump: Callable[[], bool]) -> None:
@@ -48,6 +54,16 @@
         experimental and may change.
     """
 
+    # Native projections always registered by `stream_events(version="v3")`.
+    # Attached dynamically by the `setattr` loop in `__init__`; declared here
+    # so type checkers see them. Opt-in native projections (`updates`,
+    # `custom`, `checkpoints`, `debug`, `tasks`) are only present when their
+    # transformer is registered, so they are reached via `extensions[...]`.
+    values: StreamChannel[dict[str, Any]]
+    messages: StreamChannel[ChatModelStream]
+    lifecycle: StreamChannel[LifecyclePayload]
+    subgraphs: StreamChannel[SubgraphRunStream]
+
     def __init__(
         self,
         graph_iter: Iterator[Any] | None,
@@ -329,6 +345,16 @@
         experimental and may change.
     """
 
+    # Native projections always registered by `astream_events(version="v3")`.
+    # Attached dynamically by the `setattr` loop in `__init__`; declared here
+    # so type checkers see them. Opt-in native projections (`updates`,
+    # `custom`, `checkpoints`, `debug`, `tasks`) are only present when their
+    # transformer is registered, so they are reached via `extensions[...]`.
+    values: StreamChannel[dict[str, Any]]
+    messages: StreamChannel[AsyncChatModelStream]
+    lifecycle: StreamChannel[LifecyclePayload]
+    subgraphs: StreamChannel[AsyncSubgraphRunStream]
+
     def __init__(
         self,
         graph_aiter: AsyncIterator[Any] | None,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langgraph-1.2.9/pyproject.toml 
new/langgraph-1.2.10/pyproject.toml
--- old/langgraph-1.2.9/pyproject.toml  2020-02-02 01:00:00.000000000 +0100
+++ new/langgraph-1.2.10/pyproject.toml 2020-02-02 01:00:00.000000000 +0100
@@ -4,7 +4,7 @@
 
 [project]
 name = "langgraph"
-version = "1.2.9"
+version = "1.2.10"
 description = "Building stateful, multi-actor applications with LLMs"
 authors = []
 requires-python = ">=3.10"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langgraph-1.2.9/tests/test_stream_events_v3.py 
new/langgraph-1.2.10/tests/test_stream_events_v3.py
--- old/langgraph-1.2.9/tests/test_stream_events_v3.py  2020-02-02 
01:00:00.000000000 +0100
+++ new/langgraph-1.2.10/tests/test_stream_events_v3.py 2020-02-02 
01:00:00.000000000 +0100
@@ -12,6 +12,10 @@
 from typing import Annotated, Any, TypeVar
 
 import pytest
+from langchain_core.language_models.chat_model_stream import (
+    AsyncChatModelStream,
+    ChatModelStream,
+)
 from langchain_core.messages import AIMessage, BaseMessage
 from langgraph.checkpoint.memory import InMemorySaver
 from pydantic import BaseModel, ValidationError
@@ -24,6 +28,14 @@
 from langgraph.graph import StateGraph
 from langgraph.graph.message import MessagesState
 from langgraph.runtime import RunControl
+from langgraph.stream import (
+    AsyncGraphRunStream,
+    AsyncSubgraphRunStream,
+    GraphRunStream,
+    LifecyclePayload,
+    StreamChannel,
+    SubgraphRunStream,
+)
 from langgraph.types import (
     CheckpointPayload,
     CheckpointStreamPart,
@@ -1178,3 +1190,32 @@
         assert_type(part, DebugStreamPart[_StateT])
         assert_type(part["data"], DebugPayload[_StateT])
     assert_type(part["ns"], tuple[str, ...])
+
+
+# --- v3 stream_events return / projection typing checks ---
+# These functions are never called at runtime; `ty` validates the
+# assert_type calls. They pin the public typing surface of
+# stream_events(version="v3") / astream_events(version="v3"): the handle
+# type and the always-registered native projections.
+
+
+def _check_stream_events_v3_typing() -> None:
+    """Compile-time checks for sync v3 typing — never called at runtime."""
+    graph = _make_simple_graph().compile()
+    run = graph.stream_events(_SIMPLE_INPUT, version="v3")
+    assert_type(run, GraphRunStream)
+    assert_type(run.values, StreamChannel[dict[str, Any]])
+    assert_type(run.messages, StreamChannel[ChatModelStream])
+    assert_type(run.lifecycle, StreamChannel[LifecyclePayload])
+    assert_type(run.subgraphs, StreamChannel[SubgraphRunStream])
+
+
+async def _check_astream_events_v3_typing() -> None:
+    """Compile-time checks for async v3 typing — never called at runtime."""
+    graph = _make_simple_graph().compile()
+    run = await graph.astream_events(_SIMPLE_INPUT, version="v3")
+    assert_type(run, AsyncGraphRunStream)
+    assert_type(run.values, StreamChannel[dict[str, Any]])
+    assert_type(run.messages, StreamChannel[AsyncChatModelStream])
+    assert_type(run.lifecycle, StreamChannel[LifecyclePayload])
+    assert_type(run.subgraphs, StreamChannel[AsyncSubgraphRunStream])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langgraph-1.2.9/uv.lock new/langgraph-1.2.10/uv.lock
--- old/langgraph-1.2.9/uv.lock 2020-02-02 01:00:00.000000000 +0100
+++ new/langgraph-1.2.10/uv.lock        2020-02-02 01:00:00.000000000 +0100
@@ -1345,7 +1345,7 @@
 
 [[package]]
 name = "jupyterlab"
-version = "4.5.9"
+version = "4.5.10"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "async-lru" },
@@ -1362,10 +1362,11 @@
     { name = "tomli", marker = "python_full_version < '3.11'" },
     { name = "tornado" },
     { name = "traitlets" },
+    { name = "typing-extensions", marker = "python_full_version < '3.12'" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/e8/52/a8d4895bef501ffeb6af448e8bf7079541c7772978211963aa653518c2d9/jupyterlab-4.5.9.tar.gz";,
 hash = 
"sha256:dd79a073fecae7a39066ea99e4627ed6c76269ac926e95a810e1e1df6358d865", size 
= 23994445, upload-time = "2026-06-17T15:42:16.406Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/74/24/621aa20ec0d2fe72f52095bda0fc1be7738ac21aabe4129ff623140d5cdf/jupyterlab-4.5.10.tar.gz";,
 hash = 
"sha256:77e8d80b78be59b2eaba2154562e21caa6e79c2f1281d6f486584f7144ee2f47", size 
= 23998879, upload-time = "2026-07-21T12:43:27.324Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/c6/bb/2f9b425062416fba58f580c9b89c3b07277ccdf0a292501fedbca8ea00ea/jupyterlab-4.5.9-py3-none-any.whl";,
 hash = 
"sha256:5ff0f908e8ac0afbed32b106fdef360f101c0a6654d1bf4a81e98a293ae1b336", size 
= 12449803, upload-time = "2026-06-17T15:42:12.18Z" },
+    { url = 
"https://files.pythonhosted.org/packages/9f/c9/940f95f17ee4e413ad252bf8d4f2ee9a341f18cfeda87775fef3d7847321/jupyterlab-4.5.10-py3-none-any.whl";,
 hash = 
"sha256:5967ca61e692e67a2f30b5a2b901c941dc6ce56c0b0e357bc6d34fed5ec095f6", size 
= 12452502, upload-time = "2026-07-21T12:43:23.542Z" },
 ]
 
 [[package]]
@@ -1438,7 +1439,7 @@
 
 [[package]]
 name = "langgraph"
-version = "1.2.9"
+version = "1.2.10"
 source = { editable = "." }
 dependencies = [
     { name = "langchain-core" },
@@ -1782,7 +1783,7 @@
 requires-dist = [
     { name = "click", specifier = ">=8.1.7" },
     { name = "httpx", specifier = ">=0.24.0" },
-    { name = "langgraph-api", marker = "python_full_version >= '3.11' and 
extra == 'inmem'", specifier = ">=0.5.35,<0.12.0" },
+    { name = "langgraph-api", marker = "python_full_version >= '3.11' and 
extra == 'inmem'", specifier = ">=0.5.35,<1.0.0" },
     { name = "langgraph-runtime-inmem", marker = "python_full_version >= 
'3.11' and extra == 'inmem'", specifier = ">=0.7" },
     { name = "langgraph-sdk", marker = "python_full_version >= '3.11'", 
specifier = ">=0.1.0" },
     { name = "pathspec", specifier = ">=0.11.0" },
@@ -2067,14 +2068,14 @@
 
 [[package]]
 name = "mistune"
-version = "3.2.1"
+version = "3.3.0"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "typing-extensions", marker = "python_full_version < '3.11'" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/ca/84/620cc3f7e3adf6f5067e10f4dbae71295d8f9e16d5d3f9ef97c40f2f592c/mistune-3.2.1.tar.gz";,
 hash = 
"sha256:7c8e5501d38bac1582e067e46c8343f17d57ea1aaa735823f3aba1fd59c88a28", size 
= 98003, upload-time = "2026-05-03T14:33:22.312Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/84/9c/1939635275ec7258e2b43b00dafabc36d89ad11aa7838d375dc1b0e561cb/mistune-3.3.0.tar.gz";,
 hash = 
"sha256:3074ec4c61b384abe725128e4dcbb483f5a09cc4632012505cdee655d3a113b9", size 
= 110936, upload-time = "2026-06-21T13:11:39.458Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/2a/7f/a946aa4f8752b37102b41e64dca18a1976ac705c3a0d1dfe74d820a02552/mistune-3.2.1-py3-none-any.whl";,
 hash = 
"sha256:78cdb0ba5e938053ccf63651b352508d2efa9411dc8810bfb05f2dc5140c0048", size 
= 53749, upload-time = "2026-05-03T14:33:20.551Z" },
+    { url = 
"https://files.pythonhosted.org/packages/b7/76/b90f9d48d43fbd80a79a20d3eab2e5109859c7a56dc663b23187385898f3/mistune-3.3.0-py3-none-any.whl";,
 hash = 
"sha256:a758e578acda49d8195f9a860b132dae2cf7bf409381393b1c4e6e489a65397b", size 
= 61250, upload-time = "2026-06-21T13:11:37.938Z" },
 ]
 
 [[package]]
@@ -3383,11 +3384,11 @@
 
 [[package]]
 name = "setuptools"
-version = "80.9.0"
+version = "83.0.0"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz";,
 hash = 
"sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size 
= 1319958, upload-time = "2025-05-27T00:56:51.443Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/34/26/f5d29e25ffdb535afef2d35cdb55b325298f96debd670da4c325e08d70f4/setuptools-83.0.0.tar.gz";,
 hash = 
"sha256:025bccbbf0fa05b6192bc64ae1e7b16e001fd6d6d4d5de03c97b1c1ade523bef", size 
= 1154254, upload-time = "2026-07-04T15:31:22.699Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl";,
 hash = 
"sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size 
= 1201486, upload-time = "2025-05-27T00:56:49.664Z" },
+    { url = 
"https://files.pythonhosted.org/packages/5d/40/e1e72872c6354b306daef1703549e8e83b4d43cfea356311bf722a043752/setuptools-83.0.0-py3-none-any.whl";,
 hash = 
"sha256:29b23c360f22f414dc7336bb39178cc7bcbf6021ed2733cde173f09dba19abb3", size 
= 1008090, upload-time = "2026-07-04T15:31:20.885Z" },
 ]
 
 [[package]]
@@ -3401,11 +3402,11 @@
 
 [[package]]
 name = "soupsieve"
-version = "2.8.1"
+version = "2.8.4"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/89/23/adf3796d740536d63a6fbda113d07e60c734b6ed5d3058d1e47fc0495e47/soupsieve-2.8.1.tar.gz";,
 hash = 
"sha256:4cf733bc50fa805f5df4b8ef4740fc0e0fa6218cf3006269afd3f9d6d80fd350", size 
= 117856, upload-time = "2025-12-18T13:50:34.655Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/47/2c/0a5f6f8ee0d5589e48c7640213ed5175d52cf540a06725b628cc1a45d6ce/soupsieve-2.8.4.tar.gz";,
 hash = 
"sha256:e121fd02e975c695e4e9e8774a5ee35d74714b59307868dcc5319ad2d9e3328e", size 
= 121110, upload-time = "2026-05-24T13:55:57.154Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/48/f3/b67d6ea49ca9154453b6d70b34ea22f3996b9fa55da105a79d8732227adc/soupsieve-2.8.1-py3-none-any.whl";,
 hash = 
"sha256:a11fe2a6f3d76ab3cf2de04eb339c1be5b506a8a47f2ceb6d139803177f85434", size 
= 36710, upload-time = "2025-12-18T13:50:33.267Z" },
+    { url = 
"https://files.pythonhosted.org/packages/5e/f5/0c41cb68dcae6b7de4fac4188a3a9589e21fb31df21ea3a2e888db95e6c9/soupsieve-2.8.4-py3-none-any.whl";,
 hash = 
"sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65", size 
= 37304, upload-time = "2026-05-24T13:55:55.406Z" },
 ]
 
 [[package]]

Reply via email to