roost
roost2mo ago

SQL <> Python cell auto-conversion

problem: I was attempting to solve this issue and found that cells were automatically converting to different cell types. Auto conversion from Python --> SQL * To mitigate some downstream dependency issues, I first tried converting the SQL cell to python (e.g, "df_result = mo.sql(f""" query """)") , and then would save the file, and then reset the Kernel. Post kernel reset, that cell that I converted to Python was back to being a SQL file. * I resolved this auto-conversion by making df_result local (_df_result) and then df_result = _df_result.copy(). * Even though both were outputting the same DF, the python version seemed to work more extensively for dependencies. Auto conversion from mo.sql + Python code --> SQL * I have data from an mo.sql outputting to a dataframe. * This dataframe is then used in am mo.md * Everything would be set up correctly - I would restart the kernel and the script would autorun * Upon restart/rerun, my cells with mo.sql + Python would convert to SQL. I tried many times to have the .py cell format stick. * To resolve this, I had to break out my mo.sql -> dataframe code (also unfortunately having to use the fix above) into a previous cell, and then display that resulting dataframe via an mo.md in the next cell. Recommendation Ideally, cells would not auto-convert from Python --> SQL. Some people might be more comfortable using mo.sql explicitly. Additionally, ideally I could generate a DF with mo.sql in a cell, and also present that DF in mo.md. If this is undesired, then throwing an exception and stating this requirement would be helpful.
5 Replies
Akshay
Akshay2mo ago
Additionally, ideally I could generate a DF with mo.sql in a cell, and also present that DF in mo.md. If this is undesired, then throwing an exception and stating this requirement would be helpful.
This should be possible. If it's not working I think it's a bug. Let me try to give you an example.
Upon restart/rerun, my cells with mo.sql + Python would convert to SQL. I tried many times to have the .py cell format stick.
The SQL rendering of cells is UI sugar -- the code is still Python. You can click the Python icon in the top right of a cell to view the underlying Python. If the underlying Python code is not the same as what you had, then that is a bug, otherwise it is more of a UI issue. Does that make sense?
Akshay
Akshay2mo ago
Here is an example of using the query result of a SQL cell in markdown: https://marimo.app/?slug=zv70bc
marimo | a next-generation Python notebook
A reactive notebook for Python — run reproducible experiments, execute as a script, deploy as an app, and version with git.
roost
roostOP2mo ago
cell 25 (previously cell 24, now split into 24 and 25**) is an example of where my python code was attempted to be converted into SQL when it should not have been. And when I try to switch it back to python is mis-converts it, so I have g to do it manually. https://marimo.io/p/@michael-day/michael-day-switchyards-case-oct-7
marimo | Michael Day Switchyards Case Oct 7
Explore data and build apps seamlessly with marimo, a next-generation Python notebook.
roost
roostOP2mo ago
screenshot of the cell. Seems to cut off the top and bottom rows of text. I'm going to have to fix it now as I am presenting tomorrow morning. Will fix it by breaking out the mo.sql function from the rest of the python code.
No description
Akshay
Akshay2mo ago
Thank you, I’ll look into this 🙏