I am building an app with streamlit
and it works in the following way:
- The user enters a query that he/she wants to search
- Enters the max number of papers he/she wants to download
- The search module (which is also developed & managed by me, and has been installed using pip) takes the query and searches for papers and downloads them
Currently, I am printing the number of papers being downloaded as follows:
In the image above, even though it shows 4097 pages to download, if the user limits the downloading to say 10 papers, only 10 will be downloaded.
Now, I am trying to display this information in the form of a progress bar using the stqdm library. I am unable to figure out how can I implement it since the frontend is built using streamlit
& the backend code is run using a separate module.
My codes so far:
Codes in the streamlit
app:
import streamlit as st
import my_search_module as sm
st.write("Please wait till the results are obtained")
search = sm.search(search_string, limit=10)
The simplified code in the my_search_module
:
def search(query: str, limit: int):
papers_count = 0
# this url gets all the total number of papers to download
url = f"some_url&query={query}"
total_papers = requests.get(url)
while papers_count < limit:
if papers_count >= limit:
break
papers_count += 1
try:
# some function with a diff url that starts downloading the papers
except Exception as e:
print(e)
While this code in the search
function is being run and the papers_count
variable keeps increasing, I want to display this increment also in the frontend.
How can this be achieved?
Thanks in advance.