diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 97aae39315f6..d9d4dd089956 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -17025,6 +17025,14 @@ github = "mrcjkb"; githubId = 12857160; }; + mrdev023 = { + name = "Florian RICHER"; + email = "florian.richer@protonmail.com"; + matrix = "@mrdev023:matrix.org"; + github = "mrdev023"; + githubId = 11292703; + keys = [ { fingerprint = "B19E 3F4A 2D80 6AB4 793F DF2F C73D 37CB ED7B FC77"; } ]; + }; mredaelli = { email = "massimo@typish.io"; github = "mredaelli"; diff --git a/pkgs/development/python-modules/langchain-experimental/001-avoid-check-fullpath.patch b/pkgs/development/python-modules/langchain-experimental/001-avoid-check-fullpath.patch new file mode 100644 index 000000000000..9dd3284bd7c9 --- /dev/null +++ b/pkgs/development/python-modules/langchain-experimental/001-avoid-check-fullpath.patch @@ -0,0 +1,13 @@ +diff --git a/tests/unit_tests/test_bash.py b/tests/unit_tests/test_bash.py +index ba7b0d0..cade19e 100644 +--- a/tests/unit_tests/test_bash.py ++++ b/tests/unit_tests/test_bash.py +@@ -58,7 +58,7 @@ def test_incorrect_command_return_err_output() -> None: + session = BashProcess(return_err_output=True) + output = session.run(["invalid_command"]) + assert re.match( +- r"^/bin/sh:.*invalid_command.*(?:not found|Permission denied).*$", output ++ r".*/bin/sh:.*invalid_command.*(?:not found|Permission denied).*$", output + ) + + diff --git a/pkgs/development/python-modules/langchain-experimental/default.nix b/pkgs/development/python-modules/langchain-experimental/default.nix new file mode 100644 index 000000000000..c7e2748b02f3 --- /dev/null +++ b/pkgs/development/python-modules/langchain-experimental/default.nix @@ -0,0 +1,76 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + poetry-core, + + # dependencies + langchain-core, + langchain-community, + + # testing + langchain-tests, + pytestCheckHook, + + # passthru + gitUpdater, +}: + +buildPythonPackage rec { + pname = "langchain-experimental"; + version = "0.3.4"; + pyproject = true; + + src = fetchFromGitHub { + owner = "langchain-ai"; + repo = "langchain-experimental"; + tag = "libs/experimental/v${version}"; + hash = "sha256-KgGfJfxHOfpwVVo/OcbOjiO5pbxoDE1MiyKqUwsqfIg="; + }; + + sourceRoot = "${src.name}/libs/experimental"; + + patches = [ + # Remove it when https://github.com/langchain-ai/langchain-experimental/pull/58 is merged and released + ./001-avoid-check-fullpath.patch + ]; + + build-system = [ + poetry-core + ]; + + pythonRelaxDeps = [ + # Each component release requests the exact latest core. + # That prevents us from updating individual components. + "langchain-core" + "langchain-community" + ]; + + dependencies = [ + langchain-core + langchain-community + ]; + + nativeCheckInputs = [ + langchain-tests + pytestCheckHook + ]; + + pytestFlagsArray = [ "tests/unit_tests" ]; + + pythonImportsCheck = [ "langchain_experimental" ]; + + passthru.updateScript = gitUpdater { + rev-prefix = "libs/experimental/v"; + }; + + meta = { + changelog = "https://github.com/langchain-ai/langchain-experimental/releases/tag/${src.tag}"; + description = "Package add experimental features on LangChain"; + homepage = "https://github.com/langchain-ai/langchain-experimental/tree/main/libs/experimental"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ mrdev023 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index dccd7365906b..f9c97b2259a0 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7823,6 +7823,8 @@ self: super: with self; { langchain-deepseek = callPackage ../development/python-modules/langchain-deepseek { }; + langchain-experimental = callPackage ../development/python-modules/langchain-experimental { }; + langchain-fireworks = callPackage ../development/python-modules/langchain-fireworks { }; langchain-google-genai = callPackage ../development/python-modules/langchain-google-genai { };