Skip to content

Commit a75b811

Browse files
committed
fix(marimo): resolve connection errors for emscripten based build
1 parent 34df13c commit a75b811

File tree

1 file changed

+34
-16
lines changed

1 file changed

+34
-16
lines changed

notebooks/gui_notebook.py

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
@app.cell
1212
def _():
13+
import sys
1314
import datetime
1415
import os
1516

@@ -18,12 +19,18 @@ def _():
1819
import micropip
1920
import numpy as np
2021
import pandas as pd
21-
return alt, datetime, micropip, mo, np, os, pd
22+
return alt, datetime, micropip, mo, np, os, pd, sys
2223

2324

2425
@app.cell
25-
async def _(micropip):
26-
await micropip.install("baec[aws]")
26+
async def _(micropip, sys):
27+
if sys.platform == 'emscripten':
28+
# running in Pyodide or other Emscripten based build
29+
await micropip.install(["pyodide-http", "baec[aws]", "ssl"])
30+
31+
# Patch requests
32+
import pyodide_http
33+
pyodide_http.patch_all()
2734

2835
from nuclei.client import NucleiClient
2936

@@ -58,7 +65,11 @@ def _(mo):
5865
def _(NucleiClient, jwt, os):
5966
if jwt.value != "":
6067
os.environ["NUCLEI_TOKEN"] = jwt.value
61-
client = NucleiClient()
68+
69+
if "NUCLEI_TOKEN" in os.environ:
70+
client = NucleiClient()
71+
else:
72+
raise ValueError("No JWT token provided")
6273
return (client,)
6374

6475

@@ -79,15 +90,18 @@ def _(mo):
7990

8091

8192
@app.cell
82-
def _(Credentials, aws_access_key_id, aws_secret_access_key):
83-
credentials = Credentials(
84-
aws_access_key_id=(
85-
aws_access_key_id.value if aws_access_key_id.value != "" else None
86-
),
87-
aws_secret_access_key=(
88-
aws_secret_access_key.value if aws_secret_access_key.value != "" else None
89-
),
90-
)
93+
def _(Credentials, aws_access_key_id, aws_secret_access_key, os):
94+
if aws_access_key_id.value != "":
95+
os.environ["BASETIME_KEY_ID"] = aws_access_key_id.value
96+
97+
if aws_secret_access_key.value != "":
98+
os.environ["BASETIME_ACCESS_KEY"] = aws_secret_access_key.value
99+
100+
if "BASETIME_KEY_ID" in os.environ and "BASETIME_ACCESS_KEY" in os.environ:
101+
credentials = Credentials()
102+
103+
else:
104+
raise ValueError("BaseTime AWS credentials provided")
91105
return (credentials,)
92106

93107

@@ -414,7 +428,9 @@ def _(days, end_time_delta, mo, np, series, settlements):
414428

415429

416430
@app.cell
417-
def _(alt, df_settlements_preditions, end_time_delta, pd):
431+
def _(alt, df_settlements_preditions, end_time_delta, mo, np, pd, series):
432+
mo.stop(predicate=all(np.isnan(series.settlements)))
433+
418434
_colors = alt.Scale(domain=["fill_thicknesses",], range=['blue'])
419435

420436
_chart_1 = (
@@ -457,7 +473,8 @@ def _(alt, df_settlements_preditions, end_time_delta, pd):
457473

458474

459475
@app.cell
460-
def _(alt, df_settlements_preditions, end_time_delta, pd):
476+
def _(alt, df_settlements_preditions, end_time_delta, mo, np, pd, series):
477+
mo.stop(predicate=all(np.isnan(series.settlements)))
461478
_colors = alt.Scale(domain=["settlements", "predict"], range=['orange', 'green'])
462479

463480
_chart_2 = (
@@ -501,7 +518,8 @@ def _(alt, df_settlements_preditions, end_time_delta, pd):
501518

502519

503520
@app.cell
504-
def _(df_settlements_preditions, mo):
521+
def _(df_settlements_preditions, mo, np, series):
522+
mo.stop(predicate=all(np.isnan(series.settlements)))
505523
csv_download_lazy_prediction = mo.download(
506524
data=df_settlements_preditions.to_csv(sep=";").encode("utf-8"),
507525
filename="measurements.csv",

0 commit comments

Comments
 (0)