diff --git a/modules/copier.py b/modules/copier.py index 82459be..7515e7c 100644 --- a/modules/copier.py +++ b/modules/copier.py @@ -10,6 +10,7 @@ import shutil from tqdm import tqdm from concurrent.futures import ThreadPoolExecutor, as_completed from modules.logger import logger +from collections.abc import Callable def copiar_ficheiro_individual( @@ -35,10 +36,12 @@ def copiar_ficheiro_individual( try: ficheiro_path = Path(ficheiro) if not ficheiro_path.exists(): - logger.warning("Ficheiro '%s' não encontrado. A ignorar.", ficheiro) + logger.warning( + "Ficheiro '%s' não encontrado. A ignorar.", ficheiro) return if categorizar_data: - data_ficheiro = obter_data_ficheiro(ficheiro, usar_criacao=usar_criacao) + data_ficheiro = obter_data_ficheiro( + ficheiro, usar_criacao=usar_criacao) pasta_destino = criar_pasta_destino( str(base_destino), categorizar_por_tipo(ficheiro), @@ -63,6 +66,7 @@ def copiar_ficheiros_para_destino( formato_data: str = "%Y-%m-%d", usar_threads: bool = True, max_workers: int = 8, + progresso_callback: Callable | None = None, ) -> None: """ Copiar cada ficheiro na lista para o directório base, seguindo as regras de categorização @@ -91,13 +95,18 @@ def copiar_ficheiros_para_destino( for ficheiro in lista_ficheiros ] - for _ in tqdm( - as_completed(futures), - total=len(futures), - desc="A copiar ficheiros ", - unit="ficheiro ", - ): - pass + for future in as_completed(futures): + if progresso_callback: + progresso_callback() + + # codigo comentado para integrar a funcionalidade na interface gui + # for _ in tqdm( + # as_completed(futures), + # total=len(futures), + # desc="A copiar ficheiros ", + # unit="ficheiro ", + # ): + # pass else: for ficheiro in tqdm( lista_ficheiros, desc="A copiar ficheiros ", unit="ficheiro "