I am currently deploying an app to streamlit sharing, where I allow users to play around with pre-trained text generation models, but also lets them train their own using their own dataset if they want to.
Due to the limited size of the VMs, I want to make it so that users can only train models if they have cloned the github repo to their local machine and are training using their own resources.
What I am not sure about however is how to know if my app is running in the streamlit sharing vm. Is there some kind of evironment variable I could check? IE
os.environ["IS_STREAMLIT_SHARING"] == True
And then I could do some conditional logic in my app like:
if os.environ.get("IS_STREAMLIT_SHARING"):
st.warning("As you are on streamlit sharing you cannot run traning. Please clone repo to train your own model")
else:
# train model
If not, are there any other ways I could tell if an app is running on streamlit sharing or not?
While these certainly seem like they will do the trick (and I will use in the short term), I wonder if the streamlit team think it could be useful to add an explicit environment variable on the streamlit sharing VMs that match the one I defined in my question so it can be used in a more natural way
(ie, the way I would use those environment variables Francisco has mentioned would be to check that they exist and then if they exist, know I am in streamlit sharing, rather than just explicitly an environment variable that tells me I am in streamlit sharing)