Compare commits
9 Commits
22a531adbc
...
bda6871fc7
Author | SHA1 | Date |
---|---|---|
David Crompton | bda6871fc7 | |
David Crompton | 703675d218 | |
David Crompton | bb1ca71158 | |
David Crompton | f24d5cf194 | |
David Crompton | 905d0acefe | |
David Crompton | d14c11f044 | |
David Crompton | 29a13e0149 | |
David Crompton | d35c9ffc37 | |
David Crompton | faafde6dda |
|
@ -35,6 +35,7 @@
|
|||
config.cudaSupport = true;
|
||||
};
|
||||
};
|
||||
python-overlay = import ./overlays/python.nix;
|
||||
applyOverlays = overlays: ({...}:{ nixpkgs.overlays = overlays; });
|
||||
flakes = {...}: {nix.settings.experimental-features = [ "nix-command" "flakes" ];};
|
||||
in {
|
||||
|
@ -43,7 +44,7 @@
|
|||
specialArgs = attrs;
|
||||
modules = [
|
||||
flakes
|
||||
(applyOverlays [ unfree-overlay unstable-overlay ])
|
||||
(applyOverlays [ unfree-overlay unstable-overlay python-overlay ])
|
||||
./machines/kcnhub/configuration.nix
|
||||
sops-nix.nixosModules.sops
|
||||
];
|
||||
|
|
|
@ -2,8 +2,14 @@
|
|||
virtualisation = {
|
||||
podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
};
|
||||
docker.rootless = {
|
||||
enable = true;
|
||||
setSocketVariable = true;
|
||||
};
|
||||
# For compatability, and for some reason this isn't able to be per
|
||||
# container?
|
||||
oci-containers.backend = "docker";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
|
|
@ -59,7 +59,9 @@
|
|||
# matlab's installers)
|
||||
matlab-env = pkgs.buildFHSUserEnv {
|
||||
name = "matlab-env";
|
||||
targetPkgs = (ps: nix-matlab.targetPkgs ps);
|
||||
targetPkgs = (ps: (nix-matlab.targetPkgs ps) ++ (with ps; [
|
||||
linux-pam
|
||||
]));
|
||||
};
|
||||
|
||||
# Script used to get the most up to date version of the desired MATLAB
|
||||
|
@ -126,7 +128,7 @@
|
|||
'';
|
||||
runScript = pkgs.writeScript "matlab-run-${f}-script" ''
|
||||
export QT_QPA_PLATFORM=xcb
|
||||
${MATLAB_INSTALL_DIR}/bin/${f} "$@"
|
||||
"$MATLAB_INSTALL_DIR/bin/${f}" "$@"
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -144,6 +146,7 @@ in {
|
|||
environment.systemPackages =(with pkgs; [
|
||||
matlab-update-script
|
||||
matlab
|
||||
matlab-env
|
||||
matlab-mex
|
||||
octaveFull
|
||||
]);
|
||||
|
|
|
@ -1,12 +1,62 @@
|
|||
{config, lib, pkgs, ...}: {
|
||||
options = {
|
||||
pythonPackages = lib.mkOption {
|
||||
type = lib.types.anything;
|
||||
default = p: with p; [];
|
||||
example = p: with p; [ numpy scipy ];
|
||||
description = "List of Python Packages installed";
|
||||
};
|
||||
};
|
||||
config = {
|
||||
environment.systemPackages = with pkgs; [
|
||||
(pkgs.python3.withPackages (p: with p; [
|
||||
((pkgs.python3.withPackages config.pythonPackages).override (args: { ignoreCollisions = true; }))
|
||||
];
|
||||
pythonPackages = (p: with p; [
|
||||
# Common Python Libraries
|
||||
numpy
|
||||
scipy
|
||||
scikit-learn
|
||||
pandas
|
||||
openpyxl
|
||||
matplotlib
|
||||
tqdm
|
||||
ipympl
|
||||
matplotlib-inline
|
||||
seaborn
|
||||
]))
|
||||
];
|
||||
|
||||
# Neural Data Processing Libraries
|
||||
# Temporarily broken?: https://github.com/NixOS/nixpkgs/issues/259812
|
||||
mne-python
|
||||
edfio
|
||||
nibabel
|
||||
# View niftis!
|
||||
ipyniivue
|
||||
neo
|
||||
|
||||
# Neurosimulators
|
||||
neuronpy
|
||||
# nest with MPI is incompatible with Jupyter:
|
||||
# https://www.nest-simulator.org/pynest-api/_modules/nest.html
|
||||
# see pynestkernel comments about their workaround
|
||||
(nest.override {
|
||||
withMpi = false;
|
||||
})
|
||||
brian2
|
||||
|
||||
# Machine learning toolkits:
|
||||
tensorflow
|
||||
tensorboard
|
||||
keras
|
||||
edward
|
||||
transformers
|
||||
tflearn
|
||||
torch
|
||||
torchvision
|
||||
torchsde
|
||||
torchmetrics
|
||||
torchio
|
||||
torchdiffeq
|
||||
botorch
|
||||
lion-pytorch
|
||||
]);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -133,7 +133,7 @@
|
|||
# Configuration options defined ^
|
||||
# mem_limit must be higher to allow for MATLAB
|
||||
extraConfig = ''
|
||||
c.SystemdSpawner.mem_limit = '8G'
|
||||
c.SystemdSpawner.mem_limit = '32G'
|
||||
c.SystemdSpawner.cpu_limit = 2.0
|
||||
c.SystemdSpawner.isolate_devices = False
|
||||
c.SystemdSpawner.extra_paths = [
|
||||
|
@ -164,7 +164,7 @@
|
|||
jupyterhub
|
||||
jupyterlab
|
||||
# Extensions:
|
||||
jupyter-collaboration
|
||||
# jupyter-collaboration
|
||||
jupyter-server-mathjax
|
||||
jupyter-console
|
||||
jupyterlab-lsp
|
||||
|
@ -175,7 +175,8 @@
|
|||
|
||||
kernels = {
|
||||
python3 = let
|
||||
env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
|
||||
env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages;
|
||||
(config.pythonPackages pythonPackages) ++ [
|
||||
# Necessary for use as a kernel
|
||||
ipykernel
|
||||
ipdb
|
||||
|
@ -185,52 +186,8 @@
|
|||
mediapy
|
||||
# Progress bars etc. for in Jupyter/IPython
|
||||
halo
|
||||
|
||||
# Common Python Libraries
|
||||
numpy
|
||||
scipy
|
||||
scikit-learn
|
||||
pandas
|
||||
# Tables displayed in Jupyter: like Pandas Dataframes
|
||||
ipytablewidgets
|
||||
matplotlib
|
||||
ipympl
|
||||
matplotlib-inline
|
||||
seaborn
|
||||
|
||||
# Neural Data Processing Libraries
|
||||
# Temporarily broken?: https://github.com/NixOS/nixpkgs/issues/259812
|
||||
# mne-python
|
||||
nibabel
|
||||
# View niftis!
|
||||
ipyniivue
|
||||
neo
|
||||
|
||||
# Neurosimulators
|
||||
neuronpy
|
||||
# nest with MPI is incompatible with Jupyter:
|
||||
# https://www.nest-simulator.org/pynest-api/_modules/nest.html
|
||||
# see pynestkernel comments about their workaround
|
||||
(nest.override {
|
||||
withMpi = false;
|
||||
})
|
||||
brian2
|
||||
|
||||
# Machine learning toolkits:
|
||||
tensorflow
|
||||
tensorboard
|
||||
keras
|
||||
edward
|
||||
transformers
|
||||
tflearn
|
||||
torch
|
||||
torchvision
|
||||
torchsde
|
||||
torchmetrics
|
||||
torchio
|
||||
torchdiffeq
|
||||
botorch
|
||||
lion-pytorch
|
||||
])).override (args: { ignoreCollisions = true; });
|
||||
# Odd collision between tensorboard of torch & tensorflow
|
||||
# need to resolve later
|
||||
|
|
|
@ -9,6 +9,7 @@ in {
|
|||
# "Normal" User: for Podman Usage
|
||||
isNormalUser = true;
|
||||
home = stateDir;
|
||||
linger = true;
|
||||
};
|
||||
groups.overleaf = {};
|
||||
};
|
||||
|
|
|
@ -11,6 +11,12 @@
|
|||
./users/ngilab.nix
|
||||
./users/milad.nix
|
||||
./users/nooshin.nix
|
||||
./users/zoe.nix
|
||||
./users/yupeng.nix
|
||||
./users/reza.nix
|
||||
./users/michael.nix
|
||||
./users/ryan.nix
|
||||
./users/josh.nix
|
||||
|
||||
# Groups
|
||||
./users/groups/admin.nix
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
members = [
|
||||
"spandan"
|
||||
"frances"
|
||||
"nooshin"
|
||||
"josh"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, ... }: {
|
||||
users.users.josh = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ ];
|
||||
homeSize = "50g";
|
||||
homeProjectId = 117;
|
||||
packages = with pkgs; [
|
||||
|
||||
];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{ pkgs, ... }: {
|
||||
users.users.michael = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ ];
|
||||
homeSize = "50g";
|
||||
homeProjectId = 114;
|
||||
initialHashedPassword = "$y$j9T$i8NenYjqKmfJvKvmx2UmY0$5lqRmnrq2PDjELQj4F7xr/MS2Dd0iEOXDWp9kJwXYZ7";
|
||||
packages = with pkgs; [
|
||||
|
||||
];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{ pkgs, ... }: {
|
||||
users.users.reza = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ ];
|
||||
homeSize = "50g";
|
||||
homeProjectId = 115;
|
||||
initialHashedPassword = "$y$j9T$i8NenYjqKmfJvKvmx2UmY0$5lqRmnrq2PDjELQj4F7xr/MS2Dd0iEOXDWp9kJwXYZ7";
|
||||
packages = with pkgs; [
|
||||
|
||||
];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{ pkgs, ... }: {
|
||||
users.users.ryan = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ ];
|
||||
homeSize = "50g";
|
||||
homeProjectId = 116;
|
||||
initialHashedPassword = "$y$j9T$i8NenYjqKmfJvKvmx2UmY0$5lqRmnrq2PDjELQj4F7xr/MS2Dd0iEOXDWp9kJwXYZ7";
|
||||
packages = with pkgs; [
|
||||
|
||||
];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{ pkgs, ... }: {
|
||||
users.users.yupeng = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ ];
|
||||
homeSize = "50g";
|
||||
homeProjectId = 113;
|
||||
initialHashedPassword = "$y$j9T$i8NenYjqKmfJvKvmx2UmY0$5lqRmnrq2PDjELQj4F7xr/MS2Dd0iEOXDWp9kJwXYZ7";
|
||||
packages = with pkgs; [
|
||||
|
||||
];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{ pkgs, ... }: {
|
||||
users.users.zoe = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ ];
|
||||
homeSize = "50g";
|
||||
homeProjectId = 112;
|
||||
initialHashedPassword = "$y$j9T$i8NenYjqKmfJvKvmx2UmY0$5lqRmnrq2PDjELQj4F7xr/MS2Dd0iEOXDWp9kJwXYZ7";
|
||||
packages = with pkgs; [
|
||||
|
||||
];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
final: final-py: prev-py: {
|
||||
mne-python = prev-py.mne-python.overridePythonAttrs (old: {
|
||||
pyproject = true;
|
||||
format = null;
|
||||
propagatedBuildInputs = old.propagatedBuildInputs ++ [
|
||||
final-py.setuptools-scm
|
||||
];
|
||||
});
|
||||
|
||||
edfio = let
|
||||
version = "0.4.1";
|
||||
pname = "edfio";
|
||||
in final-py.buildPythonPackage {
|
||||
inherit pname version;
|
||||
format = "pyproject";
|
||||
|
||||
src = final.fetchFromGitHub {
|
||||
owner = "the-siesta-group";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-+yb3Q/JximkVS6SOTFnjMYghbOi+UBbqW2Bs29eSonA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with final-py; [
|
||||
poetry-core
|
||||
poetry-dynamic-versioning
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with final-py; [
|
||||
numpy
|
||||
];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
final: prev: {
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [(
|
||||
(import ./python-packages.nix final)
|
||||
)];
|
||||
}
|
Loading…
Reference in New Issue