pyautogui-zzy — Rust-accelerated PyAutoGUI 0.9.54
This fork preserves the established PyAutoGUI 0.9.54 API while adding an optional user-mode Rust fast path on Windows.
import pyautogui_zzy
pyautogui_zzy.moveTo(500, 300, duration=0.2)
pyautogui_zzy.click()
pyautogui_zzy.write("hello", interval=0.03)
image = pyautogui_zzy.screenshot(region=(0, 0, 800, 600))
box = pyautogui_zzy.locateOnScreen("button.png", confidence=0.9)
No Rust-specific import or new calling convention is required. If the extension is absent or one native operation fails, that operation silently returns to the original Win32 ctypes or PyScreeze implementation.
Windows fast paths
- Batched
SendInputkeyboard and mouse events - Virtual-desktop coordinates and negative monitor origins
- Per-monitor V2 DPI awareness
- Reusable
CreateDIBSectionGDI capture contexts - Parallel hierarchical grayscale SAD template matching
- Deadline-based smooth movement with scoped 1 ms timer resolution
- Low-level failsafe monitoring
- GIL release around native capture, matching, input, and movement
The project contains no kernel driver, service, test-signing workflow, or special boot requirement.
Universal visual location
Still images, GIF representative frames, DPI/zoom variants, and moving targets share an adaptive locate pipeline. Large or highly changed references can use the external 359k-parameter TinyLocate network. Its framework-free CUDA runtime is compiled into the Rust extension; the 721 KiB model remains a separate file. High-confidence neural hits contribute a small, bounded in-memory appearance bank, so a moving or animated target can adapt without writing captures to disk.
python tools/install_tinylocate_model.py path\to\tinylocate-v1.tln
python tools/smoke_tinylocate_runtime.py path\to\tinylocate-v1.tln
Existing calls stay unchanged:
box = pyautogui_zzy.locateOnScreen("target.png", confidence=0.8)
boxes = list(pyautogui_zzy.locateAllOnScreen("target.gif", confidence=0.8))
Model training uses PyTorch only in the development environment and exports the custom TLN1 FP16 container. Runtime loads neither PyTorch nor an ONNX engine. See PRODUCT_VISION.md for routing, accuracy, and latency gates.
Requirements
- Python 3.9+
- Windows wheels use CPython ABI3
- Building from source on Windows requires stable Rust, MSVC Build Tools, and a Windows SDK
Optional vision dependencies are available with:
python -m pip install -e ".[vision]"
Build and test
python -m pip install -e ".[dev,benchmark]"
python tools/check.py --build
The default test suite is hermetic and does not emit operating-system input. See DEVELOPING.md for architecture, benchmarks, CI, and release checks.
Upstream PyAutoGUI documentation remains applicable to the public API: https://pyautogui.readthedocs.io/
Release files for pyautogui-zzy 0.9.56
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyautogui_zzy-0.9.56.tar.gz | 257.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyautogui_zzy-0.9.56-cp37-abi3-win_amd64.whl | CPython 3.7 | abi3 | Windows x86-64 | Details |
Total release size: 570.9 kB
Release files / pyautogui_zzy-0.9.56.tar.gz
| Download URL | pyautogui_zzy-0.9.56.tar.gz |
|---|---|
| Size | 257.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c49dead016d628eb7240cc2978081c6b24d547bdfe547a49714c18c5b28e616e
|
|
BLAKE2b-256 checksum How to use checksums |
911c05b1edd06561c6634f98992976d5213845dbba752c526d1c7e7433642abd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / pyautogui_zzy-0.9.56-cp37-abi3-win_amd64.whl
| Download URL | pyautogui_zzy-0.9.56-cp37-abi3-win_amd64.whl |
|---|---|
| Size | 313.9 kB |
| Tags | CPython 3.7 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
dd65524dcdaaea889d8289a2b4a5ee4567a0c6a5b3d4b5994b0713a08ac85f34
|
|
BLAKE2b-256 checksum How to use checksums |
3c1b85f3e0f4f41ab9d5f23b60c065c227bc6b861808d71b5b023c3253b3c7e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|