How to distinguish marimo notebooks from any other python files robustly and efficiently?
If I want to get all marimo notebooks recursively inside a directory, what algorithm can be both robust and efficient?
4 Replies
The marimo edit server uses the following heuristic:
https://github.com/marimo-team/marimo/blob/9668948b34ca156a3e8cef57507f3122fb9dbdfa/marimo/_server/files/os_file_system.py#L94-L99
GitHub
marimo/marimo/_server/files/os_file_system.py at 9668948b34ca156a3e...
A reactive notebook for Python — run reproducible experiments, execute as a script, deploy as an app, and version with git. - marimo-team/marimo
I think this can't be a robust algorithm to test whether a python file is a marimo notebook.
For example, run
_is_marimo_file
on this file exactly will return True
🤔There are more checks that could be done. It’s not perfect, but I think the downstream use case of it, it doesn’t need to be perfect
We thought about saving marimo notebooks with a custom extension for this reason (
.mo.py
), but such files can't be imported by Python's import statement.