From 74f7060a723b0377293b5984bc3480b28b2388ad Mon Sep 17 00:00:00 2001 From: Jonathan Davies Date: Sun, 3 Nov 2024 21:34:19 +0000 Subject: [PATCH] python3Packages.temporalio: init at 1.11.0 --- .../python-modules/temporalio/default.nix | 84 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 86 insertions(+) create mode 100644 pkgs/development/python-modules/temporalio/default.nix diff --git a/pkgs/development/python-modules/temporalio/default.nix b/pkgs/development/python-modules/temporalio/default.nix new file mode 100644 index 000000000000..63c45ee9f3f7 --- /dev/null +++ b/pkgs/development/python-modules/temporalio/default.nix @@ -0,0 +1,84 @@ +{ + lib, + buildPackages, + buildPythonPackage, + cargo, + fetchFromGitHub, + maturin, + pythonOlder, + poetry-core, + protobuf, + python-dateutil, + rustc, + rustPlatform, + setuptools, + setuptools-rust, + types-protobuf, + typing-extensions, +}: + +buildPythonPackage rec { + pname = "temporalio"; + version = "1.11.0"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "temporalio"; + repo = "sdk-python"; + rev = "refs/tags/${version}"; + hash = "sha256-942EmFOAYUWq58MW2rIVhDK9dHkzi62fUdOudYP94hU="; + fetchSubmodules = true; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit pname version src; + sourceRoot = "${src.name}/${cargoRoot}"; + hash = "sha256-9hP+zN6jcRmRhPmcZ4Zgp61IeS7gDPfsOvweAxKHnHM="; + }; + + cargoRoot = "temporalio/bridge"; + + build-system = [ + maturin + poetry-core + ]; + + preBuild = '' + export PROTOC=${buildPackages.protobuf}/bin/protoc + ''; + + dependencies = [ + protobuf + types-protobuf + typing-extensions + ] ++ lib.optional (pythonOlder "3.11") python-dateutil; + + nativeBuildInputs = [ + cargo + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + rustc + setuptools + setuptools-rust + ]; + + pythonImportsCheck = [ + "temporalio" + "temporalio.bridge.temporal_sdk_bridge" + "temporalio.client" + "temporalio.worker" + ]; + + meta = { + description = "Temporal Python SDK"; + homepage = "https://temporal.io/"; + changelog = "https://github.com/temporalio/sdk-python/releases/tag/${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + jpds + levigross + ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2d107b7c8784..5347f6afbbf3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -17023,6 +17023,8 @@ self: super: with self; { tempora = callPackage ../development/python-modules/tempora { }; + temporalio = callPackage ../development/python-modules/temporalio { }; + tenacity = callPackage ../development/python-modules/tenacity { }; tenant-schemas-celery = callPackage ../development/python-modules/tenant-schemas-celery { };