From b046c774937d09e1a0562945c4d2011f14626c51 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Fri, 1 Jan 2021 23:55:14 +0100 Subject: feat(Profpatsch/writers): add yants types to python3 writer Uses the new restrict type to make sure flake errors start with an E. Change-Id: I30369ade28e1ef612c91a368de2d5b128e6cf2a9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2313 Tested-by: BuildkiteCI Reviewed-by: Profpatsch --- users/Profpatsch/writers/default.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/users/Profpatsch/writers/default.nix b/users/Profpatsch/writers/default.nix index 222172e38e09..6a76636389db 100644 --- a/users/Profpatsch/writers/default.nix +++ b/users/Profpatsch/writers/default.nix @@ -2,14 +2,19 @@ let bins = depot.nix.getBins pkgs.coreutils ["printf" "mkdir" "cat"]; - python3 = name: args@{ + inherit (depot.nix.yants) defun struct restrict attrs list string drv any; + + FlakeError = restrict "flake error" (s: builtins.substring 0 1 s == "E") string; + Libraries = defun [ (attrs any) (list drv) ]; + python3 = name: { libraries ? (_: []), flakeIgnore ? [] }: pkgs.writers.writePython3 name { - libraries = libraries pkgs.python3Packages; - flakeIgnore = flakeIgnore; + libraries = Libraries libraries pkgs.python3Packages; + flakeIgnore = list FlakeError flakeIgnore; }; + # TODO: add the same flake check as the pyhon3 writer python3Lib = { name, libraries ? (_: []) }: moduleString: let srcTree = depot.nix.runExecline.local name { stdin = moduleString; } [ "importas" "out" "out" -- cgit 1.4.1