Ir al contenido

Servicios (pyzed.services)

Los servicios lanzan eventos pero no dibujan nada: son los componentes no visuales de Pyzed Design (la bandeja bajo el formulario) y funcionan igual en un pz.App o en un script. Los handlers van en on_<evento>=; los eventos que lanza un hilo en segundo plano les llegan en el hilo de la app. Mira la guía de servicios.

watcher = pz.FileWatcher("inbox", pattern="*.csv", on_created=self.import_file)
watcher.start()
class Timer

Lanza tick (con la cuenta) cada interval milisegundos mientras está en marcha; con repeat=False hace un solo tick. Devuelve subscriptions() desde el subscriptions de tu app.

class Shortcut

Lanza activate al pulsar una de sus keys ("ctrl-s", "Ctrl+S", varias separadas por comas; mod- es Cmd en macOS y Ctrl en el resto). Llama a handle(combo) desde on_key.

class FileWatcher

Vigila una carpeta o un archivo y lanza created, modified y deleted (una ruta) y change (las rutas cambiadas), revisando cada interval milisegundos. start(), stop(), running.

class Process

Ejecuta un programa y lanza output y error_output por cada línea que imprime, finished con su código de salida, started y failed. start(), write(), kill(), wait().

class Worker

Ejecuta work(value) en un hilo aparte con run(value); report() lanza progress, el resultado llega en done y una excepción en failed. cancel() activa cancelled.

class HttpRequest

Llama a una dirección web en segundo plano: send() lanza response con un HttpResponse (también con estados de error) o failed si no hubo respuesta. json= envía JSON.

@dataclass
class HttpResponse(status, content=b'', headers={}, url='')

La respuesta de un servidor web: status, ok, headers, content (bytes), text y json().

class Clipboard

El portapapeles del sistema: copy(text) y paste() devuelven comandos; con watch=True lanza change cuando se copia algo nuevo.

class Settings

Valores que se guardan entre ejecuciones: un diccionario guardado como JSON en la carpeta de ajustes del usuario en cada cambio, con defaults; lanza change con (clave, valor).

class FileDialog

El diálogo de archivos del sistema: show() devuelve el comando que lo abre en el modo "open", "open_many", "save" o "folder"; lanza chosen o cancelled.

class Notification

Una notificación de escritorio: show(text) la muestra y devuelve si pudo; lanza shown o failed.

class TrayIcon

Un icono en la bandeja del sistema con tooltip y menu (una lista, o un texto con un elemento por línea: - separador, [x] casilla, con sangría un submenú): show() devuelve si pudo, hide(), checked(item); lanza click, double_click (Windows), menu y failed. En Linux es un StatusNotifierItem, sin GTK.

@dataclass
class TrayItem(text, id=None, enabled=True, checked=None, items=[])

Un elemento del menú de un TrayIcon: text, id (lo que recibe menu), enabled, checked e items para un submenú.

class SystemInfo

Qué es el equipo: os ("Windows", "macOS", "Linux"), os_version, machine, hostname, user, home, language, cpu_count, python_version, memory_total, más memory_available, disk_free y disk_total, que se leen al pedirlos. env(name) lee una variable de entorno y folder("documents") encuentra las carpetas del usuario. Con interval mayor que 0, start() lanza update con snapshot() cada cierto tiempo.

class Launcher

Abre archivos, carpetas y enlaces con la aplicación que usa el sistema para ellos: open(target), reveal(path) (seleccionado en el explorador de archivos) y email(to, subject, body); lanza opened o failed.

class NetworkMonitor

Avisa cuando el equipo se conecta o se desconecta probando host cada interval milisegundos en segundo plano: online, check(), start(), stop(); lanza change, online y offline.

class PowerMonitor

La batería: percent, plugged y has_battery; cada interval milisegundos lanza change, low (por debajo de low_level sin enchufar), plugged y unplugged.