about summary refs log tree commit diff
path: root/pkgs/development/python-modules/langchain-community/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/langchain-community/default.nix')
-rw-r--r--pkgs/development/python-modules/langchain-community/default.nix48
1 files changed, 40 insertions, 8 deletions
diff --git a/pkgs/development/python-modules/langchain-community/default.nix b/pkgs/development/python-modules/langchain-community/default.nix
index af29f6068b045..684591f833eb6 100644
--- a/pkgs/development/python-modules/langchain-community/default.nix
+++ b/pkgs/development/python-modules/langchain-community/default.nix
@@ -1,40 +1,55 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
   poetry-core,
   pythonOlder,
   aiohttp,
   dataclasses-json,
+  duckdb-engine,
+  langchain,
   langchain-core,
   langsmith,
+  lark,
   numpy,
+  pandas,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
   pyyaml,
   requests,
+  requests-mock,
+  responses,
   sqlalchemy,
+  syrupy,
   tenacity,
+  toml,
   typer,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-community";
-  version = "0.0.36";
+  version = "0.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    pname = "langchain_community";
-    inherit version;
-    hash = "sha256-l76dAM8RnJYeA+0ibgTmcPUbXUL1sF/8NRhZj6bSDHQ=";
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "langchain-community==${version}";
+    hash = "sha256-h8ZJiQYmyvzaRrEVNS7SamJTq4zY7J1IgYdQiVBFh4I=";
   };
 
+  sourceRoot = "${src.name}/libs/community";
+
   build-system = [ poetry-core ];
 
   dependencies = [
     aiohttp
     dataclasses-json
     langchain-core
+    langchain
     langsmith
     numpy
     pyyaml
@@ -49,12 +64,29 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "langchain_community" ];
 
-  # PyPI source does not have tests
-  doCheck = false;
+  nativeCheckInputs = [
+    duckdb-engine
+    lark
+    pandas
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+    requests-mock
+    responses
+    syrupy
+    toml
+  ];
+
+  pytestFlagsArray = [ "tests/unit_tests" ];
+
+  passthru = {
+    updateScript = langchain-core.updateScript;
+  };
 
   meta = with lib; {
     description = "Community contributed LangChain integrations";
     homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/community";
+    changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ natsukium ];
   };