PyWinGUI Private Build Repository
This repository contains the private PyWinGUI implementation and release pipeline. It is not the public customer repository.
PyWinGUI is a proprietary Windows GUI automation SDK backed by a protected native runtime. The public repository exposes the Python API surface, while the automation engine, control matching, OCR, AI recovery, orchestration, and licensing logic remain private.
Repository Roles
Private repository:
- Owns the real implementation under
pywingui/. - Owns licensing under
pywingui/licensing/. - Builds the protected native runtime with Nuitka.
- Generates the clean public repository.
- Builds and verifies the PyPI wheel.
Public repository:
- Contains public Python wrappers and type/API surface.
- Contains tests proving the public source boundary.
- Contains one protected native runtime support file outside the public SDK package.
- Does not contain
pywingui/licensing/. - Does not contain private runtime Python source.
Protected Runtime
The private runtime is compiled into:
dist/runtime_pyd/pywingui_native_runtime.cp313-win_amd64.pyd
The public wheel includes that file as a runtime support component outside the public SDK package.
The public SDK loads the runtime through pywingui.bridge.RuntimeClient.
Customers call normal PyWinGUI APIs; private logic stays inside the compiled
runtime.
One-Command Local Release
Run:
release_public.bat
The BAT already uses:
--jobs 48
Release stages:
- Run private/runtime tests.
- Compile the protected
.pydwith Nuitka. - Assemble the clean public repository.
- Run public SDK tests.
- Build the platform wheel.
- Install the wheel in a clean environment.
- Load the native runtime and run
runtime.selftest.
Expected wheel:
dist/public_wheels/pywingui-<version>-cp313-cp313-win_amd64.whl
Publish To PyPI
Set the PyPI token first:
set TWINE_PASSWORD=pypi-your-token
Then run:
release_public.bat --publish-pypi
Publishing only happens after tests, compile, wheel build, and clean-install verification pass.
Push Public Repository
To create/update the public repo locally and push it:
release_public.bat --commit --push --remote https://github.com/YOUR_ACCOUNT/pywingui.git
To push Git and publish PyPI in one run:
set TWINE_PASSWORD=pypi-your-token
release_public.bat --commit --push --publish-pypi --remote https://github.com/YOUR_ACCOUNT/pywingui.git
The generated public repo path is:
C:\projects\pywingui-public
Manual Commands
Run all private/runtime tests:
python -m pytest pywingui/tests tests/runtime -q
Build only the native runtime:
python scripts\build_runtime_pyd.py --clean --skip-tests --jobs 48
Assemble public repo and wheel:
python scripts\assemble_public_release.py
Verify a wheel in a clean environment:
python scripts\verify_public_wheel.py dist\public_wheels\pywingui-<version>-cp313-cp313-win_amd64.whl
Public Boundary Rules
Do not put these in the public repository:
pywingui/licensing/- Private runtime Python source
- API keys, tokens, backend URLs, or license secrets
- Internal OCR provider implementations
- Core matching, orchestration, recovery, and automation engine logic
The public wheel must contain exactly one native runtime .pyd and no private
runtime .py files.
License
PyWinGUI is proprietary software. All implementation rights, protected runtime rights, licensing logic, automation logic, OCR logic, AI recovery logic, and related trade secrets remain owned by PyWinGUI Engineering.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pywingui-6.1.60-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: pywingui-6.1.60-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 722.0 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dff96fff33011813792698640927454f747518b14d9a0c523e096df209609468
|
|
| MD5 |
8c100383a524f97e11f6cb989bb1ff6e
|
|
| BLAKE2b-256 |
66ba5c703b4a726e1d6ddb26430827e91e35d972b4546a583766827917e1fe1a
|