Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
132 lines (111 loc) · 4.49 KB
/
Copy pathpyproject.toml
File metadata and controls
132 lines (111 loc) · 4.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "langchain-oceanbase"
version = "0.6.4"
description = "An integration package connecting OceanBase and LangChain"
authors = ["shanhaikang.shk <shanhaikang.shk@oceanbase.com>"]
readme = "README.md"
license = "MIT"
packages = [{include = "langchain_oceanbase"}]
include = ["langchain_oceanbase/py.typed"]
[tool.mypy]
disallow_untyped_defs = "True"
[[tool.mypy.overrides]]
# These external clients do not ship typing metadata; pyseekdb is also optional.
module = ["pyobvector", "pyobvector.*", "pyseekdb", "pyseekdb.*"]
ignore_missing_imports = true
[tool.poetry.urls]
"Source Code" = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/oceanbase"
"Release Notes" = "https://github.com/oceanbase/langchain-oceanbase/blob/main/CHANGELOG.md"
[tool.poetry.dependencies]
python = ">=3.11,<3.14"
# Floors raised for 0.6.0: copy_thread/delete_for_runs/prune are langgraph-checkpoint
# 4.x base capabilities (validated working on checkpoint 4.0.0), so the floor must
# guarantee a 4.x-capable stack. langgraph 1.0.6 is the first release that *allows*
# langgraph-checkpoint 4.x (earlier langgraph caps it <4.0.0), so a langgraph floor
# raise is unavoidable; langchain-core >=1.0 keeps the "0.6.x = LangChain 1.x" story
# while still admitting LangChain 1.0/1.1 users. CI tests both this floor and the
# locked newest stack.
langchain-core = ">=1.0.0,<2.0.0"
langgraph = ">=1.0.6,<2.0.0"
langgraph-checkpoint = ">=4.0.0,<5.0.0"
# >=1.4.0.post1: latest unified seekdb client in the 1.4.0 release line.
pyseekdb = { version = ">=1.4.0.post1,<3", optional = true }
# >=1.4.0: align the native embedded runtime with pyseekdb 1.4.0 while retaining
# Unix-socket support for async drivers (oceanbase/langchain-oceanbase#151).
pylibseekdb = { version = ">=1.4.0,<2", optional = true, markers = "sys_platform == 'linux' or (sys_platform == 'darwin' and platform_machine == 'arm64')" }
pyobvector = [
{ version = ">=0.2.29" },
{ version = ">=0.2.29", extras = ["pyseekdb"], markers = "extra == 'pyseekdb'" },
]
# Pin to safe version for security (CVE-2025-69228 etc.); direct dep so Dependabot can update
aiohttp = ">=3.13.3"
# Security floors for existing transitive runtime dependencies. Keep these in
# package metadata so pip consumers are protected as well as Poetry installs.
anyio = ">=4.14.2,<5"
idna = ">=3.15,<4"
langsmith = ">=0.8.18,<1"
orjson = { version = ">=3.11.6,<4", markers = "platform_python_implementation != 'PyPy'" }
requests = ">=2.33.0,<3"
urllib3 = ">=2.7.0,<3"
protobuf = { version = ">=6.33.5,<7", optional = true }
[tool.poetry.extras]
pyseekdb = ["pyseekdb", "pylibseekdb", "protobuf"]
[tool.ruff.lint]
select = ["E", "F", "I", "T201"]
ignore = ["E501"] # Allow long lines in docstrings
[tool.ruff.lint.per-file-ignores]
# Allow print statements in test files and examples
"tests/**/*.py" = ["T201"]
"examples/**/*.py" = ["T201"]
[tool.coverage.run]
omit = ["tests/*"]
[tool.pytest.ini_options]
addopts = "--strict-markers --strict-config --durations=5"
markers = [
"compile: mark placeholder test used to compile integration tests without running them",
"embedded_seekdb: optional integration test for embedded SeekDB (requires pylibseekdb)",
]
asyncio_mode = "auto"
[tool.poetry.group.test]
optional = true
[tool.poetry.group.codespell]
optional = true
[tool.poetry.group.test_integration]
optional = true
[tool.poetry.group.lint]
optional = true
[tool.poetry.group.dev]
optional = true
[tool.poetry.group.dev.dependencies]
ipykernel = ">=6.29.5,<8.0.0"
pre-commit = ">=3.7,<5.0"
# Pin to safe version for security (Dependabot security advisory); also makes it a direct dep so Dependabot can update
virtualenv = ">=20.36.1"
tornado = ">=6.5.8,<7"
pygments = ">=2.20.0,<3"
[tool.poetry.group.test.dependencies]
pytest = ">=9.0.3,<10"
pytest-asyncio = ">=1.3,<2"
pytest-cov = ">=4.1,<8.0"
pytest-socket = ">=0.7,<0.9"
pytest-watcher = ">=0.3.4,<0.7.0"
langgraph-checkpoint-conformance = ">=0.0.2,<0.1.0"
langchain-tests = "==1.1.9"
langchain-community = ">=0.3.12,<0.5.0"
dashscope = "^1.20.14"
# Security floors for test-only transitive dependencies.
cryptography = ">=50.0.0"
pydantic-settings = ">=2.14.2,<3"
python-dotenv = ">=1.2.2,<2"
vcrpy = ">=8.2.1,<9"
pygments = ">=2.20.0,<3"
[tool.poetry.group.codespell.dependencies]
codespell = "^2.2.6"
[tool.poetry.group.test_integration.dependencies]
[tool.poetry.group.lint.dependencies]
ruff = ">=0.5,<0.17"
[tool.poetry.group.typing.dependencies]
mypy = ">=1.10,<3.0"