Skip to content

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

Description

@EwoutH

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 Switch from using nest-asyncio to nest-asyncio2 ipython/ipykernel#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:

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions