helm/modules/dev/python.nix
Henrik Lissner 3afaee991c feat(dev): add enableGlobally opt
I only need the envvars set. All my development environments are in
shell.nix's and global installations are usually unneeded.
2021-08-06 01:31:47 -04:00

52 lines
1.5 KiB
Nix

# modules/dev/python.nix --- https://godotengine.org/
#
# Python's ecosystem repulses me. The list of environment "managers" exhausts
# me. The Py2->3 transition make trainwrecks jealous. But SciPy, NumPy, iPython
# and Jupyter can have my babies. Every single one.
{ config, options, lib, pkgs, my, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.python;
in {
options.modules.dev.python = {
enable = mkBoolOpt false;
enableGlobally = mkBoolOpt false;
};
config = mkIf cfg.enable (mkMerge [
(mkIf cfg.enableGlobally {
user.packages = with pkgs; [
python37
python37Packages.pip
python37Packages.ipython
python37Packages.black
python37Packages.setuptools
python37Packages.pylint
python37Packages.poetry
];
environment.shellAliases = {
py = "python";
py2 = "python2";
py3 = "python3";
po = "poetry";
ipy = "ipython --no-banner";
ipylab = "ipython --pylab=qt5 --no-banner";
};
})
{
env.IPYTHONDIR = "$XDG_CONFIG_HOME/ipython";
env.PIP_CONFIG_FILE = "$XDG_CONFIG_HOME/pip/pip.conf";
env.PIP_LOG_FILE = "$XDG_DATA_HOME/pip/log";
env.PYLINTHOME = "$XDG_DATA_HOME/pylint";
env.PYLINTRC = "$XDG_CONFIG_HOME/pylint/pylintrc";
env.PYTHONSTARTUP = "$XDG_CONFIG_HOME/python/pythonrc";
env.PYTHON_EGG_CACHE = "$XDG_CACHE_HOME/python-eggs";
env.JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter";
}
]);
}