How ctrondlp/pyguitest works
Pyguitest is a cross-platform Python library for automating real desktop applications. A script connects to a detected desktop session, queries available capabilities, then uses one API for accessible-element interaction, input, windows, screenshots, and clipboard operations. The registry selects platform backends, which implement the shared capability contract. The README documents backend coverage; the source index and excerpts establish selected imports and implementation relationships. Some backend wiring is unsampled, so those connections are omitted rather than inferred.
Main entry points: pyguitest/__init__.py GUI Session API · backends/__init__.py Backend Registry · macos.py macOS Backend · capture.py Screenshots
Components 21
Public API
- GUI Session API
src/pyguitest/__init__.py
Runtime Assembly
- Session Detection
src/pyguitest/session.py - Backend Registry
src/pyguitest/backends/__init__.py - Composite Backend
src/pyguitest/backends/composite.py
Shared Operations
- Capability Contract
src/pyguitest/backends/base.py - Capability Model
src/pyguitest/capabilities.py - Accessible Elements
src/pyguitest/backends/atspi.py - Screenshots
src/pyguitest/backends/capture.py - Image Search
src/pyguitest/backends/imagesearch.py - Input Injection
src/pyguitest/backends/input.py - Clipboard
src/pyguitest/backends/clipboard.py - Window Control
src/pyguitest/backends/windows.py
Linux Backends
- Remote Desktop Portal
src/pyguitest/backends/portal.py - X11 Backend
src/pyguitest/backends/x11.py - GNOME Shell Backend
src/pyguitest/backends/gnomeshell.py
Other Platforms
- Windows Backend
src/pyguitest/backends/win32.py - Windows API Bindings
src/pyguitest/backends/_winapi.py - Windows UI Automation
src/pyguitest/backends/uia.py - macOS Backend
src/pyguitest/backends/macos.py - macOS API Bindings
src/pyguitest/backends/_macapi.py
Other components
- Automation Script
Connections 24
- Automation Script → GUI Session API: uses
- GUI Session API → Session Detection: detects session
src/pyguitest/__init__.py - GUI Session API → Backend Registry: connects through
src/pyguitest/__init__.py - GUI Session API → Capability Model: queries support
src/pyguitest/__init__.py - Backend Registry → Composite Backend: assembles backends
src/pyguitest/backends/__init__.py - Composite Backend → Capability Contract: implements
src/pyguitest/backends/composite.py - Capability Contract → Capability Model: declares
src/pyguitest/backends/base.py - Backend Registry → Accessible Elements: registers
src/pyguitest/backends/__init__.py - Backend Registry → Remote Desktop Portal: registers
src/pyguitest/backends/__init__.py - Backend Registry → X11 Backend: registers
src/pyguitest/backends/__init__.py - Backend Registry → GNOME Shell Backend: registers
src/pyguitest/backends/__init__.py - Backend Registry → Windows Backend: registers
src/pyguitest/backends/__init__.py - Backend Registry → Windows UI Automation: registers
src/pyguitest/backends/__init__.py - Backend Registry → macOS Backend: registers
src/pyguitest/backends/__init__.py - Windows Backend → Windows API Bindings: uses
src/pyguitest/backends/win32.py - Windows UI Automation → Windows API Bindings: uses
src/pyguitest/backends/uia.py - macOS Backend → macOS API Bindings: uses
src/pyguitest/backends/macos.py - macOS Backend → Screenshots: uses
src/pyguitest/backends/macos.py - Image Search → Screenshots: searches captured pixels
- GUI Session API → Input Injection: sends input
- GUI Session API → Accessible Elements: finds and acts
- GUI Session API → Window Control: controls windows
src/pyguitest/__init__.py - GUI Session API → Screenshots: captures screenshots
- GUI Session API → Clipboard: reads and writes