2025-07-24 13:55:40 +02:00

143 lines
3.2 KiB
Nix

{
lib,
pythonOlder,
stdenv,
buildPythonPackage,
fetchPypi,
hatch-jupyter-builder,
hatchling,
pytestCheckHook,
pytest-console-scripts,
pytest-jupyter,
pytest-timeout,
argon2-cffi,
jinja2,
tornado,
pyzmq,
ipykernel,
traitlets,
jupyter-core,
jupyter-client,
jupyter-events,
jupyter-server-terminals,
nbformat,
nbconvert,
packaging,
send2trash,
terminado,
prometheus-client,
anyio,
websocket-client,
overrides,
requests,
flaky,
}:
buildPythonPackage rec {
pname = "jupyter-server";
version = "2.16.0";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchPypi {
pname = "jupyter_server";
inherit version;
hash = "sha256-ZdS0T98ty73+CqGs5KhC1Kr3RqK3sWgTTVqu01Yht/Y=";
};
build-system = [
hatch-jupyter-builder
hatchling
];
dependencies = [
argon2-cffi
jinja2
tornado
pyzmq
traitlets
jupyter-core
jupyter-client
jupyter-events
jupyter-server-terminals
nbformat
nbconvert
packaging
send2trash
terminado
prometheus-client
anyio
websocket-client
overrides
];
# https://github.com/NixOS/nixpkgs/issues/299427
stripExclude = lib.optionals stdenv.hostPlatform.isDarwin [ "favicon.ico" ];
pythonImportsCheck = [ "jupyter_server" ];
nativeCheckInputs = [
ipykernel
pytestCheckHook
pytest-console-scripts
pytest-jupyter
pytest-timeout
requests
flaky
];
pytestFlags = [
"-Wignore::DeprecationWarning"
# 19 failures on python 3.13:
# ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7ffff2a0cc70>
# TODO: Can probably be removed at the next update
"-Wignore::pytest.PytestUnraisableExceptionWarning"
];
preCheck = ''
export HOME=$(mktemp -d)
export PATH=$out/bin:$PATH
'';
disabledTests = [
"test_cull_idle"
"test_server_extension_list"
"test_subscribe_websocket"
# test is presumable broken in sandbox
"test_authorized_requests"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# attempts to use trashcan, build env doesn't allow this
"test_delete"
# Insufficient access privileges for operation
"test_regression_is_hidden"
]
++ lib.optionals stdenv.hostPlatform.isLinux [
# Failed: DID NOT RAISE <class 'tornado.web.HTTPError'>
"test_copy_big_dir"
]
++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
# TypeError: the JSON object must be str, bytes or bytearray, not NoneType
"test_terminal_create_with_cwd"
];
disabledTestPaths = [
"tests/services/kernels/test_api.py"
"tests/services/sessions/test_api.py"
# nbconvert failed: `relax_add_props` kwargs of validate has been
# deprecated for security reasons, and will be removed soon.
"tests/nbconvert/test_handlers.py"
];
__darwinAllowLocalNetworking = true;
meta = {
changelog = "https://github.com/jupyter-server/jupyter_server/blob/v${version}/CHANGELOG.md";
description = "Backendi.e. core services, APIs, and REST endpointsto Jupyter web applications";
mainProgram = "jupyter-server";
homepage = "https://github.com/jupyter-server/jupyter_server";
license = lib.licenses.bsdOriginal;
teams = [ lib.teams.jupyter ];
};
}