31 lines
645 B
Nix
31 lines
645 B
Nix
|
|
# Python runtime with pip and uv.
|
||
|
|
{
|
||
|
|
config,
|
||
|
|
lib,
|
||
|
|
pkgs,
|
||
|
|
...
|
||
|
|
}:
|
||
|
|
with lib; let
|
||
|
|
cfg = config.coding.languages.python;
|
||
|
|
in {
|
||
|
|
options.coding.languages.python = {
|
||
|
|
enable = mkEnableOption "Python runtime with pip and uv";
|
||
|
|
extraPackages = mkOption {
|
||
|
|
type = types.listOf types.package;
|
||
|
|
default = [];
|
||
|
|
example = literalExpression "[ pkgs.python3Packages.numpy ]";
|
||
|
|
description = "Additional Python packages to include";
|
||
|
|
};
|
||
|
|
};
|
||
|
|
|
||
|
|
config = mkIf cfg.enable {
|
||
|
|
home.packages = [
|
||
|
|
(pkgs.python3.withPackages (ps:
|
||
|
|
with ps; [
|
||
|
|
pip
|
||
|
|
uv
|
||
|
|
] ++ cfg.extraPackages))
|
||
|
|
];
|
||
|
|
};
|
||
|
|
}
|