From b676e832dc75b48fa8d6307c698ae0ea605af7a5 Mon Sep 17 00:00:00 2001 From: Infinidoge Date: Mon, 21 Apr 2025 17:38:13 -0400 Subject: [PATCH] global/programming: move python packages into separate option --- lib/options.nix | 5 +++++ modules/global/programming.nix | 32 ++++++++++++++++++-------------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/options.nix b/lib/options.nix index ed4ed33..ccfae46 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -32,7 +32,12 @@ rec { in coercedTo packageListType flatten (listOf package); + coercedPackageListFunction = + with types; + coercedTo coercedPackageList (v: (_: v)) (functionTo coercedPackageList); + packageListOpt = mkOpt coercedPackageList [ ]; + packageListFunctionOpt = mkOpt coercedPackageListFunction [ ]; addPackageLists = lib.mapAttrs ( name: value: diff --git a/modules/global/programming.nix b/modules/global/programming.nix index 1782f5a..0a1cfe1 100644 --- a/modules/global/programming.nix +++ b/modules/global/programming.nix @@ -6,7 +6,7 @@ }: let inherit (lib) flip; - inherit (lib.our) mkBoolOpt' addPackageLists; + inherit (lib.our) mkBoolOpt' packageListFunctionOpt addPackageLists; cfg = config.universe.programming; @@ -24,7 +24,10 @@ in java.enable = programmingOpt "Java"; lua.enable = programmingOpt "Lua"; nim.enable = programmingOpt "Nim"; - python.enable = programmingOpt' "Python" true; + python = { + enable = programmingOpt' "Python" true; + pythonPackages = packageListFunctionOpt; + }; racket.enable = programmingOpt "Racket"; rust.enable = programmingOpt "Rust"; zig.enable = programmingOpt "Zig"; @@ -79,19 +82,20 @@ in nim ]; + python.pythonPackages = ( + p: with p; [ + black + isort + jupyter + mypy + parallel-ssh + pip + pyflakes + pytest + ] + ); python.packages = [ - (python313.withPackages ( - p: with p; [ - black - isort - jupyter - mypy - parallel-ssh - pip - pyflakes - pytest - ] - )) + (python313.withPackages cfg.python.pythonPackages) pipenv ruff ];