diff options
author | Profpatsch <mail@profpatsch.de> | 2021-01-01T22·55+0100 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2021-01-03T16·12+0000 |
commit | b046c774937d09e1a0562945c4d2011f14626c51 (patch) | |
tree | 377a28735511046412faa1af64dffc3fb3ecaa6b | |
parent | 6b21b108ba07201e6471444961fa217c33b383c1 (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.nix | 11 |
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" |