Skip to content

Commit 30dfc16

Browse files
committed
Split dependencies
1 parent d5df9a7 commit 30dfc16

10 files changed

+67
-51
lines changed

Diff for: .circleci/config.yml

+14-11
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ jobs:
4343
sudo pip install virtualenv --upgrade
4444
python -m venv venv && . venv/bin/activate
4545
set -eo pipefail
46-
pip install -e .[testing,dev] --progress-bar off && pip list | grep dash
46+
pip install -e .[testing,dev,celery-manager,diskcache-manager] --progress-bar off
47+
pip install -r ./requires-ci.txt --progress-bar off
48+
pip list | grep dash
4749
npm i
4850
npm run build
4951
python setup.py sdist
@@ -70,15 +72,15 @@ jobs:
7072
- checkout
7173
- run: echo $PYVERSION > ver.txt
7274
- restore_cache:
73-
key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "requires-dev.txt" }}-{{ checksum "requires-install.txt" }}-{{ checksum "requires-testing.txt" }}
75+
key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "requires-ci.txt" }}-{{ checksum "requires-dev.txt" }}-{{ checksum "requires-install.txt" }}-{{ checksum "requires-testing.txt" }}
7476
- run:
7577
name: ️️🏗️ pip dev requirements
7678
command: |
7779
sudo pip install --upgrade virtualenv --progress-bar off
7880
python -m venv venv || virtualenv venv && . venv/bin/activate
79-
pip install -e . --no-cache-dir -r requires-install.txt -r requires-dev.txt -r requires-testing.txt --progress-bar off
81+
pip install -e .[dev,testing] --no-cache-dir -r requires-ci.txt --progress-bar off
8082
- save_cache:
81-
key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "requires-dev.txt" }}-{{ checksum "requires-install.txt" }}-{{ checksum "requires-testing.txt" }}
83+
key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "requires-ci.txt" }}-{{ checksum "requires-dev.txt" }}-{{ checksum "requires-install.txt" }}-{{ checksum "requires-testing.txt" }}
8284
paths:
8385
- venv
8486
- run:
@@ -214,7 +216,7 @@ jobs:
214216
- checkout
215217
- run: echo $PYVERSION > ver.txt
216218
- restore_cache:
217-
key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "requires-dev.txt" }}-{{ checksum "requires-install.txt" }}-{{ checksum "requires-testing.txt" }}
219+
key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "requires-ci.txt" }}-{{ checksum "requires-dev.txt" }}-{{ checksum "requires-install.txt" }}-{{ checksum "requires-testing.txt" }}
218220
- attach_workspace:
219221
at: ~/dash
220222
- run:
@@ -223,7 +225,7 @@ jobs:
223225
. venv/bin/activate
224226
npm install --production
225227
pip install --no-cache-dir --upgrade --ignore-installed dash-package/dash-package.tar.gz --progress-bar off
226-
pip install -r requires-install.txt -r requires-dev.txt -r requires-testing.txt --progress-bar off
228+
pip install -r requires-install.txt -r requires-ci.txt -r requires-dev.txt -r requires-testing.txt -r requires-celery-manager.txt -r requires-diskcache-manager.txt --progress-bar off
227229
sed -i '/dash/d' requires-install.txt
228230
pip list | grep dash
229231
- run:
@@ -265,7 +267,7 @@ jobs:
265267
path: ~/dash
266268
- run: echo $PYTHON_VERSION > ver.txt
267269
- restore_cache:
268-
key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "dev-requirements.txt" }}
270+
key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "dev-requirements.txt" }}-{{ checksum "../../requires-ci.txt" }}
269271
- attach_workspace:
270272
at: ~/dash/components/dash-core-components
271273
- run:
@@ -274,9 +276,9 @@ jobs:
274276
sudo pip install virtualenv --upgrade
275277
python -m venv venv || virtualenv venv && . venv/bin/activate
276278
pip install dash-package/dash-package.tar.gz[dev,testing]
277-
pip install --progress-bar off --no-cache-dir -r dev-requirements.txt
279+
pip install --progress-bar off --no-cache-dir -r dev-requirements.txt -r ../../requires-ci.txt
278280
- save_cache:
279-
key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "dev-requirements.txt" }}
281+
key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "dev-requirements.txt" }}-{{ checksum "../../requires-ci.txt" }}
280282
paths:
281283
- venv
282284
- run:
@@ -421,7 +423,7 @@ jobs:
421423
python -m venv venv || virtualenv venv
422424
. venv/bin/activate
423425
pip install dash-package/dash-package.tar.gz[dev,testing]
424-
pip install -r dev-requirements.txt
426+
pip install -r dev-requirements.txt -r ../../requires-ci.txt
425427
npm ci
426428
427429
- run:
@@ -493,6 +495,7 @@ jobs:
493495
. venv/bin/activate
494496
pip install -r dev-requirements.txt --quiet
495497
pip install -r python-requirements.txt --quiet
498+
pip install -r ../../requires-ci.txt
496499
pip install dash-package/dash-package.tar.gz[dev,testing]
497500
- run:
498501
name: Build
@@ -597,7 +600,7 @@ jobs:
597600
name: Install requirements
598601
command: |
599602
. venv/bin/activate
600-
pip install -r dev-requirements.txt --quiet
603+
pip install -r dev-requirements.txt -r ../../requires-ci.txt --quiet
601604
pip install dash-package/dash-package.tar.gz[dev,testing]
602605
603606
- run:

Diff for: dash/long_callback/managers/celery_manager.py

+12-4
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,18 @@ def __init__(self, celery_app, cache_by=None, expire=None):
2525
for ``expire`` seconds. If not provided, the lifetime of cache entries
2626
is determined by the default behavior of the celery result backend.
2727
"""
28-
import celery # pylint: disable=import-outside-toplevel,import-error
29-
from celery.backends.base import ( # pylint: disable=import-outside-toplevel,import-error
30-
DisabledBackend,
31-
)
28+
try:
29+
import celery # pylint: disable=import-outside-toplevel,import-error
30+
from celery.backends.base import ( # pylint: disable=import-outside-toplevel,import-error
31+
DisabledBackend,
32+
)
33+
except ImportError as missing_imports:
34+
raise ImportError(
35+
"""\
36+
CeleryLongCallbackManager requires extra dependencies which can be installed doing
37+
38+
$ pip install "dash[celery-manager]"\n"""
39+
) from missing_imports
3240

3341
if not isinstance(celery_app, celery.Celery):
3442
raise ValueError("First argument must be a celery.Celery object")

Diff for: dash/long_callback/managers/diskcache_manager.py

+2-7
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,9 @@ def __init__(self, cache, cache_by=None, expire=None):
2828
except ImportError as missing_imports:
2929
raise ImportError(
3030
"""\
31-
DiskcacheLongCallbackManager requires the multiprocess, diskcache, and psutil packages
32-
which can be installed using pip...
31+
DiskcacheLongCallbackManager requires extra dependencies which can be installed doing
3332
34-
$ pip install multiprocess diskcache psutil
35-
36-
or conda.
37-
38-
$ conda install -c conda-forge multiprocess diskcache psutil\n"""
33+
$ pip install "dash[diskcache-manager]"\n"""
3934
) from missing_imports
4035

4136
if not isinstance(cache, (diskcache.Cache, diskcache.FanoutCache)):

Diff for: dash/testing/plugin.py

+12-4
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,18 @@ def dashjl(request, dashjl_server, tmpdir):
189189

190190
@pytest.fixture
191191
def diskcache_manager():
192-
from dash.long_callback import ( # pylint: disable=import-outside-toplevel
193-
DiskcacheLongCallbackManager,
194-
)
195-
import diskcache # pylint: disable=import-outside-toplevel
192+
try:
193+
from dash.long_callback import ( # pylint: disable=import-outside-toplevel
194+
DiskcacheLongCallbackManager,
195+
)
196+
import diskcache # pylint: disable=import-outside-toplevel
197+
except ImportError as missing_imports:
198+
raise ImportError(
199+
"""\
200+
DiskcacheLongCallbackManager requires extra dependencies which can be installed doing
201+
202+
$ pip install "dash[diskcache-manager]"\n"""
203+
) from missing_imports
196204

197205
cache = diskcache.Cache()
198206
return DiskcacheLongCallbackManager(cache)

Diff for: requires-celery-manager.txt

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
redis>=3.5.3
2+
celery[redis]>=5.1.2

Diff for: requires-ci.txt

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
black==21.6b0
2+
dash-flow-example==0.0.5
3+
dash-dangerously-set-inner-html
4+
flake8==3.9.2
5+
flaky==3.7.0
6+
flask-talisman==0.8.1
7+
isort==4.3.21;python_version<"3.7"
8+
mock==4.0.3
9+
orjson==3.3.1;python_version<"3.7"
10+
orjson==3.6.1;python_version>="3.7"
11+
pylint==2.10.2
12+
pytest-mock==3.2.0
13+
pytest-sugar==0.9.4

Diff for: requires-dev.txt

+3-13
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,3 @@
1-
dash_flow_example==0.0.5
2-
dash-dangerously-set-inner-html
3-
isort==4.3.21;python_version<"3.7"
4-
mock==4.0.3
5-
flake8==3.9.2
6-
PyYAML==5.4.1
7-
pylint==2.10.2
8-
black==21.6b0
9-
fire==0.4.0
10-
coloredlogs==15.0.1
11-
flask-talisman==0.8.1
12-
orjson==3.3.1;python_version<"3.7"
13-
orjson==3.6.1;python_version>="3.7"
1+
coloredlogs>=15.0.1
2+
fire>=0.4.0
3+
PyYAML>=5.4.1

Diff for: requires-diskcache-manager.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
diskcache>=5.2.1
2+
multiprocess>=0.70.12
3+
psutil>=5.8.0

Diff for: requires-testing.txt

+4-12
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,8 @@
1-
pytest>=6.0.2
2-
pytest-sugar>=0.9.4
3-
pytest-mock>=3.2.0
1+
beautifulsoup4>=4.8.2
2+
cryptography<3.4;python_version<"3.7"
43
lxml>=4.6.2
5-
selenium>=3.141.0
64
percy>=2.0.2
7-
cryptography<3.4;python_version<"3.7"
5+
pytest>=6.0.2
86
requests[security]>=2.21.0
9-
beautifulsoup4>=4.8.2
7+
selenium>=3.141.0
108
waitress>=1.4.4
11-
diskcache>=5.2.1
12-
multiprocess>=0.70.12
13-
redis>=3.5.3
14-
psutil>=5.8.0
15-
celery[redis]>=5.1.2
16-
flaky>=3.7.0

Diff for: setup.py

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ def read_req_file(req_type):
3030
extras_require={
3131
"dev": read_req_file("dev"),
3232
"testing": read_req_file("testing"),
33+
"celery-manager": read_req_file("celery-manager"),
34+
"diskcache-manager": read_req_file("diskcache-manager"),
3335
},
3436
entry_points={
3537
"console_scripts": [

0 commit comments

Comments
 (0)