import marimo __generated_with = "0.9.30" app = marimo.App() @app.cell def __init(): import marimo as mo from pyscribble import create return create, mo @app.cell def __input_name(mo): name = mo.ui.text(placeholder="Name...") mo.md( f""" Enter the name of the guest: {name} """ ) return (name,) @app.cell def __input_function(mo): options = ["tanh((-1+2j)*z)", "sinh(3*z)", "exp((-1+2j)*z)"] dropdown = mo.ui.dropdown(options=options, value="sinh(3*z)") mo.md( f""" Enter the complex function: {dropdown} """ ) return dropdown, options @app.cell def __input_event(mo): event = mo.ui.text(placeholder="Event...") mo.md( f""" Enter the name of the event: {event} """ ) return (event,) @app.cell def __output(create, dropdown, event, mo, name): from io import BytesIO fig = create(name=name.value, fct=dropdown.value, event=event.value, n=100) img = fig.to_image(format="png") # print(img) data = BytesIO(img) disabled = True if dropdown.value and event.value and name.value: disabled = False # Create a download button for the Plotly graph download_btn = mo.download( data=data, filename=f"{name.value}_{event.value}_plot.png", label="Download", mimetype="image/png", disabled=disabled, ) # Display the plot and download button mo.md( f""" {download_btn} {mo.ui.plotly(fig)} """ ) # return fig, download_btn if __name__ == "__main__": app.run()