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}