about summary refs log tree commit diff
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2021-01-01T22·55+0100
committerProfpatsch <mail@profpatsch.de>2021-01-03T16·12+0000
commitb046c774937d09e1a0562945c4d2011f14626c51 (patch)
tree377a28735511046412faa1af64dffc3fb3ecaa6b
parent6b21b108ba07201e6471444961fa217c33b383c1 (diff)
feat(Profpatsch/writers): add yants types to python3 writer r/2053
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 <mail@profpatsch.de>
-rw-r--r--users/Profpatsch/writers/default.nix11
1 files 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"