Skip to content

Update/dash aix360 heart - #805

Open
budescode wants to merge 2 commits into
plotly:mainfrom
budescode:update/dash-aix360-heart
Open

Update/dash aix360 heart#805
budescode wants to merge 2 commits into
plotly:mainfrom
budescode:update/dash-aix360-heart

Conversation

@budescode

Copy link
Copy Markdown

Issue for app: none (dependency update, no linked issue)

App pull request

  • This is a new app
  • I am improving an existing app (redesigns/code "makeovers")

About

Brings dash-aix360-heart to current package versions and makes it
installable with uv or pip from a fresh clone.

  • Declare the nine direct dependencies in pyproject.toml and lock with uv
  • Regenerate requirements.txt from uv.lock so pip users still work
  • Bump aix360 0.2.1 -> 0.3.0
  • Bump scikit-learn 0.24.2 -> 1.3.2, capped below 1.4 because aix360 uses an argument scikit-learn 1.4 removed
  • Bump numpy 1.20.3 -> 1.26.4, capped below 2 for scikit-learn 1.3
  • Bump pandas 1.2.4 -> 3.0.5
  • Bump cvxpy 1.1.13 -> 1.7.5
  • Bump dash 1.20.0 -> 4.4.1
  • Bump dash-bootstrap-components 0.12.2 -> 2.0.4
  • Bump plotly 4.14.3 -> 7.0.0
  • Bump gunicorn 20.1.0 -> 26.2.0
  • Drop tensorflow, torch, keras, Django, xgboost, shap, lime and the other packages the app never uses; requirements.txt goes from 96 lines to 54
  • Drop dash-core-components, dash-html-components, dash-renderer and dash-table, merged into dash
  • Require Python 3.11 or 3.12; raise runtime.txt from 3.7.6 to 3.12.11
  • Replace dash_core_components and dash_html_components imports with from dash import dcc, html
  • Replace app.run_server with app.run
  • Replace dbc.FormGroup, removed in dash-bootstrap-components 1.0, with html.Div
  • Replace Series.append with pd.concat and Series.iteritems with Series.items in utils.py, both removed in pandas 2.0
  • Update the Python version in the README setup instructions

The scikit-learn and numpy caps are the newest versions that work with
the newest aix360. aix360's FeatureBinarizer still calls
OneHotEncoder(sparse=False), removed in scikit-learn 1.4, on both the
0.3.0 release and current master. Lifting the caps only needs an aix360
release with that call updated.

Verified on Python 3.12: the data loads, the model trains, the
explanation table and GAM data compute, and the callback produces
figures for every combination of the two dropdowns.

  • Playground deployment URL (new version):
  • Current gallery app URL: (delete this line if inapplicable)

Workflow

  • I have created a branch in the appropriate monorepo, and the
    elements necessary for successful deployment are in place.
  • If the app is a redesigned and/or restyled version of an
    existing gallery app, I've summarized the changes requested in the
    appropriate Streambed issue and confirm that they have been applied.
  • If the app is on the Dash Gallery portal, I have added a link to
    the GitHub repository for the source code in the portal description.
  • If the app is a reimplementation of a Python gallery app for the
    DashR gallery, the app in this PR mimics, as closely as possible,
    the style and functionality of the existing app.
  • I have removed all Google Analytics code from the app's
    assets/ folder.

The pre-review review

I have addressed all of the following questions:

  • Does everything in my code serve some purpose? (I have removed
    any dead and/or irrelevant code.)
  • Does everything in my code have a clear purpose? (My code is
    readable and, where it isn't, it has been commented appropriately.)
  • Am I reinventing the wheel? (I have used appropriate packages to
    lessen the volume of code that needs to be maintained.)

Post PR (at merge time)

  • When you are merging, make sure to write one of the following tags in the commit message (or it will default to patch):
    • #patch - An app has been updated or fixed
    • #minor - A new app has been added, or an app has been significantly reworked
    • #major - Breaking changes, make sure to discuss with dash-core before using this tag

- Declare the nine direct dependencies in pyproject.toml and lock with uv
- Regenerate requirements.txt from uv.lock so pip users still work
- Bump aix360 0.2.1 -> 0.3.0
- Bump scikit-learn 0.24.2 -> 1.3.2, capped below 1.4 because aix360 uses an argument scikit-learn 1.4 removed
- Bump numpy 1.20.3 -> 1.26.4, capped below 2 for scikit-learn 1.3
- Bump pandas 1.2.4 -> 3.0.5
- Bump cvxpy 1.1.13 -> 1.7.5
- Bump dash 1.20.0 -> 4.4.1
- Bump dash-bootstrap-components 0.12.2 -> 2.0.4
- Bump plotly 4.14.3 -> 7.0.0
- Bump gunicorn 20.1.0 -> 26.2.0
- Drop tensorflow, torch, keras, Django, xgboost, shap, lime and the other packages the app never uses
- Drop dash-core-components, dash-html-components, dash-renderer and dash-table, merged into dash
- Require Python 3.11 or 3.12; raise runtime.txt from 3.7.6 to 3.12.11
…andas 3

- Replace dash_core_components and dash_html_components imports with from dash import dcc, html
- Replace app.run_server with app.run
- Replace dbc.FormGroup, removed in dash-bootstrap-components 1.0, with html.Div
- Replace Series.append with pd.concat in utils.py, removed in pandas 2.0
- Replace Series.iteritems with Series.items in utils.py, removed in pandas 2.0
- Update the Python version in the README setup instructions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant