kcnhub: packages: python: nestml

master
Antoine Fauroux 2026-06-09 16:23:01 -04:00
parent ead922e434
commit 5dda9ad957
4 changed files with 103 additions and 2 deletions

View File

@ -43,6 +43,7 @@
};
};
python-overlay = import ./overlays/python.nix attrs;
package-overlays = import ./overlays/packages.nix attrs;
applyOverlays = overlays: ({...}:{ nixpkgs.overlays = overlays; });
flakes = {...}: {nix.settings.experimental-features = [ "nix-command" "flakes" ];};
in {
@ -51,7 +52,7 @@
specialArgs = attrs;
modules = [
flakes
(applyOverlays [ unfree-overlay unstable-overlay python-overlay ])
(applyOverlays [ unfree-overlay unstable-overlay python-overlay package-overlays ])
vscode-server.nixosModules.default
./machines/kcnhub/configuration.nix
sops-nix.nixosModules.sops
@ -59,7 +60,7 @@
};
overlays = {
default = applyOverlays [ unfree-overlay unstable-overlay python-overlay ];
default = applyOverlays [ unfree-overlay unstable-overlay python-overlay package-overlays ];
unstable = unstable-overlay;
};
};

View File

@ -9,6 +9,9 @@
};
config = {
environment.systemPackages = with pkgs; [
# For nestml
cmake
gnumake
((pkgs.python3.withPackages config.pythonPackages).override (args: { ignoreCollisions = true; }))
];
pythonPackages = (p: with p; [
@ -40,6 +43,7 @@
(nest.override {
withMpi = false;
})
nestml
brian2
# SpiNNaker simulator
spynnaker

12
overlays/packages.nix Normal file
View File

@ -0,0 +1,12 @@
inputs: final: prev: {
nest = prev.nest.overrideAttrs (old: {
postPatch = old.postPatch + ''
sed -e 's#-L$prefix/#-L#g' -i bin/nest-config.in
'';
});
nest-mpi = prev.nest-mpi.overrideAttrs (old: {
postPatch = old.postPatch + ''
sed -e 's#-L$prefix/#-L#g' -i bin/nest-config.in
'';
});
}

View File

@ -1,4 +1,88 @@
final: final-py: prev-py: {
nestml = let
pname = "nestml";
# Newer versions require newer antlr4
version = "7.0.2";
in final-py.buildPythonPackage {
inherit pname version;
src = final.fetchFromGitHub {
owner = "nest";
repo = pname;
rev = "v${version}";
hash = "sha256-BQzwIh2Gdq+rLwIwe7dyltDfEzpaIWGlXF0AfZGBUDw=";
};
doCheck = false;
dontUseCmakeConfigure = true;
propagatedBuildInputs = with final-py; [
numpy
scipy
sympy
antlr4-python3-runtime
#setuptools
jinja2
astropy
semver
odetoolbox
];
};
odetoolbox = let
pname = "ode-toolbox";
version = "2.5.8";
in final-py.buildPythonPackage {
inherit pname version;
src = final.fetchFromGitHub {
owner = "nest";
repo = pname;
rev = "v${version}";
hash = "sha256-do/R9tNXVdeoqQO5ofetP7jdq9VUq4UotO6LH3LL6jI=";
};
buildInputs = with final-py; [
pytest
pytest-runner
];
doCheck = false;
propagatedBuildInputs = with final-py; [
matplotlib
graphviz
sympy
scipy
numpy
cython
];
};
pytest-runner = let
pname = "pytest-runner";
version = "6.0.0";
in final-py.buildPythonPackage {
inherit pname version;
pyproject = true;
src = final.fetchFromGitHub {
owner = "pytest-dev";
repo = pname;
rev = "v${version}";
leaveDotGit = true;
hash = "sha256-cfUqEu3vN2i8jKZcTxId8Q/T/ld25qBeXY63g0eJnPs=";
};
nativeBuildInputs = [
final.git
];
propagatedBuildInputs = with final-py; [
setuptools-scm
];
};
mne-python = prev-py.mne-python.overridePythonAttrs (old: {
pyproject = true;
format = null;