Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/py/CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
- Improve verbosity of errors when starting kaleido improperly
- Add new api functions start/stop_sync_server
v1.0.0
- Add warning if using incompatible Plotly version
Expand Down
15 changes: 12 additions & 3 deletions src/py/kaleido/kaleido.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ def __init__(self, *args, **kwargs): # noqa: D417 no args/kwargs in description
self._background_render_tasks = set()
self._main_tasks = set()
self._tabs_ready = asyncio.Queue(maxsize=0)
self._total_tabs = 0
self._tmp_dir = None

page = kwargs.pop("page_generator", None)
Expand Down Expand Up @@ -165,6 +166,7 @@ async def _conform_tabs(self, tabs=None) -> None:
_logger.info("All navigates done, putting them all in queue.")
for tab in kaleido_tabs:
await self._tabs_ready.put(tab)
self._total_tabs = len(kaleido_tabs)
_logger.debug("Tabs fully navigated/enabled/ready")

async def populate_targets(self) -> None:
Expand Down Expand Up @@ -216,6 +218,10 @@ async def _get_kaleido_tab(self) -> _KaleidoTab:

"""
_logger.info(f"Getting tab from queue (has {self._tabs_ready.qsize()})")
if not self._total_tabs:
raise RuntimeError(
"Before generating a figure, you must await `k.open()`.",
)
tab = await self._tabs_ready.get()
_logger.info(f"Got {tab.tab.target_id[:4]}")
return tab
Expand Down Expand Up @@ -248,9 +254,12 @@ def _clean_tab_return_task(self, main_task, task):
raise e

def _check_render_task(self, name, tab, main_task, error_log, task):
if e := task.exception():
if isinstance(e, asyncio.CancelledError):
_logger.info(f"Something cancelled {name}.")
if task.cancelled():
_logger.info(f"Something cancelled {name}.")
error_log.append(
ErrorEntry(name, asyncio.CancelledError, tab.javascript_log),
)
elif e := task.exception():
_logger.error(f"Render Task Error In {name}- ", exc_info=e)
if isinstance(e, (asyncio.TimeoutError, TimeoutError)) and error_log:
error_log.append(
Expand Down
13 changes: 1 addition & 12 deletions src/py/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ maintainers = [
{name = "Andrew Pikul", email = "ajpikul@gmail.com"},
]
dependencies = [
"choreographer>=1.0.5",
"choreographer>=1.0.7",
"logistro>=1.0.8",
"orjson>=3.10.15",
"packaging",
Expand Down Expand Up @@ -54,17 +54,6 @@ dev = [
"typing-extensions>=4.12.2",
]

#docs = [
# "mkquixote @ git+ssh://git@github.com/geopozo/mkquixote; python_version>= '3.11'",
# "mkdocs>=1.6.1",
# "mkdocs-material>=9.5.49",
#]

#[tool.uv.sources]
#mkquixote = { path = "../../../mkquixote", editable = true }
#choreographer = { path = "../../../devtools_protocol", editable = true }
#logistro = { path = "../../../logistro", editable = true }

[tool.ruff.lint]
select = ["ALL"]
ignore = [
Expand Down
Loading
Loading