widgetti / widgetti/ipyvuetify
`ipyvuetify 3.0.0a3` appears to be missing fix #311 and still imports `nest_asyncio` unconditionally
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 innest-asyncio==1.6.0. - On June 11, downstream CI installed
ipykernel==7.3.0, which switched tonest-asyncio2(see https://github.com/ipython/ipykernel/pull/1499). - Since
nest-asynciowas no longer installed transitively,ipyvuetify==3.0.0a3crashed while importingFileInput.
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.0a4that 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_asynciohandling 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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