From 3582d5c4aa39a1072e2476fc2ef7a242c76ba721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20St=C3=BChrk?= Date: Tue, 18 Oct 2022 17:06:05 +0200 Subject: [PATCH] pulumiPackages: add support for Python SDKs --- pkgs/tools/admin/pulumi-packages/base.nix | 53 +++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/pkgs/tools/admin/pulumi-packages/base.nix b/pkgs/tools/admin/pulumi-packages/base.nix index c14b6ec32ac5..001a247379bc 100644 --- a/pkgs/tools/admin/pulumi-packages/base.nix +++ b/pkgs/tools/admin/pulumi-packages/base.nix @@ -1,5 +1,6 @@ { buildGoModule , fetchFromGitHub +, python3Packages }: let mkBasePackage = @@ -24,6 +25,52 @@ let "-w" ] ++ extraLdflags; } // args); + + mkPythonPackage = + { meta + , pname + , src + , version + , ... + }: python3Packages.callPackage + ({ buildPythonPackage, pythonOlder, parver, pulumi, semver }: + buildPythonPackage rec { + inherit pname meta src version; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + sourceRoot = "${src.name}/sdk/python"; + + propagatedBuildInputs = [ + parver + pulumi + semver + ]; + + postPatch = '' + sed -i \ + -e 's/^VERSION = .*/VERSION = "${version}"/g' \ + -e 's/^PLUGIN_VERSION = .*/PLUGIN_VERSION = "${version}"/g' \ + setup.py + ''; + + # Auto-generated; upstream does not have any tests. + # Verify that the version substitution works + checkPhase = '' + runHook preCheck + + pip show "${pname}" | grep "Version: ${version}" > /dev/null \ + || (echo "ERROR: Version substitution seems to be broken"; exit 1) + + runHook postCheck + ''; + + pythonImportsCheck = [ + (builtins.replaceStrings [ "-" ] [ "_" ] pname) + ]; + }) + { }; in { owner , repo @@ -72,4 +119,10 @@ mkBasePackage ({ VERSION=v${version} go generate cmd/${cmdRes}/main.go ''; + + passthru.sdks.python = mkPythonPackage { + inherit meta src version; + + pname = repo; + }; } // args)