aboutsummaryrefslogtreecommitdiff
path: root/tasks
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-07-06 21:06:27 +0200
committerAdrian Kummerlaender2019-07-06 21:06:27 +0200
commit6bae7fc0d898a62607344ae9b25242d4a1ef1413 (patch)
treeab9dd4483d41340c3db907ae7cf405a4c2b621c8 /tasks
parente8689b8ca91d2d27378b85d11db64c6acfae6916 (diff)
downloadnixos_home-6bae7fc0d898a62607344ae9b25242d4a1ef1413.tar
nixos_home-6bae7fc0d898a62607344ae9b25242d4a1ef1413.tar.gz
nixos_home-6bae7fc0d898a62607344ae9b25242d4a1ef1413.tar.bz2
nixos_home-6bae7fc0d898a62607344ae9b25242d4a1ef1413.tar.lz
nixos_home-6bae7fc0d898a62607344ae9b25242d4a1ef1413.tar.xz
nixos_home-6bae7fc0d898a62607344ae9b25242d4a1ef1413.tar.zst
nixos_home-6bae7fc0d898a62607344ae9b25242d4a1ef1413.zip
Add Python console task type
Diffstat (limited to 'tasks')
-rw-r--r--tasks/default.nix40
1 files changed, 34 insertions, 6 deletions
diff --git a/tasks/default.nix b/tasks/default.nix
index dc77baf..3521443 100644
--- a/tasks/default.nix
+++ b/tasks/default.nix
@@ -9,6 +9,24 @@ let
'';
};
+ mkPythonShellDerivation = n: ps: init: pkgs.stdenvNoCC.mkDerivation rec {
+ name = n;
+ buildInputs = [(pkgs.python3.withPackages (python-packages: with python-packages; ps ++ [
+ jupyterlab
+ qtconsole
+ ]))];
+ shellHook = let
+ startup = pkgs.writeTextFile {
+ name = "startup.py";
+ text = init;
+ };
+
+ in ''
+ export NIX_SHELL_NAME="${name}"
+ export PYTHONSTARTUP=${startup}
+ '';
+ };
+
in {
custom.tasks = {
bsc_edit = {
@@ -65,13 +83,23 @@ in {
]);
};
- sympy_shell = {
- description = "Python shell with SymPy";
+ pymath_shell = {
+ description = "Python console for mathematics";
directory = "~/";
- type = "environment";
- environment = with pkgs; mkShellDerivation "python-env" [
- (pkgs.python3.withPackages (python-packages: with python-packages; [ sympy ]))
- ];
+ type = "python-console";
+ environment = mkPythonShellDerivation "pymath-env" (with pkgs.python3Packages; [
+ sympy
+ numpy
+ matplotlib
+ ])
+ ''
+ import numpy as np
+ import sympy
+ import matplotlib
+ import matplotlib.pyplot as plt
+
+ sympy.init_session()
+ '';
};
};
}