langchain-dev-utils 1.2.16__tar.gz → 1.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/PKG-INFO +2 -2
  2. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/pyproject.toml +2 -5
  3. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/middleware/model_fallback.py +2 -2
  4. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/chat_models/adapters/openai_compatible.py +3 -4
  5. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/uv.lock +8 -8
  6. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/.gitignore +0 -0
  7. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/.python-version +0 -0
  8. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/.vscode/settings.json +0 -0
  9. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/LICENSE +0 -0
  10. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/README.md +0 -0
  11. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/README_cn.md +0 -0
  12. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/__init__.py +0 -0
  13. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/_utils.py +0 -0
  14. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/__init__.py +0 -0
  15. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/factory.py +0 -0
  16. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/file_system.py +0 -0
  17. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/middleware/__init__.py +0 -0
  18. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/middleware/format_prompt.py +0 -0
  19. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/middleware/model_router.py +0 -0
  20. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/middleware/plan.py +0 -0
  21. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/middleware/summarization.py +0 -0
  22. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/middleware/tool_call_repair.py +0 -0
  23. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/middleware/tool_emulator.py +0 -0
  24. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/middleware/tool_selection.py +0 -0
  25. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/plan.py +0 -0
  26. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/agents/wrap.py +0 -0
  27. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/chat_models/__init__.py +0 -0
  28. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/chat_models/adapters/__init__.py +0 -0
  29. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/chat_models/base.py +0 -0
  30. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/chat_models/types.py +0 -0
  31. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/embeddings/__init__.py +0 -0
  32. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/embeddings/base.py +0 -0
  33. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/message_convert/__init__.py +0 -0
  34. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/message_convert/content.py +0 -0
  35. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/message_convert/format.py +0 -0
  36. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/pipeline/__init__.py +0 -0
  37. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/pipeline/parallel.py +0 -0
  38. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/pipeline/sequential.py +0 -0
  39. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/pipeline/types.py +0 -0
  40. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/py.typed +0 -0
  41. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/tool_calling/__init__.py +0 -0
  42. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/tool_calling/human_in_the_loop.py +0 -0
  43. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/src/langchain_dev_utils/tool_calling/utils.py +0 -0
  44. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/__init__.py +0 -0
  45. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_agent.py +0 -0
  46. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_chat_models.py +0 -0
  47. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_human_in_the_loop.py +0 -0
  48. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_load_embbeding.py +0 -0
  49. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_load_model.py +0 -0
  50. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_messages.py +0 -0
  51. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_model_tool_emulator.py +0 -0
  52. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_pipline.py +0 -0
  53. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_plan_middleware.py +0 -0
  54. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_router_model.py +0 -0
  55. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_tool_call_repair.py +0 -0
  56. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_tool_calling.py +0 -0
  57. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/test_wrap_agent.py +0 -0
  58. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/utils/__init__.py +0 -0
  59. {langchain_dev_utils-1.2.16 → langchain_dev_utils-1.3.0}/tests/utils/register.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langchain-dev-utils
3
- Version: 1.2.16
3
+ Version: 1.3.0
4
4
  Summary: A practical utility library for LangChain and LangGraph development
5
5
  Project-URL: Source Code, https://github.com/TBice123123/langchain-dev-utils
6
6
  Project-URL: repository, https://github.com/TBice123123/langchain-dev-utils
@@ -8,7 +8,7 @@ Project-URL: documentation, https://tbice123123.github.io/langchain-dev-utils
8
8
  Author-email: tiebingice <tiebingice123@outlook.com>
9
9
  License-File: LICENSE
10
10
  Requires-Python: >=3.11
11
- Requires-Dist: langchain>=1.1.0
11
+ Requires-Dist: langchain>=1.2.0
12
12
  Requires-Dist: langgraph>=1.0.0
13
13
  Provides-Extra: standard
14
14
  Requires-Dist: json-repair>=0.53.1; extra == 'standard'
@@ -1,14 +1,11 @@
1
1
  [project]
2
2
  name = "langchain-dev-utils"
3
- version = "1.2.16"
3
+ version = "1.3.0"
4
4
  description = "A practical utility library for LangChain and LangGraph development"
5
5
  readme = "README.md"
6
6
  authors = [{ name = "tiebingice", email = "tiebingice123@outlook.com" }]
7
7
  requires-python = ">=3.11"
8
- dependencies = [
9
- "langchain>=1.1.0",
10
- "langgraph>=1.0.0",
11
- ]
8
+ dependencies = ["langchain>=1.2.0", "langgraph>=1.0.0"]
12
9
 
13
10
  [project.urls]
14
11
  "Source Code" = "https://github.com/TBice123123/langchain-dev-utils"
@@ -22,7 +22,7 @@ class ModelFallbackMiddleware(_ModelFallbackMiddleware):
22
22
 
23
23
  fallback = ModelFallbackMiddleware(
24
24
  "vllm:qwen3-8b", ## Try first on error
25
- "openrouter:meta-llama/llama-3.3-8b-instruct:free" #Then this
25
+ "vllm:gpt-oss-20b", #Then this
26
26
  )
27
27
 
28
28
  agent = create_agent(
@@ -30,7 +30,7 @@ class ModelFallbackMiddleware(_ModelFallbackMiddleware):
30
30
  middleware=[fallback],
31
31
  )
32
32
 
33
- # If primary fails: tries qwen3-8b, then llama-3.3-8b-instruct
33
+ # If primary fails: tries qwen3-8b, then gpt-oss-20b
34
34
  result = await agent.invoke({"messages": [HumanMessage("Hello")]})
35
35
  ```
36
36
  """
@@ -126,13 +126,12 @@ class _BaseChatOpenAICompatible(BaseChatOpenAI):
126
126
  Base template class for OpenAI-compatible chat model implementations.
127
127
 
128
128
  This class provides a foundation for integrating various LLM providers that
129
- offer OpenAI-compatible APIs (such as vLLM, OpenRouter, ZAI, Moonshot,
130
- and many others). It enhances the base OpenAI functionality by:
129
+ offer OpenAI-compatible APIs. It enhances the base OpenAI functionality by:
131
130
 
132
131
  **1. Supports output of more types of reasoning content (reasoning_content)**
133
132
  ChatOpenAI can only output reasoning content natively supported by official
134
133
  OpenAI models, while OpenAICompatibleChatModel can output reasoning content
135
- from other model providers (e.g., OpenRouter, vLLM).
134
+ from other model providers.
136
135
 
137
136
  **2. Dynamically adapts to choose the most suitable structured-output method**
138
137
  OpenAICompatibleChatModel adds method="auto" (default), which selects the best
@@ -593,7 +592,7 @@ def _create_openai_compatible_model(
593
592
  configuring environment variable mappings and default base URLs specific to each provider.
594
593
 
595
594
  Args:
596
- provider: Provider identifier (e.g., `vllm`,`openrouter`)
595
+ provider: Provider identifier (e.g.`vllm`)
597
596
  base_url: Default API base URL for the provider
598
597
  compatibility_options: Optional configuration for the provider
599
598
 
@@ -738,16 +738,16 @@ wheels = [
738
738
 
739
739
  [[package]]
740
740
  name = "langchain"
741
- version = "1.1.3"
741
+ version = "1.2.0"
742
742
  source = { registry = "https://pypi.mirrors.ustc.edu.cn/simple/" }
743
743
  dependencies = [
744
744
  { name = "langchain-core" },
745
745
  { name = "langgraph" },
746
746
  { name = "pydantic" },
747
747
  ]
748
- sdist = { url = "https://mirrors.ustc.edu.cn/pypi/packages/e3/5b/7c1d6fd075bdfd45ac5ff6fef2a5d2380ffb7988fc9cdd7a37b036744fe4/langchain-1.1.3.tar.gz", hash = "sha256:8c641a750a4277d948c3836529f31de496e7ed4ea9f1c77f66f1845cb586987d", size = 531368, upload-time = "2025-12-08T19:31:48.733Z" }
748
+ sdist = { url = "https://mirrors.ustc.edu.cn/pypi/packages/b1/12/3a74c22abdfddd877dfc2ee666d516f9132877fcd25eb4dd694835c59c79/langchain-1.2.0.tar.gz", hash = "sha256:a087d1e2b2969819e29a91a6d5f98302aafe31bd49ba377ecee3bf5a5dcfe14a", size = 536126, upload-time = "2025-12-15T14:51:42.24Z" }
749
749
  wheels = [
750
- { url = "https://mirrors.ustc.edu.cn/pypi/packages/f3/39/ed3121ea3a0c60a0cda6ea5c4c1cece013e8bbc9b18344ff3ae507728f98/langchain-1.1.3-py3-none-any.whl", hash = "sha256:e5b208ed93e553df4087117a40bd0d450f9095030a843cad35c53ff2814bf731", size = 102227, upload-time = "2025-12-08T19:31:47.246Z" },
750
+ { url = "https://mirrors.ustc.edu.cn/pypi/packages/23/00/4e3fa0d90f5a5c376ccb8ca983d0f0f7287783dfac48702e18f01d24673b/langchain-1.2.0-py3-none-any.whl", hash = "sha256:82f0d17aa4fbb11560b30e1e7d4aeb75e3ad71ce09b85c90ab208b181a24ffac", size = 102828, upload-time = "2025-12-15T14:51:40.802Z" },
751
751
  ]
752
752
 
753
753
  [[package]]
@@ -793,7 +793,7 @@ wheels = [
793
793
 
794
794
  [[package]]
795
795
  name = "langchain-core"
796
- version = "1.2.0"
796
+ version = "1.2.5"
797
797
  source = { registry = "https://pypi.mirrors.ustc.edu.cn/simple/" }
798
798
  dependencies = [
799
799
  { name = "jsonpatch" },
@@ -805,9 +805,9 @@ dependencies = [
805
805
  { name = "typing-extensions" },
806
806
  { name = "uuid-utils" },
807
807
  ]
808
- sdist = { url = "https://mirrors.ustc.edu.cn/pypi/packages/6f/ae/2041e14c8781b1696bb161b78152f1523b5128bdb16c95199632eb034c6f/langchain_core-1.2.0.tar.gz", hash = "sha256:e3f6450ae88505ec509ffa6f5c7ba3fa377a35b5d73f307b3ba1fc5aeb8a95b1", size = 802332, upload-time = "2025-12-12T18:12:59.327Z" }
808
+ sdist = { url = "https://mirrors.ustc.edu.cn/pypi/packages/c8/86/bd678d69341ae4178bc8dfa04024d63636e5d580ff03d4502c8bc2262917/langchain_core-1.2.5.tar.gz", hash = "sha256:d674f6df42f07e846859b9d3afe547cad333d6bf9763e92c88eb4f8aaedcd3cc", size = 820445, upload-time = "2025-12-22T23:45:32.041Z" }
809
809
  wheels = [
810
- { url = "https://mirrors.ustc.edu.cn/pypi/packages/dd/bb/ddac30cba0c246f7c15d81851311a23dc1455b6e908f624e71fa3b82b3d1/langchain_core-1.2.0-py3-none-any.whl", hash = "sha256:ed95ee5cbab0d1188c91ad230bb6a513427bc1e2ed5a8329075ab24412cd7727", size = 475867, upload-time = "2025-12-12T18:12:57.637Z" },
810
+ { url = "https://mirrors.ustc.edu.cn/pypi/packages/83/bd/9df897cbc98290bf71140104ee5b9777cf5291afb80333aa7da5a497339b/langchain_core-1.2.5-py3-none-any.whl", hash = "sha256:3255944ef4e21b2551facb319bfc426057a40247c0a05de5bd6f2fc021fbfa34", size = 484851, upload-time = "2025-12-22T23:45:30.525Z" },
811
811
  ]
812
812
 
813
813
  [[package]]
@@ -825,7 +825,7 @@ wheels = [
825
825
 
826
826
  [[package]]
827
827
  name = "langchain-dev-utils"
828
- version = "1.2.16"
828
+ version = "1.3.0"
829
829
  source = { editable = "." }
830
830
  dependencies = [
831
831
  { name = "langchain" },
@@ -859,7 +859,7 @@ tests = [
859
859
  [package.metadata]
860
860
  requires-dist = [
861
861
  { name = "json-repair", marker = "extra == 'standard'", specifier = ">=0.53.1" },
862
- { name = "langchain", specifier = ">=1.1.0" },
862
+ { name = "langchain", specifier = ">=1.2.0" },
863
863
  { name = "langchain-openai", marker = "extra == 'standard'" },
864
864
  { name = "langgraph", specifier = ">=1.0.0" },
865
865
  ]