Files
athenix/sw/python.nix
2026-01-27 16:11:36 -05:00

55 lines
1.4 KiB
Nix

{
config,
lib,
pkgs,
...
}:
# ============================================================================
# Python Environment
# ============================================================================
# This module provides Python development tools. It installs 'pixi' and 'uv'
# for project-based dependency management, rather than installing global
# Python packages which can lead to conflicts.
with lib;
let
cfg = config.athenix.sw.python;
in
{
options.athenix.sw.python = lib.mkOption {
type = lib.types.submodule {
options = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Enable Python development tools (pixi, uv).
Provides:
- pixi: Fast, cross-platform package manager for Python
- uv: Extremely fast Python package installer and resolver
These tools manage project-based dependencies rather than global
Python packages, avoiding conflicts and improving reproducibility.
'';
};
};
};
default = { };
description = "Python development environment configuration.";
};
config = mkIf cfg.enable {
environment.systemPackages = [
(pkgs.buildFHSEnv {
name = "pixi";
runScript = "pixi";
targetPkgs = pkgs: with pkgs; [ pixi ];
})
pkgs.uv
];
};
}