From c5198725f1a4443e0643fab6fa72e7524aa91422 Mon Sep 17 00:00:00 2001 From: Luis Rodrigues Date: Fri, 2 May 2025 21:06:40 +0100 Subject: [PATCH] =?UTF-8?q?integrar=20fun=C3=A7=C3=A3o=20copiar=5Fficheiro?= =?UTF-8?q?s=5Fpara=5Fdestino()=20para=20uso=20com=20vers=C3=A3o=20GUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/copier.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) 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 "