diff options
Diffstat (limited to 'pkgs/development/python-modules/dash/default.nix')
-rw-r--r-- | pkgs/development/python-modules/dash/default.nix | 110 |
1 files changed, 79 insertions, 31 deletions
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix index d990d710d63..59e28a31daf 100644 --- a/pkgs/development/python-modules/dash/default.nix +++ b/pkgs/development/python-modules/dash/default.nix @@ -1,27 +1,43 @@ { lib , buildPythonPackage -, celery -, dash-core-components +, pythonOlder +, fetchFromGitHub + +, nodejs +, yarn +, fixup_yarn_lock +, fetchYarnDeps + +, setuptools +, flask +, werkzeug +, plotly , dash-html-components +, dash-core-components , dash-table +, importlib-metadata +, typing-extensions +, requests +, retrying +, ansi2html +, nest-asyncio + +, celery +, redis , diskcache -, fetchFromGitHub -, flask -, flask-compress -, mock , multiprocess -, plotly , psutil -, pytest-mock +, flask-compress + , pytestCheckHook -, pythonOlder +, pytest-mock +, mock , pyyaml -, redis }: buildPythonPackage rec { pname = "dash"; - version = "2.10.2"; + version = "2.14.1"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -30,16 +46,52 @@ buildPythonPackage rec { owner = "plotly"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-OcY4nEtIfR9nvBaBwpHeUJkHXwWZp+LZxjhEkwjRC9k="; + hash = "sha256-vQOfX9RCIbr5lfUyT2knwrO374/vm7jH+/1+BeqmRjI="; }; + nativeBuildInputs = [ + nodejs + yarn + fixup_yarn_lock + ]; + + yarnDeps = fetchYarnDeps { + yarnLock = src + "/@plotly/dash-jupyterlab/yarn.lock"; + hash = "sha256-mkiyrA0jGiP0zbabSjgHFLEUX3f+LZdJ8eARI5QA8CU="; + }; + + preBuild = '' + pushd @plotly/dash-jupyterlab + + export HOME=$(mktemp -d) + + yarn config --offline set yarn-offline-mirror ${yarnDeps} + fixup_yarn_lock yarn.lock + + substituteInPlace package.json --replace jlpm yarn + yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts + patchShebangs . + + # Generates the jupyterlab extension files + yarn run build:pack + + popd + ''; + propagatedBuildInputs = [ - dash-core-components - dash-html-components - dash-table + setuptools # for importing pkg_resources flask - flask-compress + werkzeug plotly + dash-html-components + dash-core-components + dash-table + importlib-metadata + typing-extensions + requests + retrying + ansi2html + nest-asyncio ]; passthru.optional-dependencies = { @@ -52,35 +104,31 @@ buildPythonPackage rec { multiprocess psutil ]; + compress = [ + flask-compress + ]; }; nativeCheckInputs = [ - mock - pytest-mock pytestCheckHook + pytest-mock + mock pyyaml ]; disabledTestPaths = [ "tests/unit/test_browser.py" - "tests/unit/test_app_runners.py" # Use selenium + "tests/unit/test_app_runners.py" # Uses selenium "tests/integration" ]; - disabledTests = [ - # Failed: DID NOT RAISE <class 'ImportError'> - "test_missing_flask_compress_raises" - ]; - - pythonImportsCheck = [ - "dash" - ]; + pythonImportsCheck = [ "dash" ]; - meta = with lib; { + meta = { description = "Python framework for building analytical web applications"; homepage = "https://dash.plot.ly/"; - changelog = "https://github.com/plotly/dash/blob/v${version}/CHANGELOG.md"; - license = licenses.mit; - maintainers = with maintainers; [ antoinerg ]; + changelog = "https://github.com/plotly/dash/blob/${src.rev}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ antoinerg tomasajt ]; }; } |