1{
2 lib,
3 buildPythonPackage,
4 click,
5 fetchFromGitHub,
6 nix-update-script,
7 poetry-core,
8 pytest-asyncio,
9 pytestCheckHook,
10 pythonOlder,
11}:
12
13buildPythonPackage rec {
14 pname = "langgraph-cli";
15 version = "0.1.52";
16 pyproject = true;
17
18 disabled = pythonOlder "3.10";
19
20 src = fetchFromGitHub {
21 owner = "langchain-ai";
22 repo = "langgraph";
23 tag = "cli==${version}";
24 hash = "sha256-zTBeDJB1Xu/rWsvEC/L4BRzxyh04lPYV7HQNHoJcskk=";
25 };
26
27 sourceRoot = "${src.name}/libs/cli";
28
29 build-system = [ poetry-core ];
30
31 dependencies = [ click ];
32
33 nativeCheckInputs = [
34 pytest-asyncio
35 pytestCheckHook
36 ];
37
38 pytestFlagsArray = [ "tests/unit_tests" ];
39
40 pythonImportsCheck = [ "langgraph_cli" ];
41
42 disabledTests = [
43 # Flaky tests that generate a Docker configuration then compare to exact text
44 "test_config_to_docker_simple"
45 "test_config_to_docker_pipconfig"
46 "test_config_to_compose_env_vars"
47 "test_config_to_compose_env_file"
48 "test_config_to_compose_end_to_end"
49 "test_config_to_compose_simple_config"
50 "test_config_to_compose_watch"
51 ];
52
53 passthru.updateScript = nix-update-script {
54 extraArgs = [
55 "--version-regex"
56 "cli==(.*)"
57 ];
58 };
59
60 meta = {
61 description = "Official CLI for LangGraph API";
62 homepage = "https://github.com/langchain-ai/langgraph/libs/cli";
63 changelog = "https://github.com/langchain-ai/langgraph/releases/tag/${version}";
64 mainProgram = "langgraph";
65 license = lib.licenses.mit;
66 maintainers = with lib.maintainers; [ sarahec ];
67 };
68}