Only load the IPython and Jupyter integration modules when Dash is im… - #4037
Open
brandonschabell wants to merge 1 commit into
Open
brandonschabell wants to merge 1 commit into
brandonschabell wants to merge 1 commit into
Conversation
…ported inside IPython
|
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The gate detects an imported IPython package rather than an active IPython shell.
Review effort: Balanced
Findings: 1
What changed in this PR
Optimizes Dash startup by avoiding Jupyter integration imports outside IPython.
Changes:
- Gates Jupyter dependencies behind IPython detection.
- Adds subprocess-based import tests.
- Documents the startup improvement.
| File | Description |
|---|---|
dash/_jupyter.py |
Adds conditional integration loading. |
tests/unit/test_jupyter_import.py |
Tests import behavior inside and outside IPython. |
CHANGELOG.md |
Records the performance improvement. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+18
to
21
| if "IPython" not in sys.modules: | ||
| # Not inside IPython: skip the heavy imports, they double the cost of `import dash`. | ||
| raise ImportError | ||
| from IPython import get_ipython # type: ignore[attr-defined] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Only load the IPython and Jupyter integration modules when Dash is imported inside IPython. This should roughly halve the time it takes to
import dashin environments that have IPython installed, but not imported.Contributor Checklist
optionals
CHANGELOG.md