nixpkgs-suyu/nixos/modules/services/development/jupyter/kernel-options.nix
2022-10-14 22:33:14 +03:00

80 lines
1.9 KiB
Nix

# Options that can be used for creating a jupyter kernel.
{ lib, pkgs }:
with lib;
{
freeformType = (pkgs.formats.json { }).type;
options = {
displayName = mkOption {
type = types.str;
default = "";
example = literalExpression ''
"Python 3"
"Python 3 for Data Science"
'';
description = lib.mdDoc ''
Name that will be shown to the user.
'';
};
argv = mkOption {
type = types.listOf types.str;
example = [
"{customEnv.interpreter}"
"-m"
"ipykernel_launcher"
"-f"
"{connection_file}"
];
description = lib.mdDoc ''
Command and arguments to start the kernel.
'';
};
language = mkOption {
type = types.str;
example = "python";
description = lib.mdDoc ''
Language of the environment. Typically the name of the binary.
'';
};
env = mkOption {
type = types.attrsOf types.str;
default = { };
example = { OMP_NUM_THREADS = "1"; };
description = lib.mdDoc ''
Environment variables to set for the kernel.
'';
};
logo32 = mkOption {
type = types.nullOr types.path;
default = null;
example = literalExpression ''"''${env.sitePackages}/ipykernel/resources/logo-32x32.png"'';
description = lib.mdDoc ''
Path to 32x32 logo png.
'';
};
logo64 = mkOption {
type = types.nullOr types.path;
default = null;
example = literalExpression ''"''${env.sitePackages}/ipykernel/resources/logo-64x64.png"'';
description = lib.mdDoc ''
Path to 64x64 logo png.
'';
};
extraPaths = mkOption {
type = types.attrsOf types.path;
default = { };
example = literalExpression ''"{ examples = ''${env.sitePack}/IRkernel/kernelspec/kernel.js"; }'';
description = lib.mdDoc ''
Extra paths to link in kernel directory
'';
};
};
}