widgetti / widgetti/ipyvuetify

`ipyvuetify 3.0.0a3` appears to be missing fix #311 and still imports `nest_asyncio` unconditionally

Open
#345 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
355
Forks
61
PR merge metrics
No merged PRs in 30d

Description

Downstream prerelease CI started failing with ipyvuetify==3.0.0a3 after ipykernel==7.3.0 was released.

The failure is:

ModuleNotFoundError: No module named 'nest_asyncio'

Import chain:

pytest
-> pytest plugin autoload
-> solara
-> solara.components.file_drop
-> ipyvuetify.extra.FileInput
-> ipyvuetify.extra.file_input
-> import nest_asyncio

This looks like the old pre-#311 behavior, where ipyvuetify/extra/file_input.py imported nest_asyncio unconditionally at module import time.

However, #311 was merged on Apr 8, 2024:

fix: no hard dependency on nest_asyncio, use only when needed

That change made nest_asyncio optional and only required it when FileInput.readinto() is called from a thread with an event loop.

The current failure suggests that the published 3.0.0a3 artifact does not include #311, or that the 3.0 alpha release line was cut from stale/divergent code.

Why this surfaced now:

  • On June 9, downstream CI installed ipykernel==7.2.0, which pulled in nest-asyncio==1.6.0.
  • On June 11, downstream CI installed ipykernel==7.3.0, which switched to nest-asyncio2 (see https://github.com/ipython/ipykernel/pull/1499).
  • Since nest-asyncio was no longer installed transitively, ipyvuetify==3.0.0a3 crashed while importing FileInput.

Expected behavior:

Importing ipyvuetify.extra.FileInput should not require nest_asyncio, matching the intent and implementation of #311.

Suggested upstream fix:

  • publish a new 3.0.0a4 that includes #311; or
  • yank/retract stale 3.0.0a* releases if the 3.0 alpha line is not intended for use; or
  • otherwise ensure the 3.0 alpha branch contains the same optional nest_asyncio handling as master.

I do not think the correct fix is to add a hard dependency on nest-asyncio, because #311 explicitly changed the design to avoid a hard dependency and only require it when actually needed.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing ipyvuetify/extra/file_input.py in the 3.0.0a3 artifact with the implementation from merged issue #311 and master. Verify that importing ipyvuetify.extra.FileInput works without nest_asyncio, then inspect the 3.0 alpha release state to determine whether a new artifact or release-line correction is needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
release
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.