Summary
An app I’m building is getting very big/long. Think 2000+ lines of mostly Streamlit code.
This is because I have some widgets, some graphs, some tabs, columns, metrics… etc.
I would like to refactor this into smaller files to manage the complexity - but I don’t know what is Streamlit’s best practice for this.
Maybe my code should look like this:
from helpers import render_widgets, render_data, render_charts, rernder_metrics
filters = render_widgets()
selected_data = render_data(filters)
charts = render_charts(selected_data, filters)
rernder_metrics(charts, selected_data, filters)
But in this case the render_widgets function (for example) would be generating multiple columns of widgets of various kinds… etc.
To clarify, this is still a single page app.