1111from ._initialization_params import init_params_dict , init_key_aliases
1212from ._method_types import deferred_methods
1313from .integrations import _detect_render_type , _get_viewer_image , _get_viewer_point_sets
14+ from .integrations .environment import IN_JUPYTERLITE
1415from .render_types import RenderType
1516from .viewer_config import ITK_VIEWER_SRC , PYDATA_SPHINX_HREF , MUI_HREF
1617
@@ -35,8 +36,9 @@ def __init__(
3536 self .init_data = {}
3637 self .img = display (HTML (f'<div />' ), display_id = str (uuid .uuid4 ()))
3738 self .wid = None
38- self .viewer_event = threading .Event ()
39- self .data_event = threading .Event ()
39+ if not IN_JUPYTERLITE :
40+ self .viewer_event = threading .Event ()
41+ self .data_event = threading .Event ()
4042
4143 def _get_input_data (self ):
4244 input_options = ["data" , "image" , "label_image" , "point_sets" ]
@@ -98,11 +100,13 @@ async def run(self, ctx):
98100 config = config ,
99101 )
100102 _viewer_count += 1
101- itk_viewer .registerEventListener (
102- 'renderedImageAssigned' , self .set_event
103- )
104- # Once the viewer has been created any queued requests can be run
105- asyncio .get_running_loop ().call_soon_threadsafe (self .viewer_event .set )
103+ if not IN_JUPYTERLITE :
104+ itk_viewer .registerEventListener (
105+ 'renderedImageAssigned' , self .set_event
106+ )
107+ if not IN_JUPYTERLITE :
108+ # Once the viewer has been created any queued requests can be run
109+ asyncio .get_running_loop ().call_soon_threadsafe (self .viewer_event .set )
106110
107111 self .set_default_ui_values (itk_viewer )
108112 self .itk_viewer = itk_viewer
@@ -155,13 +159,14 @@ def __init__(
155159 self , ui_collapsed = True , rotate = False , ui = "pydata-sphinx" , ** add_data_kwargs
156160 ):
157161 """Create a viewer."""
158- self .bg_jobs = bg .BackgroundJobManager ()
159162 self .viewer_rpc = ViewerRPC (
160163 ui_collapsed = ui_collapsed , rotate = rotate , ui = ui , ** add_data_kwargs
161164 )
162- self .queue = queue .Queue ()
163- self .deferred_queue = queue .Queue ()
164- self .bg_thread = self .bg_jobs .new (self .queue_worker )
165+ if not IN_JUPYTERLITE :
166+ self .bg_jobs = bg .BackgroundJobManager ()
167+ self .queue = queue .Queue ()
168+ self .deferred_queue = queue .Queue ()
169+ self .bg_thread = self .bg_jobs .new (self .queue_worker )
165170 api .export (self .viewer_rpc )
166171
167172 @property
@@ -190,7 +195,7 @@ def queue_worker(self):
190195 loop .run_until_complete (task )
191196
192197 def queue_request (self , method , * args , ** kwargs ):
193- if hasattr (self .viewer_rpc , 'itk_viewer' ):
198+ if IN_JUPYTERLITE or hasattr (self .viewer_rpc , 'itk_viewer' ):
194199 fn = getattr (self .viewer_rpc .itk_viewer , method )
195200 fn (* args , ** kwargs )
196201 elif method in deferred_methods ():
0 commit comments