1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 nix-update-script, 6 7 # build-system 8 pdm-backend, 9 10 # dependencies 11 langchain-core, 12 openai, 13 14 # tests 15 langchain-tests, 16 pytest-asyncio, 17 pytest-cov, 18 pytest-mock, 19 pytestCheckHook, 20}: 21 22buildPythonPackage rec { 23 pname = "langchain-perplexity"; 24 version = "0.1.1"; 25 pyproject = true; 26 27 src = fetchFromGitHub { 28 owner = "langchain-ai"; 29 repo = "langchain"; 30 tag = "langchain-perplexity==${version}"; 31 hash = "sha256-s20AnDsyLCzpG45QqgZp0WzlbdVrHNfpUQsMPUaF1qs="; 32 }; 33 34 sourceRoot = "${src.name}/libs/partners/perplexity"; 35 36 build-system = [ pdm-backend ]; 37 38 dependencies = [ 39 langchain-core 40 openai 41 ]; 42 43 pythonRelaxDeps = [ 44 # Each component release requests the exact latest core. 45 # That prevents us from updating individual components. 46 "langchain-core" 47 ]; 48 49 nativeCheckInputs = [ 50 langchain-tests 51 pytest-asyncio 52 pytest-cov 53 pytest-mock 54 pytestCheckHook 55 ]; 56 57 pytestFlagsArray = [ "tests/unit_tests" ]; 58 59 pythonImportsCheck = [ "langchain_perplexity" ]; 60 61 passthru.updateScript = nix-update-script { 62 extraArgs = [ 63 "--version-regex" 64 "langchain-perplexity==([0-9.]+)" 65 ]; 66 }; 67 68 meta = { 69 changelog = "https://github.com/langchain-ai/langchain-perplexity/releases/tag/langchain-perplexity==${version}"; 70 description = "Build LangChain applications with Perplexity"; 71 homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/perplexity"; 72 license = lib.licenses.mit; 73 maintainers = [ 74 lib.maintainers.sarahec 75 ]; 76 }; 77}