Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-langchain-core for 
openSUSE:Factory checked in at 2026-09-08 16:53:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-langchain-core (Old)
 and      /work/SRC/openSUSE:Factory/.python-langchain-core.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-langchain-core"

Tue Sep  8 16:53:26 2026 rev:13 rq:1376077 version:1.6.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-langchain-core/python-langchain-core.changes  
    2026-08-29 17:44:19.982228288 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-langchain-core.new.1265/python-langchain-core.changes
    2026-09-08 16:54:06.058924255 +0200
@@ -1,0 +2,9 @@
+Mon Sep  7 06:35:07 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 1.6.2:
+  * bedrock_converse/google_genai content_blocks translators no
+    longer mutate the caller's message.content
+  * openai: an "async" key on a tool-call block is carried into
+    extras
+
+-------------------------------------------------------------------

Old:
----
  langchain_core-1.6.1.tar.gz

New:
----
  langchain_core-1.6.2.tar.gz

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

Other differences:
------------------
++++++ python-langchain-core.spec ++++++
--- /var/tmp/diff_new_pack.F4foT0/_old  2026-09-08 16:54:06.842957148 +0200
+++ /var/tmp/diff_new_pack.F4foT0/_new  2026-09-08 16:54:06.846957316 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-langchain-core
-Version:        1.6.1
+Version:        1.6.2
 Release:        0
 Summary:        Building applications with LLMs through composability
 License:        MIT

++++++ langchain_core-1.6.1.tar.gz -> langchain_core-1.6.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langchain_core-1.6.1/PKG-INFO 
new/langchain_core-1.6.2/PKG-INFO
--- old/langchain_core-1.6.1/PKG-INFO   2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_core-1.6.2/PKG-INFO   2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.5
 Name: langchain-core
-Version: 1.6.1
+Version: 1.6.2
 Summary: Building applications with LLMs through composability
 Project-URL: Homepage, https://docs.langchain.com/
 Project-URL: Documentation, 
https://reference.langchain.com/python/langchain_core/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/langchain_core-1.6.1/langchain_core/messages/block_translators/bedrock_converse.py
 
new/langchain_core-1.6.2/langchain_core/messages/block_translators/bedrock_converse.py
--- 
old/langchain_core-1.6.1/langchain_core/messages/block_translators/bedrock_converse.py
      2020-02-02 01:00:00.000000000 +0100
+++ 
new/langchain_core-1.6.2/langchain_core/messages/block_translators/bedrock_converse.py
      2020-02-02 01:00:00.000000000 +0100
@@ -159,11 +159,16 @@
         # Converse outputs multiple chunks containing response metadata
         return []
 
-    if isinstance(message.content, str):
-        message.content = [{"type": "text", "text": message.content}]
+    # Translated through a local list so that reading `content_blocks` leaves
+    # `message.content` untouched.
+    content: list[str | dict[str, Any]] = (
+        [{"type": "text", "text": message.content}]
+        if isinstance(message.content, str)
+        else message.content
+    )
 
     def _iter_blocks() -> Iterator[types.ContentBlock]:
-        for block in message.content:
+        for block in content:
             if not isinstance(block, dict):
                 continue
             block_type = block.get("type")
@@ -269,12 +274,17 @@
                 yield tool_call_chunk
 
             else:
-                new_block: types.NonStandardContentBlock = {
-                    "type": "non_standard",
-                    "value": block,
-                }
-                if "index" in new_block["value"]:
-                    new_block["index"] = new_block["value"].pop("index")
+                if "index" in block:
+                    # Copy before lifting `index` off the block.
+                    value = block.copy()
+                    index = value.pop("index")
+                    new_block: types.NonStandardContentBlock = {
+                        "type": "non_standard",
+                        "value": value,
+                        "index": index,
+                    }
+                else:
+                    new_block = {"type": "non_standard", "value": block}
                 yield new_block
 
     return list(_iter_blocks())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/langchain_core-1.6.1/langchain_core/messages/block_translators/google_genai.py
 
new/langchain_core-1.6.2/langchain_core/messages/block_translators/google_genai.py
--- 
old/langchain_core-1.6.1/langchain_core/messages/block_translators/google_genai.py
  2020-02-02 01:00:00.000000000 +0100
+++ 
new/langchain_core-1.6.2/langchain_core/messages/block_translators/google_genai.py
  2020-02-02 01:00:00.000000000 +0100
@@ -527,10 +527,15 @@
     if grounding_metadata:
         citations = 
translate_grounding_metadata_to_citations(grounding_metadata)
 
-        for block in converted_blocks:
+        for i, block in enumerate(converted_blocks):
             if block["type"] == "text" and citations:
-                # Add citations to text blocks (only the first text block)
-                block["annotations"] = cast("list[types.Annotation]", 
citations)
+                # Add citations to text blocks (only the first text block).
+                # Replaced rather than assigned into: `block` is the caller's 
own
+                # dict from `message.content`.
+                converted_blocks[i] = cast(
+                    "types.TextContentBlock",
+                    {**block, "annotations": citations},
+                )
                 break
 
     # Audio is stored on the message.additional_kwargs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/langchain_core-1.6.1/langchain_core/messages/block_translators/openai.py 
new/langchain_core-1.6.2/langchain_core/messages/block_translators/openai.py
--- 
old/langchain_core-1.6.1/langchain_core/messages/block_translators/openai.py    
    2020-02-02 01:00:00.000000000 +0100
+++ 
new/langchain_core-1.6.2/langchain_core/messages/block_translators/openai.py    
    2020-02-02 01:00:00.000000000 +0100
@@ -735,7 +735,7 @@
                         tool_call_block["extras"]["item_id"] = block["id"]
                     if "index" in block:
                         tool_call_block["index"] = f"lc_tc_{block['index']}"
-                    for extra_key in ("status", "namespace"):
+                    for extra_key in ("status", "namespace", "async"):
                         if extra_key in block:
                             if "extras" not in tool_call_block:
                                 tool_call_block["extras"] = {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langchain_core-1.6.1/langchain_core/version.py 
new/langchain_core-1.6.2/langchain_core/version.py
--- old/langchain_core-1.6.1/langchain_core/version.py  2020-02-02 
01:00:00.000000000 +0100
+++ new/langchain_core-1.6.2/langchain_core/version.py  2020-02-02 
01:00:00.000000000 +0100
@@ -1,3 +1,3 @@
 """Version information for `langchain-core`."""
 
-VERSION = "1.6.1"
+VERSION = "1.6.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langchain_core-1.6.1/pyproject.toml 
new/langchain_core-1.6.2/pyproject.toml
--- old/langchain_core-1.6.1/pyproject.toml     2020-02-02 01:00:00.000000000 
+0100
+++ new/langchain_core-1.6.2/pyproject.toml     2020-02-02 01:00:00.000000000 
+0100
@@ -21,7 +21,7 @@
     "Topic :: Software Development :: Libraries :: Python Modules",
 ]
 
-version = "1.6.1"
+version = "1.6.2"
 requires-python = ">=3.10.0,<4.0.0"
 dependencies = [
     "langsmith>=0.3.45,<1.0.0",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/langchain_core-1.6.1/tests/unit_tests/messages/block_translators/test_bedrock_converse.py
 
new/langchain_core-1.6.2/tests/unit_tests/messages/block_translators/test_bedrock_converse.py
--- 
old/langchain_core-1.6.1/tests/unit_tests/messages/block_translators/test_bedrock_converse.py
       2020-02-02 01:00:00.000000000 +0100
+++ 
new/langchain_core-1.6.2/tests/unit_tests/messages/block_translators/test_bedrock_converse.py
       2020-02-02 01:00:00.000000000 +0100
@@ -1,3 +1,8 @@
+from copy import deepcopy
+from typing import Any
+
+import pytest
+
 from langchain_core.messages import AIMessage, AIMessageChunk, HumanMessage
 from langchain_core.messages import content as types
 
@@ -119,10 +124,12 @@
             "value": {"type": "something_else", "foo": "bar"},
         },
     ]
+    original_content = deepcopy(message.content)
+
     assert message.content_blocks == expected_content
 
     # Check no mutation
-    assert message.content != expected_content
+    assert message.content == original_content
 
 
 def test_convert_to_v1_from_converse_chunk() -> None:
@@ -377,3 +384,66 @@
     ]
 
     assert message.content_blocks == expected
+
+
[email protected]("message_class", [AIMessage, AIMessageChunk])
[email protected](
+    "content",
+    [
+        "hello",
+        [{"type": "custom", "payload": "value", "index": 3}],
+        [{"type": "custom", "payload": "value"}],
+        [{"type": "text", "text": "hello", "index": 0}],
+    ],
+)
+def test_content_blocks_does_not_mutate_content(
+    message_class: type[AIMessage],
+    content: str | list[str | dict[Any, Any]],
+) -> None:
+    """Reading `content_blocks` must leave `message.content` unchanged."""
+    message = message_class(
+        content=deepcopy(content),
+        response_metadata={"model_provider": "bedrock_converse"},
+    )
+    original_content = deepcopy(message.content)
+
+    first_read = message.content_blocks
+
+    assert message.content == original_content
+
+    # Repeated reads of an unchanged message must agree
+    assert message.content_blocks == first_read
+
+
[email protected]("message_class", [AIMessage, AIMessageChunk])
+def test_non_standard_block_index_is_lifted_not_removed(
+    message_class: type[AIMessage],
+) -> None:
+    """`index` moves onto the standardized block without leaving the source."""
+    message = message_class(
+        content=[{"type": "custom", "payload": "value", "index": 3}],
+        response_metadata={"model_provider": "bedrock_converse"},
+    )
+
+    assert message.content_blocks == [
+        {
+            "type": "non_standard",
+            "value": {"type": "custom", "payload": "value"},
+            "index": 3,
+        }
+    ]
+    assert message.content == [{"type": "custom", "payload": "value", "index": 
3}]
+
+
[email protected]("message_class", [AIMessage, AIMessageChunk])
+def test_string_content_is_not_replaced_with_blocks(
+    message_class: type[AIMessage],
+) -> None:
+    """String content is translated through a local list, not written back."""
+    message = message_class(
+        content="hello",
+        response_metadata={"model_provider": "bedrock_converse"},
+    )
+
+    assert message.content_blocks == [{"type": "text", "text": "hello"}]
+    assert message.content == "hello"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/langchain_core-1.6.1/tests/unit_tests/messages/block_translators/test_google_genai.py
 
new/langchain_core-1.6.2/tests/unit_tests/messages/block_translators/test_google_genai.py
--- 
old/langchain_core-1.6.1/tests/unit_tests/messages/block_translators/test_google_genai.py
   2020-02-02 01:00:00.000000000 +0100
+++ 
new/langchain_core-1.6.2/tests/unit_tests/messages/block_translators/test_google_genai.py
   2020-02-02 01:00:00.000000000 +0100
@@ -1,8 +1,9 @@
 """Tests for Google GenAI block translator."""
 
+from copy import deepcopy
 from typing import Any
 
-from langchain_core.messages import AIMessageChunk
+from langchain_core.messages import AIMessage, AIMessageChunk
 from langchain_core.messages.block_translators.google_genai import (
     translate_grounding_metadata_to_citations,
 )
@@ -331,3 +332,31 @@
 
     assert indices == [0, 1, 2]
     assert len(indices) == len(set(indices))
+
+
+_GROUNDING_METADATA = {
+    "grounding_chunks": [{"web": {"uri": "https://example.com";, "title": 
"Example"}}],
+    "grounding_supports": [
+        {
+            "segment": {"start_index": 0, "end_index": 5},
+            "grounding_chunk_indices": [0],
+        }
+    ],
+}
+
+
+def test_grounding_citations_do_not_mutate_content() -> None:
+    """Attaching grounding citations must leave `message.content` unchanged."""
+    message = AIMessage(
+        content=[{"type": "text", "text": "hello"}],
+        response_metadata={
+            "model_provider": "google_genai",
+            "grounding_metadata": _GROUNDING_METADATA,
+        },
+    )
+    original_content = deepcopy(message.content)
+
+    blocks = message.content_blocks
+
+    assert message.content == original_content
+    assert "annotations" in blocks[0]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/langchain_core-1.6.1/tests/unit_tests/messages/block_translators/test_openai.py
 
new/langchain_core-1.6.2/tests/unit_tests/messages/block_translators/test_openai.py
--- 
old/langchain_core-1.6.1/tests/unit_tests/messages/block_translators/test_openai.py
 2020-02-02 01:00:00.000000000 +0100
+++ 
new/langchain_core-1.6.2/tests/unit_tests/messages/block_translators/test_openai.py
 2020-02-02 01:00:00.000000000 +0100
@@ -603,3 +603,53 @@
     expected = {"type": "input_file", "file_id": "file-abc123"}
     result = convert_to_openai_data_block(block, api="responses")
     assert result == expected
+
+
+def test_convert_to_v1_from_responses_async_tool_call() -> None:
+    """Test that the `async` flag on a function call reaches `tool_call` 
extras."""
+    message = AIMessage(
+        [
+            {
+                "type": "function_call",
+                "call_id": "call_A",
+                "id": "fc_1",
+                "name": "lookup_price",
+                "arguments": '{"sku": "WIDGET"}',
+                "async": True,
+            },
+            {
+                "type": "function_call",
+                "call_id": "call_B",
+                "id": "fc_2",
+                "name": "get_time",
+                "arguments": "{}",
+            },
+        ],
+        tool_calls=[
+            {
+                "type": "tool_call",
+                "id": "call_A",
+                "name": "lookup_price",
+                "args": {"sku": "WIDGET"},
+            },
+            {"type": "tool_call", "id": "call_B", "name": "get_time", "args": 
{}},
+        ],
+        response_metadata={"model_provider": "openai"},
+    )
+    expected_content: list[types.ContentBlock] = [
+        {
+            "type": "tool_call",
+            "id": "call_A",
+            "name": "lookup_price",
+            "args": {"sku": "WIDGET"},
+            "extras": {"item_id": "fc_1", "async": True},
+        },
+        {
+            "type": "tool_call",
+            "id": "call_B",
+            "name": "get_time",
+            "args": {},
+            "extras": {"item_id": "fc_2"},
+        },
+    ]
+    assert message.content_blocks == expected_content
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langchain_core-1.6.1/uv.lock 
new/langchain_core-1.6.2/uv.lock
--- old/langchain_core-1.6.1/uv.lock    2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_core-1.6.2/uv.lock    2020-02-02 01:00:00.000000000 +0100
@@ -523,7 +523,7 @@
 version = "1.3.1"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
-    { name = "typing-extensions" },
+    { name = "typing-extensions", marker = "python_full_version < '3.11'" },
 ]
 sdist = { url = 
"https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz";,
 hash = 
"sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size 
= 30371, upload-time = "2025-11-21T23:01:54.787Z" }
 wheels = [
@@ -685,17 +685,17 @@
     "python_full_version < '3.11' and platform_python_implementation != 
'PyPy'",
 ]
 dependencies = [
-    { name = "colorama", marker = "sys_platform == 'win32'" },
-    { name = "decorator" },
-    { name = "exceptiongroup" },
-    { name = "jedi" },
-    { name = "matplotlib-inline" },
-    { name = "pexpect", marker = "sys_platform != 'emscripten' and 
sys_platform != 'win32'" },
-    { name = "prompt-toolkit" },
-    { name = "pygments" },
-    { name = "stack-data" },
-    { name = "traitlets" },
-    { name = "typing-extensions" },
+    { name = "colorama", marker = "python_full_version < '3.11' and 
sys_platform == 'win32'" },
+    { name = "decorator", marker = "python_full_version < '3.11'" },
+    { name = "exceptiongroup", marker = "python_full_version < '3.11'" },
+    { name = "jedi", marker = "python_full_version < '3.11'" },
+    { name = "matplotlib-inline", marker = "python_full_version < '3.11'" },
+    { name = "pexpect", marker = "python_full_version < '3.11' and 
sys_platform != 'emscripten' and sys_platform != 'win32'" },
+    { name = "prompt-toolkit", marker = "python_full_version < '3.11'" },
+    { name = "pygments", marker = "python_full_version < '3.11'" },
+    { name = "stack-data", marker = "python_full_version < '3.11'" },
+    { name = "traitlets", marker = "python_full_version < '3.11'" },
+    { name = "typing-extensions", marker = "python_full_version < '3.11'" },
 ]
 sdist = { url = 
"https://files.pythonhosted.org/packages/85/31/10ac88f3357fc276dc8a64e8880c82e80e7459326ae1d0a211b40abf6665/ipython-8.37.0.tar.gz";,
 hash = 
"sha256:ca815841e1a41a1e6b73a0b08f3038af9b2252564d01fc405356d34033012216", size 
= 5606088, upload-time = "2025-05-31T16:39:09.613Z" }
 wheels = [
@@ -717,17 +717,17 @@
     "python_full_version >= '3.11' and python_full_version < '3.13' and 
platform_python_implementation != 'PyPy'",
 ]
 dependencies = [
-    { name = "colorama", marker = "sys_platform == 'win32'" },
-    { name = "decorator" },
-    { name = "ipython-pygments-lexers" },
-    { name = "jedi" },
-    { name = "matplotlib-inline" },
-    { name = "pexpect", marker = "sys_platform != 'emscripten' and 
sys_platform != 'win32'" },
-    { name = "prompt-toolkit" },
-    { name = "pygments" },
-    { name = "stack-data" },
-    { name = "traitlets" },
-    { name = "typing-extensions", marker = "python_full_version < '3.12'" },
+    { name = "colorama", marker = "python_full_version >= '3.11' and 
sys_platform == 'win32'" },
+    { name = "decorator", marker = "python_full_version >= '3.11'" },
+    { name = "ipython-pygments-lexers", marker = "python_full_version >= 
'3.11'" },
+    { name = "jedi", marker = "python_full_version >= '3.11'" },
+    { name = "matplotlib-inline", marker = "python_full_version >= '3.11'" },
+    { name = "pexpect", marker = "python_full_version >= '3.11' and 
sys_platform != 'emscripten' and sys_platform != 'win32'" },
+    { name = "prompt-toolkit", marker = "python_full_version >= '3.11'" },
+    { name = "pygments", marker = "python_full_version >= '3.11'" },
+    { name = "stack-data", marker = "python_full_version >= '3.11'" },
+    { name = "traitlets", marker = "python_full_version >= '3.11'" },
+    { name = "typing-extensions", marker = "python_full_version == '3.11.*'" },
 ]
 sdist = { url = 
"https://files.pythonhosted.org/packages/12/51/a703c030f4928646d390b4971af4938a1b10c9dfce694f0d99a0bb073cb2/ipython-9.8.0.tar.gz";,
 hash = 
"sha256:8e4ce129a627eb9dd221c41b1d2cdaed4ef7c9da8c17c63f6f578fe231141f83", size 
= 4424940, upload-time = "2025-12-03T10:18:24.353Z" }
 wheels = [
@@ -739,7 +739,7 @@
 version = "1.1.1"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
-    { name = "pygments" },
+    { name = "pygments", marker = "python_full_version >= '3.11'" },
 ]
 sdist = { url = 
"https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz";,
 hash = 
"sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size 
= 8393, upload-time = "2025-01-17T11:24:34.505Z" }
 wheels = [
@@ -1073,7 +1073,7 @@
 
 [[package]]
 name = "langchain-core"
-version = "1.6.1"
+version = "1.6.2"
 source = { editable = "." }
 dependencies = [
     { name = "httpx" },
@@ -1212,7 +1212,7 @@
     { name = "pytest-codspeed" },
     { name = "pytest-recording" },
     { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" },
-    { name = "syrupy", specifier = ">=5.0.0,<6.0.0" },
+    { name = "syrupy", specifier = ">=5.0.0,<7.0.0" },
     { name = "vcrpy", specifier = ">=8.2.1,<9.0.0" },
 ]
 
@@ -1551,14 +1551,14 @@
 
 [[package]]
 name = "mistune"
-version = "3.3.0"
+version = "3.3.3"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "typing-extensions", marker = "python_full_version < '3.11'" },
 ]
-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" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/7b/a5/2dab368d6950e6808904dec98f54c7e726ee7be4a0c6afe00e6e011bd52d/mistune-3.3.3.tar.gz";,
 hash = 
"sha256:c4c6c0c840b8637a2e9b8b6d607eb7c8f00888bf14c754409bcd339e848c2477", size 
= 115363, upload-time = "2026-07-09T06:18:05.268Z" }
 wheels = [
-    { 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" },
+    { url = 
"https://files.pythonhosted.org/packages/89/70/b1e4737b84163db5bb1dfde6f216dbfbf32783330a9989c965e121172830/mistune-3.3.3-py3-none-any.whl";,
 hash = 
"sha256:99de1585e42dcbd826faa9e11a202727a5e202e4e4722a4c69ac1ff615793dd7", size 
= 63569, upload-time = "2026-07-09T06:18:03.839Z" },
 ]
 
 [[package]]
@@ -2978,19 +2978,19 @@
 
 [[package]]
 name = "tornado"
-version = "6.5.7"
+version = "6.5.8"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/64/24/95ec527ad67b76d59299e5465b3935d05e4294b7e0290a3924b7487df30b/tornado-6.5.7.tar.gz";,
 hash = 
"sha256:66c513a76cda70d53907bc27cf1447557699c2e95aa48ba27a442ff61c3ddfc2", size 
= 519252, upload-time = "2026-06-08T17:34:51.232Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/10/d3/343e5bb989d6515b1646cf3d40135d73f3d5e45339bded401b56cdac24dd/tornado-6.5.8.tar.gz";,
 hash = 
"sha256:9452e1b208a8bd771e2cb1f2ff564985b9b214bdebbe622793e1799e0a6bd23f", size 
= 520493, upload-time = "2026-08-07T02:12:42.971Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/02/dc/c7043cab6fed8ae159fc1923ce829ada35c4dbd797d408a43858ffaf9639/tornado-6.5.7-cp39-abi3-macosx_10_9_universal2.whl";,
 hash = 
"sha256:148b2eb15c2c765a50796172c1e499649b35f30d2e3c3d3e15913cfa56bfb163", size 
= 448543, upload-time = "2026-06-08T17:34:38.052Z" },
-    { url = 
"https://files.pythonhosted.org/packages/92/4f/090b1431e5a43df696feceffc268c5383cc079ecb5f08ce58f917109aafe/tornado-6.5.7-cp39-abi3-macosx_10_9_x86_64.whl";,
 hash = 
"sha256:9da38de27f1da3b78a966f0dae12b5a1ea9afe72ca805d84ff06508272ddf100", size 
= 446707, upload-time = "2026-06-08T17:34:39.594Z" },
-    { url = 
"https://files.pythonhosted.org/packages/37/d8/ef374952fd5da67d4463122c2b8e5a96536ec10b4b339254c6dcde81d01c/tornado-6.5.7-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl";,
 hash = 
"sha256:8d759e71906ee783f8867b93bf26a265743da4c1e2f4a018464c1ba019862972", size 
= 449774, upload-time = "2026-06-08T17:34:41.204Z" },
-    { url = 
"https://files.pythonhosted.org/packages/35/37/d434c73f4c6e014b745b9b37085f34f40c022f007efff3d7fe65991899f3/tornado-6.5.7-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:8a46347a18f23fb92b396beebe0fb78f61dda0cc302445202c16203d8a18848b", size 
= 450745, upload-time = "2026-06-08T17:34:42.531Z" },
-    { url = 
"https://files.pythonhosted.org/packages/b6/2b/56b9aff361d7f1ab728a805ec7d7ea835f8807afa9f5cc690ea0e630efb9/tornado-6.5.7-cp39-abi3-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:7778b30bef919231265e91c69963ce0f49a1e9c07ac900bbe75b19ce2575ba92", size 
= 450578, upload-time = "2026-06-08T17:34:43.787Z" },
-    { url = 
"https://files.pythonhosted.org/packages/02/30/a7444fb23aa76860a14198fab96ac79f1866b0a6e19e26c4381b0938e50f/tornado-6.5.7-cp39-abi3-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:e726f0c75da7726eec023aa62751ff8878bd2737e34fbdd33b1ae5897d2200f5", size 
= 449985, upload-time = "2026-06-08T17:34:45.326Z" },
-    { url = 
"https://files.pythonhosted.org/packages/5c/42/5f0e56c01e8d9d36f4e23f367b85ae6cae0c1ecddd5e6977d8388ad27488/tornado-6.5.7-cp39-abi3-win32.whl";,
 hash = 
"sha256:f8de3bf12d3efdd0cbe7c8887868198f8a91415e3f29fcf258d9b8eb7b1d9ae4", size 
= 451047, upload-time = "2026-06-08T17:34:46.784Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c9/a4/b393076ffb21b469eec5b328a0534cf03a3b90bfc6b1f09507cdd075d938/tornado-6.5.7-cp39-abi3-win_amd64.whl";,
 hash = 
"sha256:de942f843533a039ef9fa3d9c88c7cd8a7c94553fb5ad0154270989b3d99a2c4", size 
= 451485, upload-time = "2026-06-08T17:34:48.248Z" },
-    { url = 
"https://files.pythonhosted.org/packages/71/2e/7b1c769803121b809112cf9a00681c472eae1d80e32d7ec0e0bd61d0d0e1/tornado-6.5.7-cp39-abi3-win_arm64.whl";,
 hash = 
"sha256:ff934fce95643af5f11efdae618eaa73d469dc588641e5c8d19295a0c65c4796", size 
= 450506, upload-time = "2026-06-08T17:34:49.702Z" },
+    { url = 
"https://files.pythonhosted.org/packages/f2/d5/007086fd8df5489338e204f65adce33fd4f21a4999dbb2b9cff2f897b5f4/tornado-6.5.8-cp39-abi3-macosx_10_9_universal2.whl";,
 hash = 
"sha256:cc6aa787d7cfab7c3d35189dc7a56fbd2399a569624c730c6b55b3d6531d0403", size 
= 449487, upload-time = "2026-08-07T02:12:28.682Z" },
+    { url = 
"https://files.pythonhosted.org/packages/70/c8/5a24a99495903f594f6a199dd7beead1cbc0a13e2cb9102727bcaaf2a997/tornado-6.5.8-cp39-abi3-macosx_10_9_x86_64.whl";,
 hash = 
"sha256:9715b5eb79735b2bcd454ce216a9275b7c0470e64ea1bf5742f78b2f72b26eeb", size 
= 447649, upload-time = "2026-08-07T02:12:30.306Z" },
+    { url = 
"https://files.pythonhosted.org/packages/6e/de/f2e733f386b85962d1b1dc82cd63d169b5b4580062b35397eac9244a41fe/tornado-6.5.8-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl";,
 hash = 
"sha256:547d63f450d570c14fe0e8db2cfb14c9bbd1c2503b4a6612586267955aa47b58", size 
= 450707, upload-time = "2026-08-07T02:12:31.95Z" },
+    { url = 
"https://files.pythonhosted.org/packages/0b/94/20efeee9a01c141e9ac47c397f81679dfda24b32768fc4fff24e76d36c2c/tornado-6.5.8-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:7e2360a0ffbe145eca8af0b19cb7203d79b1a98dd4cccdd6b368f6f49c2e3808", size 
= 451677, upload-time = "2026-08-07T02:12:33.512Z" },
+    { url = 
"https://files.pythonhosted.org/packages/42/ec/a96ccb8ccf0de2b7bc2c5fa1608a4803735018242e90c4882365a9fd418f/tornado-6.5.8-cp39-abi3-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:5d242290bdf7ab3151bc1065fdd75c0dcc21cbc7b49f22a4c56329c2d6566d22", size 
= 451510, upload-time = "2026-08-07T02:12:35.346Z" },
+    { url = 
"https://files.pythonhosted.org/packages/29/b5/93185859245ad3f00e62175f29607346788b696369347f0146e0421286bb/tornado-6.5.8-cp39-abi3-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:7b94ff0e128fe0542f3bd331fb44d06260fc4ac16881545159f34ef08aad4195", size 
= 450917, upload-time = "2026-08-07T02:12:36.963Z" },
+    { url = 
"https://files.pythonhosted.org/packages/97/cf/fe33cf062834487d34d1559746a4a12521033c22645b6d74d4bca702e018/tornado-6.5.8-cp39-abi3-win32.whl";,
 hash = 
"sha256:67832909c4779c64942380cb5f044a5c6163d00831472d80e25e115de9917836", size 
= 451952, upload-time = "2026-08-07T02:12:38.512Z" },
+    { url = 
"https://files.pythonhosted.org/packages/cb/e1/468ad54333e92ccb62627e62cb88e5fc14a2171daa67ed47b1b8542d5b86/tornado-6.5.8-cp39-abi3-win_amd64.whl";,
 hash = 
"sha256:11881db6b7c168494be2c2d12e65931451bdf7ee718535418ae1d8855dd5a0ee", size 
= 452391, upload-time = "2026-08-07T02:12:39.971Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ad/3e/cd5e4f06e34cde33b8ef66cf36aa2b5ad46354cc1af7d2136bbe365fee1d/tornado-6.5.8-cp39-abi3-win_arm64.whl";,
 hash = 
"sha256:68a7468c7e289f8514d7d664101753903217eff1bb6822c6b5994a0b5f5bcb26", size 
= 451411, upload-time = "2026-08-07T02:12:41.469Z" },
 ]
 
 [[package]]

Reply via email to