jupyter / jupyter/notebook

Marking dependencies as optional, and removing redundant ones

Open
#6,282 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
13.3k
Forks
5.8k
Avg merge
6d 11h
Merged PRs (30d)
7

Description

When `notebook` is added as a dependency in [poetry](https://python-poetry.org/), it significantly increases the runtime of a `poetry update`, from ~5s to ~120s, due to the many required dependencies.
I noticed that a couple of these could redesignated as optional; they aren't part of core functionality, and are used in only one or two places:

- `prometheus-client`
- `argon2-cffi`
- `send2trash`

Furthermore, it appears that `pyzmq` could be removed altogether, because [this reference to an old Tornado 5 issue](https://github.com/jupyter/notebook/blob/160c27d3c23dafe8b42240571db21b0d5cbae2fe/setup.py#L114-L116) should not be relevant anymore.

Contributor guide

Open the contributing guide

Research direction

Start with the dependency declarations in setup.py and locate the usage sites for prometheus-client, argon2-cffi, send2trash, and pyzmq. Check that optional dependencies remain available where used, pyzmq is unnecessary, and dependency resolution improves without breaking core functionality.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook, python
Domain
build-system
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.