Se corrigio el problema que mantenia el archivo entre sesiones implementando la session_state de streamlit y un mejor manejo de la cache

This commit is contained in:
mongar
2024-05-04 11:35:04 -05:00
parent 0b593e29d4
commit a691ebd109
30 changed files with 8635 additions and 68 deletions

View File

@@ -1,33 +1,48 @@
import streamlit as st
import os
# @st.cache_data
def import_file() -> str:
List_of_files: list = []
# Cargar el archivo pdf
archivo = st.file_uploader(
'Arrastra o ingresa tu archivo .pdf', type=['.pdf'])
nombre_archivo: str = ''
archivo = st.file_uploader("Arrastra o ingresa tu archivo .pdf", type=[".pdf"])
nombre_archivo: str = ""
# Verificar si se ha cargado un archivo
if archivo is not None:
nombre_archivo = archivo.name
# Abrir un archivo en modo escritura binaria ('wb') para guardar el archivo de audio
with open(f'documents/pdfs/{nombre_archivo}', 'wb') as new_file:
# Agregamos el nombre a la lista de archvios para luego podr verificarlos
List_of_files.append(nombre_archivo)
st.success(
f"El numero de archivos en la lista de archivos es de: {len(List_of_files)}"
)
# Abrir un archivo en modo escritura binaria ('wb') para guardar el archivo de audio
with open(f"documents/pdfs/{nombre_archivo}", "wb") as new_file:
# Leer los datos del archivo cargado y escribirlos en el nuevo archivo
new_file.write(archivo.read())
st.success(f"Se carga el archivo con nombre: {nombre_archivo}")
# Verificamos que en la lista solo haya un archivo, de lo contrario, limpiamos la session_state
if (
"archivo_anterior" in st.session_state
and st.session_state.archivo_anterior != nombre_archivo
):
st.session_state.clear()
st.session_state.archivo_anterior = nombre_archivo
return nombre_archivo
# Define la función para borrar el caché
def clear_cache():
cache_path = os.path.join(st.__path__[0], 'static', 'cache')
cache_path = os.path.join(st.__path__[0], "static", "cache")
for root, dirs, files in os.walk(cache_path):
for file in files:
os.remove(os.path.join(root, file))
st.success('Cache limpio exitosamente.')
st.success("Cache limpio exitosamente.")