1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 langgraph-checkpoint,
6 aiosqlite,
7 duckdb,
8 pytest-asyncio,
9 pytestCheckHook,
10 langgraph-sdk,
11 poetry-core,
12 pythonOlder,
13}:
14
15buildPythonPackage rec {
16 pname = "langgraph-checkpoint-duckdb";
17 version = "2.0.1";
18 pyproject = true;
19
20 disabled = pythonOlder "3.9";
21
22 src = fetchFromGitHub {
23 owner = "langchain-ai";
24 repo = "langgraph";
25 tag = "checkpointduckdb==${version}";
26 hash = "sha256-wSrlFBfTcTgyE46uwv9GCyxRT1xVafgWyP2g87KUTAU=";
27 };
28
29 sourceRoot = "${src.name}/libs/checkpoint-duckdb";
30
31 build-system = [ poetry-core ];
32
33 dependencies = [
34 aiosqlite
35 duckdb
36 langgraph-checkpoint
37 ];
38
39 # Checkpoint clients are lagging behind langgraph-checkpoint
40 pythonRelaxDeps = [ "langgraph-checkpoint" ];
41
42 pythonImportsCheck = [ "langgraph.checkpoint.duckdb" ];
43
44 nativeCheckInputs = [
45 pytest-asyncio
46 pytestCheckHook
47 ];
48
49 disabledTests = [ "test_basic_store_ops" ]; # depends on networking
50
51 passthru = {
52 updateScript = langgraph-sdk.updateScript;
53 };
54
55 meta = {
56 changelog = "https://github.com/langchain-ai/langgraph/releases/tag/checkpointduckdb==${version}";
57 description = "Library with a DuckDB implementation of LangGraph checkpoint saver";
58 homepage = "https://github.com/langchain-ai/langgraph/tree/main/libs/checkpoint-duckdb";
59 license = lib.licenses.mit;
60 maintainers = with lib.maintainers; [
61 drupol
62 sarahec
63 ];
64 };
65}