Aplicación de demostración¶
explorador.py Explorador visual de dos servidores SFTP con interfaz gráfica.
Este módulo proporciona una aplicación de escritorio basada en Tkinter
que permite visualizar, comparar, copiar y borrar archivos entre dos
servidores SFTP configurados. Utiliza la librería abm_servidor para
las operaciones de red.
Ejemplo de uso:
python explorador.py
- Dependencias:
tkinter
abm_servidor.ABMServidor
- class explorador.PanelServidor(parent: Widget, abm: ABMServidor, lado: str, otro_panel=None)¶
Bases:
objectPanel de interfaz gráfica que representa y gestiona la visualización y operaciones de un servidor SFTP específico.
Cada instancia de esta clase corresponde a un lado de la ventana (Izquierdo o Derecho) y mantiene su propio estado de conexión, caché de archivos y elementos de la interfaz.
- _borrar_seleccionado()¶
Elimina el archivo seleccionado del servidor actual.
Solicita confirmación explícita al usuario antes de ejecutar
ABMServidor.borrar_archivo. Si la operación es exitosa, refresca automáticamente la lista de archivos del panel.
- _comparar_seleccionado()¶
Compara el archivo seleccionado con su equivalente en el servidor del panel opuesto.
Calcula la ruta equivalente en el otro servidor utilizando las
ruta_basede cada configuración. UtilizaABMServidor.archivo_existepara obtener el tamaño y la fecha de modificación de ambos lados sin descargar los archivos. Muestra un resumen detallado en un cuadro de diálogo.
- _copiar_seleccionado()¶
Copia el archivo seleccionado en este panel hacia el servidor del panel opuesto.
Valida que ambos servidores estén seleccionados, calcula la ruta destino equivalente, solicita confirmación al usuario (especialmente si el archivo ya existe en destino) y ejecuta
ABMServidor.copiar_archivo. Al finalizar, refresca automáticamente el panel destino.
- static _formatear_tamaño(tamaño: int) str¶
Convierte un tamaño en bytes a una cadena legible (B, KB, MB).
- Parámetros:
tamaño (int) – Tamaño del archivo en bytes.
- Devuelve:
Tamaño formateado con su unidad correspondiente.
- Tipo del valor devuelto:
str
- _listar()¶
Solicita el listado completo de archivos al servidor seleccionado mediante
ABMServidor.listar_todos_archivosy los renderiza en el Treeview.Muestra el progreso en la barra de estado y maneja errores de conexión.
- _on_servidor_change(event: Event)¶
Callback ejecutado cuando el usuario cambia el servidor en el combobox. Actualiza la variable interna
servidor_actual.- Parámetros:
event (tk.Event) – Evento de selección del combobox.
- set_otro_panel(otro_panel: PanelServidor)¶
Asigna la referencia al panel opuesto para habilitar operaciones cruzadas.
- Parámetros:
otro_panel (PanelServidor) – Instancia del panel contrario.
- explorador.main()¶
Punto de entrada de la aplicación.
Inicializa la ventana principal de Tkinter, crea la instancia de
ABMServidory configura los dos paneles (Izquierdo y Derecho) con sus servidores por defecto.