oegedijk / explainerdashboard

Quickly build Explainable AI dashboards that show the inner workings of so-called "blackbox" machine learning models.
http://explainerdashboard.readthedocs.io
MIT License
2.29k stars 331 forks source link

Incompatibility with current version of dash-bootstrap-components #159

Closed thvasilo closed 2 years ago

thvasilo commented 2 years ago

Hi I tried running through the dashboard_examples notebook but I ran into issues because it seems like explainerdashboard is using some deprecated functions:

> ExplainerDashboard(ClassifierExplainer(RandomForestClassifier().fit(X_train, y_train), X_test, y_test)).run()

Detected RandomForestClassifier model: Changing class type to RandomForestClassifierExplainer...
Note: model_output=='probability', so assuming that raw shap output of RandomForestClassifier is in probability space...
Generating self.shap_explainer = shap.TreeExplainer(model)
Building ExplainerDashboard..
Detected notebook environment, consider setting mode='external', mode='inline' or mode='jupyterlab' to keep the notebook interactive while the dashboard is running...
Warning: calculating shap interaction values can be slow! Pass shap_interaction=False to remove interactions tab.
Generating layout...
Calculating shap values...

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/var/folders/gz/ljdrzf795bdfwrcys9680g480000gs/T/ipykernel_21846/2688247376.py in <module>
----> 1 ExplainerDashboard(ClassifierExplainer(RandomForestClassifier().fit(X_train, y_train), X_test, y_test)).run()

~/opt/anaconda3/envs/expl/lib/python3.9/site-packages/explainerdashboard/dashboards.py in __init__(self, explainer, tabs, title, name, description, simple, hide_header, header_hide_title, header_hide_selector, header_hide_download, hide_poweredby, block_selector_callbacks, pos_label, fluid, mode, width, height, bootstrap, external_stylesheets, server, url_base_pathname, responsive, logins, port, importances, model_summary, contributions, whatif, shap_dependence, shap_interaction, decision_trees, **kwargs)
    576         if isinstance(tabs, list):
    577             tabs = [self._convert_str_tabs(tab) for tab in tabs]
--> 578             self.explainer_layout = ExplainerTabsLayout(explainer, tabs, title, 
    579                             description=self.description,
    580                             **update_kwargs(kwargs, 

~/opt/anaconda3/envs/expl/lib/python3.9/site-packages/explainerdashboard/dashboards.py in __init__(self, explainer, tabs, title, name, description, header_hide_title, header_hide_selector, header_hide_download, hide_poweredby, block_selector_callbacks, pos_label, fluid, **kwargs)
     88 
     89         self.selector = PosLabelSelector(explainer, name="0", pos_label=pos_label)
---> 90         self.tabs  = [instantiate_component(tab, explainer, name=str(i+1), **kwargs) for i, tab in enumerate(tabs)]
     91         assert len(self.tabs) > 0, 'When passing a list to tabs, need to pass at least one valid tab!'
     92 

~/opt/anaconda3/envs/expl/lib/python3.9/site-packages/explainerdashboard/dashboards.py in <listcomp>(.0)
     88 
     89         self.selector = PosLabelSelector(explainer, name="0", pos_label=pos_label)
---> 90         self.tabs  = [instantiate_component(tab, explainer, name=str(i+1), **kwargs) for i, tab in enumerate(tabs)]
     91         assert len(self.tabs) > 0, 'When passing a list to tabs, need to pass at least one valid tab!'
     92 

~/opt/anaconda3/envs/expl/lib/python3.9/site-packages/explainerdashboard/dashboard_methods.py in instantiate_component(component, explainer, name, **kwargs)
    686             kwargs = {k:v for k,v in kwargs.items() if k in init_argspec.args + init_argspec.kwonlyargs}
    687         if "name" in init_argspec.args+init_argspec.kwonlyargs:
--> 688             component = component(explainer, name=name, **kwargs)
    689         else:
    690             print(f"ExplainerComponent {component} does not accept a name parameter, "

~/opt/anaconda3/envs/expl/lib/python3.9/site-packages/explainerdashboard/dashboard_components/composites.py in __init__(self, explainer, title, name, hide_whatifindexselector, hide_inputeditor, hide_whatifprediction, hide_whatifcontributiongraph, hide_whatifpdp, hide_whatifcontributiontable, hide_title, hide_selector, index_check, n_input_cols, sort, **kwargs)
    413             self.hide_whatifcontributiongraph = kwargs['hide_whatifcontribution']
    414 
--> 415         self.input = FeatureInputComponent(explainer, name=self.name+"0",
    416                         hide_selector=hide_selector, n_input_cols=self.n_input_cols,
    417                         **update_params(kwargs, hide_index=True))

~/opt/anaconda3/envs/expl/lib/python3.9/site-packages/explainerdashboard/dashboard_components/overview_components.py in __init__(self, explainer, title, name, subtitle, hide_title, hide_subtitle, hide_index, hide_range, index, n_input_cols, sort_features, fill_row_first, description, **kwargs)
    688                     "or 'alphabet', but you passed sort_features='{self.sort_features}'")
    689 
--> 690         self._feature_inputs = [
    691             self._generate_dash_input(
    692                 feature, self.explainer.onehot_cols, self.explainer.onehot_dict, self.explainer.categorical_dict) 

~/opt/anaconda3/envs/expl/lib/python3.9/site-packages/explainerdashboard/dashboard_components/overview_components.py in <listcomp>(.0)
    689 
    690         self._feature_inputs = [
--> 691             self._generate_dash_input(
    692                 feature, self.explainer.onehot_cols, self.explainer.onehot_dict, self.explainer.categorical_dict) 
    693                                 for feature in self._input_features]

~/opt/anaconda3/envs/expl/lib/python3.9/site-packages/explainerdashboard/dashboard_components/overview_components.py in _generate_dash_input(self, col, onehot_cols, onehot_dict, cat_dict)
    729             min_range = np.round(self.explainer.X[col][lambda x: x != self.explainer.na_fill].min(), 2)
    730             max_range = np.round(self.explainer.X[col][lambda x: x != self.explainer.na_fill].max(), 2)
--> 731             return dbc.FormGroup([
    732                     dbc.Label(col),
    733                     dbc.Input(id='feature-input-'+col+'-input-'+self.name, type="number"),

~/opt/anaconda3/envs/expl/lib/python3.9/site-packages/dash_bootstrap_components/__init__.py in __getattr__(self, name)
     50         if name in self.deprecated:
     51             # TODO: update URL before release
---> 52             raise AttributeError(
     53                 f"{name} was deprecated in dash-bootstrap-components version "
     54                 f"1.0.0. You are using {__version__}. For more details please "

AttributeError: FormGroup was deprecated in dash-bootstrap-components version 1.0.0. You are using 1.0.0. For more details please see the migration guide: https://dbc-v1.herokuapp.com/migration-guide/

Here's the full output for my conda list:

 Name                    Version                   Build  Channel
ansi2html                 1.6.0            py39h6e9494a_2    conda-forge
appnope                   0.1.2           py39hecd8cb5_1001
argon2-cffi               20.1.0           py39h9ed2024_1
async_generator           1.10               pyhd3eb1b0_0
atk-1.0                   2.36.0               he69c4ee_4    conda-forge
attrs                     21.2.0             pyhd3eb1b0_0
backcall                  0.2.0              pyhd3eb1b0_0
blas                      1.0                         mkl
bleach                    4.0.0              pyhd3eb1b0_0
brotli                    1.0.9                h0d85af4_6    conda-forge
brotli-bin                1.0.9                h0d85af4_6    conda-forge
brotli-python             1.0.9            py39h9fcab8e_6    conda-forge
brotlipy                  0.7.0           py39h89e85a6_1003    conda-forge
ca-certificates           2021.10.8            h033912b_0    conda-forge
cairo                     1.16.0            he43a7df_1008    conda-forge
certifi                   2021.10.8        py39h6e9494a_1    conda-forge
cffi                      1.15.0           py39he338e87_0    conda-forge
chardet                   4.0.0            py39h6e9494a_2    conda-forge
charset-normalizer        2.0.0              pyhd8ed1ab_0    conda-forge
chart-studio              1.1.0              pyh9f0ad1d_0    conda-forge
click                     8.0.3            py39h6e9494a_1    conda-forge
cloudpickle               2.0.0              pyhd8ed1ab_0    conda-forge
colorama                  0.4.4              pyh9f0ad1d_0    conda-forge
colour                    0.1.5                      py_0    conda-forge
cryptography              36.0.0           py39h209aa08_0    conda-forge
cycler                    0.11.0             pyhd8ed1ab_0    conda-forge
dash                      2.0.0              pyhd8ed1ab_0    conda-forge
dash-auth                 1.4.1              pyhd3deb0d_0    conda-forge
dash-bootstrap-components 1.0.0              pyhd8ed1ab_0    conda-forge
dash-core-components      2.0.0              pyhd8ed1ab_0    conda-forge
dash-html-components      2.0.0                    pypi_0    pypi
dash-table                5.0.0                    pypi_0    pypi
dataclasses               0.8                pyhc8e2a94_3    conda-forge
dbus                      1.13.6               ha13b53f_2    conda-forge
debugpy                   1.5.1            py39he9d5cce_0
decorator                 5.1.0              pyhd3eb1b0_0
defusedxml                0.7.1              pyhd3eb1b0_0
dtreeviz                  1.3.1              pyh050c7b8_0    conda-forge
entrypoints               0.3              py39hecd8cb5_0
expat                     2.4.1                he49afe7_0    conda-forge
explainerdashboard        0.3.6.2            pyhd8ed1ab_1    conda-forge
flask                     2.0.2              pyhd8ed1ab_0    conda-forge
flask-compress            1.10.1             pyhd8ed1ab_0    conda-forge
flask-seasurf             0.3.1              pyhd8ed1ab_0    conda-forge
flask-wtf                 1.0.0              pyhd8ed1ab_0    conda-forge
flask_simplelogin         0.0.7              pyhd3deb0d_0    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 hab24e00_0    conda-forge
fontconfig                2.13.1            h10f422b_1005    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
fonttools                 4.28.2           py39h89e85a6_0    conda-forge
freetype                  2.10.4               h4cff582_1    conda-forge
fribidi                   1.0.10               hbcb3906_0    conda-forge
gdk-pixbuf                2.42.6               h2e6141f_0    conda-forge
gettext                   0.19.8.1          hd1a6beb_1008    conda-forge
giflib                    5.2.1                hbcb3906_2    conda-forge
glib                      2.70.1               hcf210ce_0    conda-forge
glib-tools                2.70.1               hcf210ce_0    conda-forge
graphite2                 1.3.13            h2e338ed_1001    conda-forge
graphviz                  2.49.3               h77de9ca_0    conda-forge
gtk2                      2.24.33              h675d97a_1    conda-forge
gts                       0.7.6                hccb3bdf_2    conda-forge
harfbuzz                  3.1.1                h159f659_0    conda-forge
icu                       68.2                 he49afe7_0    conda-forge
idna                      3.1                pyhd3deb0d_0    conda-forge
importlib-metadata        4.8.1            py39hecd8cb5_0
importlib_metadata        4.8.1                hd3eb1b0_0
iniconfig                 1.1.1              pyh9f0ad1d_0    conda-forge
intel-openmp              2021.4.0          hecd8cb5_3538
ipykernel                 6.4.1            py39hecd8cb5_1
ipython                   7.29.0           py39h01d92e1_0
ipython_genutils          0.2.0              pyhd3eb1b0_1
ipywidgets                7.6.5              pyhd3eb1b0_1
itsdangerous              2.0.1              pyhd8ed1ab_0    conda-forge
jbig                      2.1               h0d85af4_2003    conda-forge
jedi                      0.18.0           py39hecd8cb5_1
jinja2                    3.0.2              pyhd3eb1b0_0
joblib                    1.1.0              pyhd3eb1b0_0
jpeg                      9d                   h9ed2024_0
jsonschema                3.2.0              pyhd3eb1b0_2
jupyter                   1.0.0            py39hecd8cb5_7
jupyter-dash              0.4.0              pyhd8ed1ab_0    conda-forge
jupyter_client            7.0.6              pyhd3eb1b0_0
jupyter_console           6.4.0              pyhd3eb1b0_0
jupyter_core              4.9.1            py39hecd8cb5_0
jupyterlab_pygments       0.1.2                      py_0
jupyterlab_widgets        1.0.0              pyhd3eb1b0_1
kiwisolver                1.3.2            py39hf018cea_1    conda-forge
krb5                      1.19.2               hcfbf3a7_3    conda-forge
lcms2                     2.12                 h577c468_0    conda-forge
lerc                      3.0                  he49afe7_0    conda-forge
libbrotlicommon           1.0.9                h0d85af4_6    conda-forge
libbrotlidec              1.0.9                h0d85af4_6    conda-forge
libbrotlienc              1.0.9                h0d85af4_6    conda-forge
libclang                  11.1.0          default_he082bbe_1    conda-forge
libcxx                    12.0.0               h2f01273_0
libdeflate                1.8                  h0d85af4_0    conda-forge
libedit                   3.1.20191231         h0678c8f_2    conda-forge
libffi                    3.4.2                h0d85af4_5    conda-forge
libgd                     2.3.3                h311d3fc_0    conda-forge
libgfortran               3.0.1                h93005f0_2
libglib                   2.70.1               hf1fb8c0_0    conda-forge
libiconv                  1.16                 haf1e3a3_0    conda-forge
libllvm11                 11.1.0               hd011deb_2    conda-forge
libpng                    1.6.37               ha441bb4_0
libpq                     13.5                 hea3049e_0    conda-forge
librsvg                   2.52.4               h02b643e_0    conda-forge
libsodium                 1.0.18               h1de35cc_0
libtiff                   4.3.0                hd146c10_2    conda-forge
libtool                   2.4.6             he49afe7_1008    conda-forge
libwebp                   1.2.1                h28dabe5_0    conda-forge
libwebp-base              1.2.1                h0d85af4_0    conda-forge
libxml2                   2.9.12               h93ec3fd_0    conda-forge
libzlib                   1.2.11            h9173be1_1013    conda-forge
lightgbm                  3.2.1            py39h23ab428_0
llvm-openmp               12.0.0               h0dcd299_1
llvmlite                  0.37.0           py39h798a4f4_1    conda-forge
lz4-c                     1.9.3                he49afe7_1    conda-forge
markupsafe                2.0.1            py39h9ed2024_0
matplotlib-base           3.5.0            py39hb07454d_0    conda-forge
matplotlib-inline         0.1.2              pyhd3eb1b0_2
mistune                   0.8.4           py39h9ed2024_1000
mkl                       2021.4.0           hecd8cb5_637
mkl-service               2.4.0            py39h9ed2024_0
mkl_fft                   1.3.1            py39h4ab4a9b_0
mkl_random                1.2.2            py39hb2f4e1b_0
more-itertools            8.11.0             pyhd8ed1ab_0    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
mysql-common              8.0.27               h694c41f_1    conda-forge
mysql-libs                8.0.27               h115446f_1    conda-forge
nbclient                  0.5.3              pyhd3eb1b0_0
nbconvert                 6.1.0            py39hecd8cb5_0
nbformat                  5.1.3              pyhd3eb1b0_0
ncurses                   6.2                  h2e338ed_4    conda-forge
nest-asyncio              1.5.1              pyhd3eb1b0_0
notebook                  6.4.6            py39hecd8cb5_0
nspr                      4.32                 hcd9eead_1    conda-forge
nss                       3.72                 h31e2bf1_0    conda-forge
numba                     0.54.1           py39hae1ba45_0
numpy                     1.20.3           py39h4b4dc7a_0
numpy-base                1.20.3           py39he0bd621_0
olefile                   0.46               pyh9f0ad1d_1    conda-forge
openjpeg                  2.4.0                h6e7aa92_1    conda-forge
openssl                   1.1.1l               h0d85af4_0    conda-forge
oyaml                     1.0                pyhd8ed1ab_0    conda-forge
packaging                 21.3               pyhd3eb1b0_0
pandas                    1.3.4            py39h4d6be9b_1    conda-forge
pandocfilters             1.4.3            py39hecd8cb5_1
pango                     1.48.10              h056538c_2    conda-forge
parso                     0.8.2              pyhd3eb1b0_0
pcre                      8.45                 he49afe7_0    conda-forge
pexpect                   4.8.0              pyhd3eb1b0_3
pickleshare               0.7.5           pyhd3eb1b0_1003
pillow                    8.4.0            py39he9bb72f_0    conda-forge
pip                       21.2.4           py39hecd8cb5_0
pixman                    0.40.0               hbcb3906_0    conda-forge
plotly                    5.4.0              pyhd8ed1ab_0    conda-forge
pluggy                    1.0.0            py39h6e9494a_2    conda-forge
prometheus_client         0.12.0             pyhd3eb1b0_0
prompt-toolkit            3.0.20             pyhd3eb1b0_0
prompt_toolkit            3.0.20               hd3eb1b0_0
ptyprocess                0.7.0              pyhd3eb1b0_2
py                        1.11.0             pyh6c4a22f_0    conda-forge
pycparser                 2.21               pyhd3eb1b0_0
pygments                  2.10.0             pyhd3eb1b0_0
pyopenssl                 21.0.0             pyhd8ed1ab_0    conda-forge
pyparsing                 3.0.4              pyhd3eb1b0_0
pyqt                      5.12.3           py39h6e9494a_8    conda-forge
pyqt-impl                 5.12.3           py39he44290a_8    conda-forge
pyqt5-sip                 4.19.18          py39h15fb055_8    conda-forge
pyqtchart                 5.12             py39he44290a_8    conda-forge
pyqtwebengine             5.12.1           py39he44290a_8    conda-forge
pyrsistent                0.18.0           py39hca72f7f_0
pysocks                   1.7.1            py39h6e9494a_4    conda-forge
pytest                    6.2.5            py39h6e9494a_1    conda-forge
python                    3.9.7           h1248fe1_3_cpython    conda-forge
python-dateutil           2.8.2              pyhd3eb1b0_0
python-graphviz           0.16               pyhd3eb1b0_1
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.3             pyhd8ed1ab_0    conda-forge
pyyaml                    6.0              py39h89e85a6_3    conda-forge
pyzmq                     22.2.1           py39h23ab428_1
qt                        5.12.9               h126340a_4    conda-forge
qtconsole                 5.1.1              pyhd3eb1b0_0
qtpy                      1.10.0             pyhd3eb1b0_0
readline                  8.1                  h9ed2024_0
requests                  2.26.0             pyhd8ed1ab_0    conda-forge
retrying                  1.3.3                      py_2    conda-forge
scikit-learn              1.0.1            py39hae1ba45_0
scipy                     1.7.1            py39h88652d9_2
send2trash                1.8.0              pyhd3eb1b0_1
setuptools                58.0.4           py39hecd8cb5_0
shap                      0.40.0           py39h4d6be9b_0    conda-forge
sip                       4.19.13          py39h23ab428_0
six                       1.16.0             pyhd3eb1b0_0
slicer                    0.0.7              pyhd8ed1ab_0    conda-forge
sqlite                    3.36.0               hce871da_0
tbb                       2021.4.0             h940c156_1    conda-forge
tenacity                  8.0.1              pyhd8ed1ab_0    conda-forge
terminado                 0.9.4            py39hecd8cb5_0
testpath                  0.5.0              pyhd3eb1b0_0
threadpoolctl             2.2.0              pyh0d69192_0
tk                        8.6.11               h7bc2e8c_0
toml                      0.10.2             pyhd8ed1ab_0    conda-forge
tornado                   6.1              py39h9ed2024_0
tqdm                      4.62.3             pyhd8ed1ab_0    conda-forge
traitlets                 5.1.1              pyhd3eb1b0_0
tzdata                    2021e                hda174b7_0
ua-parser                 0.10.0             pyh9f0ad1d_0    conda-forge
urllib3                   1.26.7             pyhd8ed1ab_0    conda-forge
waitress                  2.0.0              pyhd8ed1ab_0    conda-forge
wcwidth                   0.2.5              pyhd3eb1b0_0
webencodings              0.5.1            py39hecd8cb5_1
werkzeug                  2.0.1              pyhd8ed1ab_0    conda-forge
wheel                     0.37.0             pyhd3eb1b0_1
widgetsnbextension        3.5.1            py39hecd8cb5_0
wtforms                   3.0.0              pyhd8ed1ab_0    conda-forge
xz                        5.2.5                h1de35cc_0
yaml                      0.2.5                haf1e3a3_0    conda-forge
zeromq                    4.3.4                h23ab428_0
zipp                      3.6.0              pyhd3eb1b0_0
zlib                      1.2.11            h9173be1_1013    conda-forge
zstd                      1.5.0                h582d3a0_0    conda-forge

Can we get a list of versions for the packages in requirements.txt that are guaranteed to work? Pinning some more versions there (and similarly for conda) would help.

Long term, updating the dash-related code to follow the new versions would be the best option.

thvasilo commented 2 years ago

Note that this seems to be specific with the conda-forge installation. If I do the following:

conda create --name exp jupyter # Create a new env with just jupyter installed
conda activate exp
pip install explainerdashboard

And launch the notebook it seems to run fine. My conda list in that case is:

 Name                    Version                   Build  Channel
ansi2html                 1.6.0                    pypi_0    pypi
appnope                   0.1.2           py39hecd8cb5_1001
argon2-cffi               20.1.0           py39h9ed2024_1
async_generator           1.10               pyhd3eb1b0_0
attrs                     21.2.0             pyhd3eb1b0_0
backcall                  0.2.0              pyhd3eb1b0_0
bleach                    4.0.0              pyhd3eb1b0_0
brotli                    1.0.9                    pypi_0    pypi
ca-certificates           2021.10.26           hecd8cb5_2
certifi                   2021.10.8        py39hecd8cb5_0
cffi                      1.14.6           py39h2125817_0
charset-normalizer        2.0.7                    pypi_0    pypi
chart-studio              1.1.0                    pypi_0    pypi
click                     8.0.3                    pypi_0    pypi
cloudpickle               2.0.0                    pypi_0    pypi
colour                    0.1.5                    pypi_0    pypi
cycler                    0.11.0                   pypi_0    pypi
dash                      2.0.0                    pypi_0    pypi
dash-auth                 1.4.1                    pypi_0    pypi
dash-bootstrap-components 0.13.1                   pypi_0    pypi
dash-core-components      2.0.0                    pypi_0    pypi
dash-html-components      2.0.0                    pypi_0    pypi
dash-table                5.0.0                    pypi_0    pypi
debugpy                   1.5.1            py39he9d5cce_0
decorator                 5.1.0              pyhd3eb1b0_0
defusedxml                0.7.1              pyhd3eb1b0_0
dtreeviz                  1.3.2                    pypi_0    pypi
entrypoints               0.3              py39hecd8cb5_0
explainerdashboard        0.3.7                    pypi_0    pypi
flask                     2.0.2                    pypi_0    pypi
flask-compress            1.10.1                   pypi_0    pypi
flask-seasurf             0.3.1                    pypi_0    pypi
flask-simplelogin         0.1.1                    pypi_0    pypi
flask-wtf                 0.15.1                   pypi_0    pypi
fonttools                 4.28.2                   pypi_0    pypi
icu                       58.2                 h0a44026_3
idna                      3.3                      pypi_0    pypi
importlib-metadata        4.8.1            py39hecd8cb5_0
importlib_metadata        4.8.1                hd3eb1b0_0
iniconfig                 1.1.1                    pypi_0    pypi
ipykernel                 6.4.1            py39hecd8cb5_1
ipython                   7.29.0           py39h01d92e1_0
ipython_genutils          0.2.0              pyhd3eb1b0_1
ipywidgets                7.6.5              pyhd3eb1b0_1
itsdangerous              2.0.1                    pypi_0    pypi
jedi                      0.18.0           py39hecd8cb5_1
jinja2                    3.0.2              pyhd3eb1b0_0
joblib                    1.1.0                    pypi_0    pypi
jpeg                      9d                   h9ed2024_0
jsonschema                3.2.0              pyhd3eb1b0_2
jupyter                   1.0.0            py39hecd8cb5_7
jupyter-dash              0.4.0                    pypi_0    pypi
jupyter_client            7.0.6              pyhd3eb1b0_0
jupyter_console           6.4.0              pyhd3eb1b0_0
jupyter_core              4.9.1            py39hecd8cb5_0
jupyterlab_pygments       0.1.2                      py_0
jupyterlab_widgets        1.0.0              pyhd3eb1b0_1
kiwisolver                1.3.2                    pypi_0    pypi
libcxx                    12.0.0               h2f01273_0
libffi                    3.3                  hb1e8313_2
libpng                    1.6.37               ha441bb4_0
libsodium                 1.0.18               h1de35cc_0
llvmlite                  0.37.0                   pypi_0    pypi
markupsafe                2.0.1            py39h9ed2024_0
matplotlib                3.5.0                    pypi_0    pypi
matplotlib-inline         0.1.2              pyhd3eb1b0_2
mistune                   0.8.4           py39h9ed2024_1000
nbclient                  0.5.3              pyhd3eb1b0_0
nbconvert                 6.1.0            py39hecd8cb5_0
nbformat                  5.1.3              pyhd3eb1b0_0
ncurses                   6.3                  hca72f7f_2
nest-asyncio              1.5.1              pyhd3eb1b0_0
notebook                  6.4.6            py39hecd8cb5_0
numba                     0.54.1                   pypi_0    pypi
numpy                     1.20.3                   pypi_0    pypi
openssl                   1.1.1l               h9ed2024_0
orjson                    3.6.4                    pypi_0    pypi
oyaml                     1.0                      pypi_0    pypi
packaging                 21.3               pyhd3eb1b0_0
pandas                    1.3.4                    pypi_0    pypi
pandocfilters             1.4.3            py39hecd8cb5_1
parso                     0.8.2              pyhd3eb1b0_0
pexpect                   4.8.0              pyhd3eb1b0_3
pickleshare               0.7.5           pyhd3eb1b0_1003
pillow                    8.4.0                    pypi_0    pypi
pip                       21.2.4           py39hecd8cb5_0
plotly                    5.4.0                    pypi_0    pypi
pluggy                    1.0.0                    pypi_0    pypi
prometheus_client         0.12.0             pyhd3eb1b0_0
prompt-toolkit            3.0.20             pyhd3eb1b0_0
prompt_toolkit            3.0.20               hd3eb1b0_0
ptyprocess                0.7.0              pyhd3eb1b0_2
py                        1.11.0                   pypi_0    pypi
pycparser                 2.21               pyhd3eb1b0_0
pygments                  2.10.0             pyhd3eb1b0_0
pyparsing                 3.0.4              pyhd3eb1b0_0
pyqt                      5.9.2            py39h23ab428_6
pyrsistent                0.18.0           py39hca72f7f_0
pytest                    6.2.5                    pypi_0    pypi
python                    3.9.7                h88f2d9e_1
python-dateutil           2.8.2              pyhd3eb1b0_0
python-graphviz           0.18.2                   pypi_0    pypi
pytz                      2021.3                   pypi_0    pypi
pyyaml                    6.0                      pypi_0    pypi
pyzmq                     22.2.1           py39h23ab428_1
qt                        5.9.7                h468cd18_1
qtconsole                 5.1.1              pyhd3eb1b0_0
qtpy                      1.10.0             pyhd3eb1b0_0
readline                  8.1                  h9ed2024_0
requests                  2.26.0                   pypi_0    pypi
retrying                  1.3.3                    pypi_0    pypi
scikit-learn              1.0.1                    pypi_0    pypi
scipy                     1.7.2                    pypi_0    pypi
send2trash                1.8.0              pyhd3eb1b0_1
setuptools                58.0.4           py39hecd8cb5_0
setuptools-scm            6.3.2                    pypi_0    pypi
shap                      0.40.0                   pypi_0    pypi
sip                       4.19.13          py39h23ab428_0
six                       1.16.0             pyhd3eb1b0_0
slicer                    0.0.7                    pypi_0    pypi
sqlite                    3.36.0               hce871da_0
tenacity                  8.0.1                    pypi_0    pypi
terminado                 0.9.4            py39hecd8cb5_0
testpath                  0.5.0              pyhd3eb1b0_0
threadpoolctl             3.0.0                    pypi_0    pypi
tk                        8.6.11               h7bc2e8c_0
toml                      0.10.2                   pypi_0    pypi
tomli                     1.2.2                    pypi_0    pypi
tornado                   6.1              py39h9ed2024_0
tqdm                      4.62.3                   pypi_0    pypi
traitlets                 5.1.1              pyhd3eb1b0_0
tzdata                    2021e                hda174b7_0
ua-parser                 0.10.0                   pypi_0    pypi
urllib3                   1.26.7                   pypi_0    pypi
waitress                  2.0.0                    pypi_0    pypi
wcwidth                   0.2.5              pyhd3eb1b0_0
webencodings              0.5.1            py39hecd8cb5_1
werkzeug                  2.0.2                    pypi_0    pypi
wheel                     0.37.0             pyhd3eb1b0_1
widgetsnbextension        3.5.1            py39hecd8cb5_0
wtforms                   3.0.0                    pypi_0    pypi
xz                        5.2.5                h1de35cc_0
zeromq                    4.3.4                h23ab428_0
zipp                      3.6.0              pyhd3eb1b0_0
zlib                      1.2.11               h1de35cc_3

There are a bunch of differences but you'll note dash-bootstrap-components 0.13.1 pypi_0 pypi here, it was version 1.0.0 when installed through conda-forge.

oegedijk commented 2 years ago

Hi @thvasilo,

I just noticed that the 0.3.7 version which fixes the dash-bootstrap-components dependency has not been deployed correctly on conda-forge. Somehow missed that. If I have time today will investigate.

In the meantime you can pip install the latest version, which should pin dash-bootstrap-components to v1

oegedijk commented 2 years ago

Sorry, still working on this: there is something else broken with dtreeviz and the graphviz back-end with conda, so haven't been able to release the fix yet on conda. Will keep trying.