1{ lib
2, buildPythonPackage
3, celery
4, dash-core-components
5, dash-html-components
6, dash-table
7, diskcache
8, fetchFromGitHub
9, flask
10, flask-compress
11, mock
12, multiprocess
13, plotly
14, psutil
15, pytest-mock
16, pytestCheckHook
17, pythonOlder
18, pyyaml
19, redis
20}:
21
22buildPythonPackage rec {
23 pname = "dash";
24 version = "2.10.1";
25 format = "setuptools";
26
27 disabled = pythonOlder "3.6";
28
29 src = fetchFromGitHub {
30 owner = "plotly";
31 repo = pname;
32 rev = "refs/tags/v${version}";
33 hash = "sha256-f/+GKbuijSE4LXhC7uPuLwJRk9xmChhanPIe2jagzEg=";
34 };
35
36 propagatedBuildInputs = [
37 dash-core-components
38 dash-html-components
39 dash-table
40 flask
41 flask-compress
42 plotly
43 ];
44
45 passthru.optional-dependencies = {
46 celery = [
47 celery
48 redis
49 ];
50 diskcache = [
51 diskcache
52 multiprocess
53 psutil
54 ];
55 };
56
57 nativeCheckInputs = [
58 mock
59 pytest-mock
60 pytestCheckHook
61 pyyaml
62 ];
63
64 disabledTestPaths = [
65 "tests/unit/test_browser.py"
66 "tests/unit/test_app_runners.py" # Use selenium
67 "tests/integration"
68 ];
69
70 disabledTests = [
71 # Failed: DID NOT RAISE <class 'ImportError'>
72 "test_missing_flask_compress_raises"
73 ];
74
75 pythonImportsCheck = [
76 "dash"
77 ];
78
79 meta = with lib; {
80 description = "Python framework for building analytical web applications";
81 homepage = "https://dash.plot.ly/";
82 changelog = "https://github.com/plotly/dash/blob/v${version}/CHANGELOG.md";
83 license = licenses.mit;
84 maintainers = with maintainers; [ antoinerg ];
85 };
86}