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

View File

@ -9,6 +9,9 @@
}; };
config = { config = {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# For nestml
cmake
gnumake
((pkgs.python3.withPackages config.pythonPackages).override (args: { ignoreCollisions = true; })) ((pkgs.python3.withPackages config.pythonPackages).override (args: { ignoreCollisions = true; }))
]; ];
pythonPackages = (p: with p; [ pythonPackages = (p: with p; [
@ -40,6 +43,7 @@
(nest.override { (nest.override {
withMpi = false; withMpi = false;
}) })
nestml
brian2 brian2
# SpiNNaker simulator # SpiNNaker simulator
spynnaker 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: { 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: { mne-python = prev-py.mne-python.overridePythonAttrs (old: {
pyproject = true; pyproject = true;
format = null; format = null;