diff --git a/pkgs/development/python-modules/e2b-code-interpreter/default.nix b/pkgs/development/python-modules/e2b-code-interpreter/default.nix new file mode 100644 index 000000000000..2e0f21bcf779 --- /dev/null +++ b/pkgs/development/python-modules/e2b-code-interpreter/default.nix @@ -0,0 +1,51 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + poetry-core, + + # dependencies + attrs, + e2b, + httpx, +}: + +buildPythonPackage rec { + pname = "e2b-code-interpreter"; + inherit (e2b) version; + pyproject = true; + + src = fetchFromGitHub { + owner = "e2b-dev"; + repo = "code-interpreter"; + tag = "@e2b/code-interpreter-python@${version}"; + hash = "sha256-a2rc7BtV+qwtqlB+JtLCs0BKN15yfwmG3XWWO8we2LA="; + }; + + sourceRoot = "${src.name}/python"; + + build-system = [ + poetry-core + ]; + + dependencies = [ + attrs + e2b + httpx + ]; + + pythonImportsCheck = [ "e2b_code_interpreter" ]; + + # Tests require an API key + # e2b.exceptions.AuthenticationException: API key is required, please visit the Team tab at https://e2b.dev/dashboard to get your API key. + doCheck = false; + + meta = { + description = "E2B Code Interpreter - Stateful code execution"; + homepage = "https://github.com/e2b-dev/code-interpreter/tree/main/python"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/development/python-modules/e2b/default.nix b/pkgs/development/python-modules/e2b/default.nix new file mode 100644 index 000000000000..b69af4f5ca00 --- /dev/null +++ b/pkgs/development/python-modules/e2b/default.nix @@ -0,0 +1,63 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + poetry-core, + + # dependencies + attrs, + httpcore, + httpx, + packaging, + protobuf, + python-dateutil, + typing-extensions, +}: + +buildPythonPackage rec { + pname = "e2b"; + version = "1.5.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "e2b-dev"; + repo = "E2B"; + tag = "@e2b/python-sdk@${version}"; + hash = "sha256-6THRc4rv/mzOWbsN1FpUu56kjvHvVBssK2glNoGdSzI="; + }; + + sourceRoot = "${src.name}/packages/python-sdk"; + + build-system = [ + poetry-core + ]; + + pythonRelaxDeps = [ + "protobuf" + ]; + + dependencies = [ + attrs + httpcore + httpx + packaging + protobuf + python-dateutil + typing-extensions + ]; + + pythonImportsCheck = [ "e2b" ]; + + # Tests require an API key + # e2b.exceptions.AuthenticationException: API key is required, please visit the Team tab at https://e2b.dev/dashboard to get your API key. + doCheck = false; + + meta = { + description = "E2B SDK that give agents cloud environments"; + homepage = "https://github.com/e2b-dev/E2B/blob/main/packages/python-sdk"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9989d94c6afa..8dccb4ec940e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4379,6 +4379,10 @@ self: super: with self; { dynd = callPackage ../development/python-modules/dynd { }; + e2b = callPackage ../development/python-modules/e2b { }; + + e2b-code-interpreter = callPackage ../development/python-modules/e2b-code-interpreter { }; + e3-core = callPackage ../development/python-modules/e3-core { }; e3-testsuite = callPackage ../development/python-modules/e3-testsuite { };