From 6b21b108ba07201e6471444961fa217c33b383c1 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Fri, 1 Jan 2021 20:00:51 +0100 Subject: feat(users/Profpatsch): add writers.python3 This is a reexport of nixpkgs.writers.writePython3, but the libraries are passed the package set, like with other writers. Change-Id: Ia5a2ed1b6b329700836a8575d2bde768bf64fb31 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2311 Tested-by: BuildkiteCI Reviewed-by: Profpatsch --- users/Profpatsch/writers/default.nix | 18 +++++++++++++++++- users/Profpatsch/writers/tests.nix | 19 ++++++++++++++----- 2 files changed, 31 insertions(+), 6 deletions(-) (limited to 'users/Profpatsch/writers') diff --git a/users/Profpatsch/writers/default.nix b/users/Profpatsch/writers/default.nix index f775913d0026..222172e38e09 100644 --- a/users/Profpatsch/writers/default.nix +++ b/users/Profpatsch/writers/default.nix @@ -2,6 +2,14 @@ let bins = depot.nix.getBins pkgs.coreutils ["printf" "mkdir" "cat"]; + python3 = name: args@{ + libraries ? (_: []), + flakeIgnore ? [] + }: pkgs.writers.writePython3 name { + libraries = libraries pkgs.python3Packages; + flakeIgnore = flakeIgnore; + }; + python3Lib = { name, libraries ? (_: []) }: moduleString: let srcTree = depot.nix.runExecline.local name { stdin = moduleString; } [ "importas" "out" "out" @@ -30,10 +38,18 @@ let doCheck = false; }; - tests = import ./tests.nix { inherit depot pkgs python3Lib; }; + tests = import ./tests.nix { + inherit + depot + pkgs + python3 + python3Lib + ; + }; in { inherit + python3 python3Lib tests ; diff --git a/users/Profpatsch/writers/tests.nix b/users/Profpatsch/writers/tests.nix index 4cae230e0e6d..13ddfd10e976 100644 --- a/users/Profpatsch/writers/tests.nix +++ b/users/Profpatsch/writers/tests.nix @@ -1,19 +1,28 @@ -{ depot, pkgs, python3Lib }: +{ depot, pkgs, python3, python3Lib }: let + transitiveLib = python3Lib { + name = "transitive"; + } '' + def transitive(s): + return s + " 1 2 3" + ''; + testLib = python3Lib { name = "test_lib"; + libraries = _: [ transitiveLib ]; } '' + import transitive def test(): - return "test" + return transitive.transitive("test") ''; - pythonWithLib = pkgs.writers.writePython3 "python-with-lib" { - libraries = [ testLib ]; + pythonWithLib = python3 "python-with-lib" { + libraries = _: [ testLib ]; } '' import test_lib - assert(test_lib.test() == "test") + assert(test_lib.test() == "test 1 2 3") ''; in { -- cgit 1.4.1