anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / editors / jupyter / console.nix
blob06bc82a1780b4c672eb98cae0e143cfbac8f8441
1 { python3
2 , jupyter-kernel
3 , lib
4 }:
6 let
7   mkConsole = {
8     definitions ? jupyter-kernel.default
9     , kernel ? null
10   }:
11     (python3.buildEnv.override {
12       extraLibs = [ python3.pkgs.jupyter-console ];
13       makeWrapperArgs = [
14         "--set JUPYTER_PATH ${jupyter-kernel.create { inherit definitions; }}"
15       ] ++ lib.optionals (kernel != null) [
16         "--add-flags --kernel"
17         "--add-flags ${kernel}"
18       ];
19     }).overrideAttrs (oldAttrs: {
20       # To facilitate running nix run .#jupyter-console
21       meta = oldAttrs.meta // { mainProgram = "jupyter-console"; };
22     });
27   # Build a console derivation with an arbitrary set of definitions, and an optional kernel to use.
28   # If the kernel argument is not supplied, Jupyter console will pick a kernel to run from the ones
29   # available on the system.
30   inherit mkConsole;
32   # An ergonomic way to start a console with a single kernel.
33   withSingleKernel = definition: mkConsole {
34     definitions = lib.listToAttrs [(lib.nameValuePair definition.language definition)];
35     kernel = definition.language;
36   };