-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpyproject.toml
More file actions
60 lines (52 loc) · 2.38 KB
/
Copy pathpyproject.toml
File metadata and controls
60 lines (52 loc) · 2.38 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
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "cacheseek"
version = "0.1.0a1"
description = "Cross-request KV-cache middleware for world-model long-horizon reasoning — session continuation, prefix-tree reuse, and approximate cross-request reuse between TeleFuser and Fluxon"
requires-python = ">=3.10"
authors = [{name = "TeleAI"}]
license = {text = "Apache-2.0"}
readme = "README.md"
keywords = ["cache", "kv-cache", "world-model", "session-continuation", "prefix-cache", "approximate-caching", "diffusion", "inference", "fluxon", "telefuser"]
dependencies = [
"loguru>=0.7",
"numpy>=1.23",
"Pillow>=10",
"PyYAML>=6.0",
"torch>=2.0",
]
[project.optional-dependencies]
# Pluggable backends — kept optional so `import cacheseek` stays light and a
# bare install doesn't pull heavy deps. Heavy modules load lazily on first use.
qdrant = ["qdrant-client>=1.7"] # vector store backend
faiss = ["faiss-cpu>=1.7"] # vector store backend
encoder = ["transformers>=4.57", "accelerate>=0.30", "qwen-vl-utils", "scipy", "sentencepiece"] # Qwen3-VL embed/rerank backend (qwen_vl_utils->vision_process, scipy->reranker softmax, sentencepiece->Qwen tokenizer)
dev = ["pytest>=7", "pytest-asyncio>=0.21", "ruff", "pyright", "httpx>=0.27"]
# Everything needed to run the full reference path (all backends).
all = ["cacheseek[qdrant,faiss,encoder]"]
[tool.setuptools.packages.find]
where = ["."]
include = ["cacheseek*"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
markers = [
"smoke: fast import/config/script checks that validate local package wiring",
"e2e: end-to-end lifecycle checks; external variants may require opt-in infrastructure",
]
[tool.ruff]
line-length = 100
target-version = "py310"
# Vendored upstream model code and one-off probe/experiment scripts are excluded
# from lint (mirror upstream verbatim / not shipped library code).
extend-exclude = ["cacheseek/reuse/approximate/models_src", "benchmarks", "scripts"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM"]
# Line length is enforced by `ruff format`, not the linter; docstring/comment
# style is by convention (CONTRIBUTING.md), not pydocstyle "D" codes — matching
# vLLM / SGLang, which lint almost no docstring rules.
ignore = ["E501"]
[tool.ruff.format]
docstring-code-format = true