Waiting and looping function

Hi all,

I am using Streamlit in docker. I had one function that is a while loop and does something and waits for 1 second.

while condition=True:
check something
do something
update condition
st.write(doing something)
time.sleep

I saw that streamlit does not prints st.write again and again in this scenario in the UI. I can see the activity happening in the logs but just the UI st.write message is not updated.

Can you tell any spefific pattern I need to use to make it work?

FWIW it seems to work for me in streamlit cloud.

Thanks, is there any pattern to capture print() output?

I am not sure I understand you, this seems unrelated to the OP:

print() writes to sys.stdout unless a file argument is provided.

Sorry, I should have asked it clearly.

The function I am calling is using Python log library and those messages are lost and dont disaplay on the Streamlit UI.

Is this the best pattern to grab logging output into st.write

I don’t really understand the problem you are trying to solve, thus I don’t know whether the linked post can solve it or not.

“The function I am calling is using Python log library and those messages are lost” sounds like something is terribly wrong, but I am probably misunderstanding it.