diff --git a/CHANGELOG.md b/CHANGELOG.md index ad472d6b9..61829645b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ ### Features - Add utility functions for converting between frame and axes ([#1778](../../pull/1778)) -- Jupyter frame selector ([#1738](../../pull/1738)) +- Jupyter frame selector ([#1738](../../pull/1738), [#1792](../../pull/1792)) ### Improvements diff --git a/large_image/tilesource/jupyter.py b/large_image/tilesource/jupyter.py index 3a54d96df..00ece9932 100644 --- a/large_image/tilesource/jupyter.py +++ b/large_image/tilesource/jupyter.py @@ -24,7 +24,6 @@ from typing import Any, Dict, List, Optional, Tuple, Union, cast from urllib.parse import parse_qs, quote, urlencode, urlparse, urlunparse -import aiohttp import numpy as np import large_image @@ -33,6 +32,7 @@ ipyleafletPresent = importlib.util.find_spec('ipyleaflet') is not None ipyvuePresent = importlib.util.find_spec('ipyvue') is not None +aiohttpPresent = importlib.util.find_spec('aiohttp') is not None class IPyLeafletMixin: @@ -320,7 +320,7 @@ def make_map( children: List[Any] = [] frames = metadata.get('frames') - if frames is not None and ipyvuePresent: + if frames is not None and ipyvuePresent and aiohttpPresent: from large_image.widgets.components import FrameSelector self.frame_selector = FrameSelector() @@ -419,6 +419,8 @@ def update_frame(self, frame, style, **kwargs): self._layer.redraw() def get_frame_histogram(self, query): + import aiohttp + if self._layer is not None: if self._frame_histograms is None: self._frame_histograms = {}