pywingui 6.1.62__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pywingui-6.1.62/LICENSE +46 -0
- pywingui-6.1.62/PKG-INFO +96 -0
- pywingui-6.1.62/README.md +82 -0
- pywingui-6.1.62/pyproject.toml +31 -0
- pywingui-6.1.62/pywingui/__init__.py +13 -0
- pywingui-6.1.62/pywingui/agent.py +969 -0
- pywingui-6.1.62/pywingui/ai/__init__.py +3 -0
- pywingui-6.1.62/pywingui/ai/error_engine.py +43 -0
- pywingui-6.1.62/pywingui/ai/win32_child_handler.py +10 -0
- pywingui-6.1.62/pywingui/app/__init__.py +3 -0
- pywingui-6.1.62/pywingui/app/context.py +49 -0
- pywingui-6.1.62/pywingui/base/__init__.py +3 -0
- pywingui-6.1.62/pywingui/base/base_window.py +62 -0
- pywingui-6.1.62/pywingui/bridge/__init__.py +4 -0
- pywingui-6.1.62/pywingui/bridge/models.py +36 -0
- pywingui-6.1.62/pywingui/bridge/protocol.py +1 -0
- pywingui-6.1.62/pywingui/bridge/runtime_client.py +142 -0
- pywingui-6.1.62/pywingui/cli.py +343 -0
- pywingui-6.1.62/pywingui/config.py +47 -0
- pywingui-6.1.62/pywingui/controller.py +48 -0
- pywingui-6.1.62/pywingui/core/__init__.py +6 -0
- pywingui-6.1.62/pywingui/core/action_executor.py +6 -0
- pywingui-6.1.62/pywingui/core/engine.py +49 -0
- pywingui-6.1.62/pywingui/core/exceptions.py +3 -0
- pywingui-6.1.62/pywingui/core/finder.py +27 -0
- pywingui-6.1.62/pywingui/elements/__init__.py +23 -0
- pywingui-6.1.62/pywingui/elements/base_element.py +58 -0
- pywingui-6.1.62/pywingui/elements/button.py +8 -0
- pywingui-6.1.62/pywingui/elements/checkbox.py +27 -0
- pywingui-6.1.62/pywingui/elements/combo.py +14 -0
- pywingui-6.1.62/pywingui/elements/image.py +11 -0
- pywingui-6.1.62/pywingui/elements/ocr.py +11 -0
- pywingui-6.1.62/pywingui/elements/radio.py +24 -0
- pywingui-6.1.62/pywingui/elements/tab.py +8 -0
- pywingui-6.1.62/pywingui/elements/table.py +26 -0
- pywingui-6.1.62/pywingui/elements/textfield.py +17 -0
- pywingui-6.1.62/pywingui/exceptions.py +29 -0
- pywingui-6.1.62/pywingui/inspector.py +606 -0
- pywingui-6.1.62/pywingui/llm_client.py +660 -0
- pywingui-6.1.62/pywingui/native/__init__.py +1 -0
- pywingui-6.1.62/pywingui/native/pywingui_native_runtime.cp313-win_amd64.pyd +0 -0
- pywingui-6.1.62/pywingui/plugin/__init__.py +1 -0
- pywingui-6.1.62/pywingui/plugin/base.py +28 -0
- pywingui-6.1.62/pywingui/plugin/manager.py +29 -0
- pywingui-6.1.62/pywingui/py.typed +1 -0
- pywingui-6.1.62/pywingui/pywingui_cli.py +34 -0
- pywingui-6.1.62/pywingui/recorder.py +1707 -0
- pywingui-6.1.62/pywingui/tests/__init__.py +0 -0
- pywingui-6.1.62/pywingui/tests/test_checkbox_radio.py +158 -0
- pywingui-6.1.62/pywingui/tests/test_cli.py +25 -0
- pywingui-6.1.62/pywingui/tests/test_combo.py +23 -0
- pywingui-6.1.62/pywingui/tests/test_config.py +49 -0
- pywingui-6.1.62/pywingui/tests/test_customer_page.py +79 -0
- pywingui-6.1.62/pywingui/tests/test_engine.py +15 -0
- pywingui-6.1.62/pywingui/tests/test_imports.py +46 -0
- pywingui-6.1.62/pywingui/tests/test_relative_actions.py +53 -0
- pywingui-6.1.62/pywingui/tests/test_table_ocr.py +85 -0
- pywingui-6.1.62/pywingui/ui/__init__.py +1 -0
- pywingui-6.1.62/pywingui/ui/button.py +8 -0
- pywingui-6.1.62/pywingui/ui/checkbox.py +11 -0
- pywingui-6.1.62/pywingui/ui/combo.py +16 -0
- pywingui-6.1.62/pywingui/ui/form_reader.py +17 -0
- pywingui-6.1.62/pywingui/ui/image.py +15 -0
- pywingui-6.1.62/pywingui/ui/menu.py +3 -0
- pywingui-6.1.62/pywingui/ui/ocr_utils.py +9 -0
- pywingui-6.1.62/pywingui/ui/radio.py +17 -0
- pywingui-6.1.62/pywingui/ui/table.py +19 -0
- pywingui-6.1.62/pywingui/ui/text.py +26 -0
- pywingui-6.1.62/pywingui/ui/tree.py +14 -0
- pywingui-6.1.62/pywingui/usage_service.py +515 -0
- pywingui-6.1.62/pywingui/utils.py +166 -0
- pywingui-6.1.62/pywingui.egg-info/PKG-INFO +96 -0
- pywingui-6.1.62/pywingui.egg-info/SOURCES.txt +80 -0
- pywingui-6.1.62/pywingui.egg-info/dependency_links.txt +1 -0
- pywingui-6.1.62/pywingui.egg-info/entry_points.txt +2 -0
- pywingui-6.1.62/pywingui.egg-info/requires.txt +3 -0
- pywingui-6.1.62/pywingui.egg-info/top_level.txt +1 -0
- pywingui-6.1.62/setup.cfg +4 -0
- pywingui-6.1.62/setup.py +9 -0
- pywingui-6.1.62/tests/test_public_api.py +64 -0
- pywingui-6.1.62/tests/test_runtime_bridge.py +32 -0
- pywingui-6.1.62/tests/test_source_boundary.py +32 -0
pywingui-6.1.62/LICENSE
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
PyWinGUI Proprietary License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 PyWinGUI Engineering. All rights reserved.
|
|
4
|
+
|
|
5
|
+
This software package, including the public Python SDK, documentation, tests,
|
|
6
|
+
examples, compiled native runtime, automation engine, OCR logic, recovery
|
|
7
|
+
logic, licensing logic, and related materials, is proprietary software owned by
|
|
8
|
+
PyWinGUI Engineering or its licensors.
|
|
9
|
+
|
|
10
|
+
Permission is granted only to customers with an active paid license to install
|
|
11
|
+
and use PyWinGUI for their own internal business automation work during the
|
|
12
|
+
license term. Access to the public source files is provided for integration,
|
|
13
|
+
inspection, debugging, and extension of the public API surface only.
|
|
14
|
+
|
|
15
|
+
You may not:
|
|
16
|
+
|
|
17
|
+
1. Copy, sell, sublicense, publish, distribute, or make PyWinGUI available to
|
|
18
|
+
any third party except as expressly permitted in a separate written
|
|
19
|
+
agreement.
|
|
20
|
+
2. Remove, alter, bypass, disable, or interfere with license checks,
|
|
21
|
+
entitlement checks, usage controls, telemetry required for licensing, or
|
|
22
|
+
runtime protection.
|
|
23
|
+
3. Reverse engineer, decompile, disassemble, unpack, extract, or attempt to
|
|
24
|
+
derive source code, algorithms, models, secrets, keys, credentials, or
|
|
25
|
+
implementation details from the compiled native runtime or protected
|
|
26
|
+
components, except where applicable law expressly prohibits this restriction.
|
|
27
|
+
4. Use PyWinGUI to create a competing automation framework, runtime, SDK,
|
|
28
|
+
product, service, or library.
|
|
29
|
+
5. Share license keys, credentials, runtime binaries, private repositories, or
|
|
30
|
+
protected components outside the licensed organization.
|
|
31
|
+
6. Use PyWinGUI after the license term ends, after payment failure, or after
|
|
32
|
+
written termination of the license.
|
|
33
|
+
|
|
34
|
+
All intellectual property rights, title, ownership, trade secrets, confidential
|
|
35
|
+
information, and proprietary rights in PyWinGUI remain with PyWinGUI
|
|
36
|
+
Engineering or its licensors. No rights are granted except the limited license
|
|
37
|
+
described above.
|
|
38
|
+
|
|
39
|
+
PyWinGUI is provided "as is" unless a separate written agreement says otherwise.
|
|
40
|
+
To the maximum extent permitted by law, PyWinGUI Engineering disclaims implied
|
|
41
|
+
warranties and is not liable for indirect, incidental, special, consequential,
|
|
42
|
+
or punitive damages, or for lost profits, lost data, or business interruption.
|
|
43
|
+
|
|
44
|
+
Any separate signed commercial agreement, invoice terms, support agreement, or
|
|
45
|
+
order form between the customer and PyWinGUI Engineering controls if it
|
|
46
|
+
conflicts with this license.
|
pywingui-6.1.62/PKG-INFO
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pywingui
|
|
3
|
+
Version: 6.1.62
|
|
4
|
+
Summary: Enterprise GUI automation SDK for Progress OpenEdge and Win32
|
|
5
|
+
Author-email: PyWinGUI Engineering <it.python101@gmail.com>
|
|
6
|
+
License-Expression: LicenseRef-Proprietary
|
|
7
|
+
Requires-Python: <3.14,>=3.13
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Requires-Dist: pywinauto-core>=0.1.5
|
|
11
|
+
Requires-Dist: pywinauto>=0.6.8
|
|
12
|
+
Requires-Dist: pyautogui>=0.9.54
|
|
13
|
+
Dynamic: license-file
|
|
14
|
+
|
|
15
|
+
# PyWinGUI
|
|
16
|
+
|
|
17
|
+
PyWinGUI is a proprietary Windows GUI automation SDK for desktop application
|
|
18
|
+
testing and workflow automation.
|
|
19
|
+
|
|
20
|
+
The package provides a public Python API backed by a protected native runtime.
|
|
21
|
+
The public source is available for integration, inspection, and debugging of
|
|
22
|
+
the API surface. The runtime implementation remains protected.
|
|
23
|
+
|
|
24
|
+
## What Is Included
|
|
25
|
+
|
|
26
|
+
- Public Python SDK wrappers
|
|
27
|
+
- Type marker support
|
|
28
|
+
- Public tests for import and API boundary checks
|
|
29
|
+
- A compiled native runtime in `pywingui/native/`
|
|
30
|
+
- Proprietary license terms in `LICENSE`
|
|
31
|
+
|
|
32
|
+
The protected runtime contains the automation engine, control detection,
|
|
33
|
+
window orchestration, OCR flow, AI/error recovery, and licensing enforcement.
|
|
34
|
+
|
|
35
|
+
## Installation
|
|
36
|
+
|
|
37
|
+
Install from PyPI:
|
|
38
|
+
|
|
39
|
+
```bat
|
|
40
|
+
pip install pywingui
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
PyWinGUI currently targets:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
Python 3.13 on Windows x64
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Quick Start
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
from pywingui.app import AppContext
|
|
53
|
+
from pywingui.base import BaseWindow
|
|
54
|
+
|
|
55
|
+
ctx = AppContext()
|
|
56
|
+
ctx.connect(title_regex=".*My Application.*")
|
|
57
|
+
|
|
58
|
+
window = BaseWindow(ctx, "My Application")
|
|
59
|
+
window.click("Login")
|
|
60
|
+
window.fill("Username", "demo")
|
|
61
|
+
window.fill("Password", "secret")
|
|
62
|
+
window.click("Submit")
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Runtime
|
|
66
|
+
|
|
67
|
+
The public SDK loads the protected native runtime automatically. A normal
|
|
68
|
+
installation includes:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
pywingui/native/pywingui_native_runtime.cp313-win_amd64.pyd
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Do not move, rename, unpack, decompile, or modify the native runtime.
|
|
75
|
+
|
|
76
|
+
## Tests
|
|
77
|
+
|
|
78
|
+
Run public tests:
|
|
79
|
+
|
|
80
|
+
```bat
|
|
81
|
+
python -m pytest tests -q
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## License
|
|
85
|
+
|
|
86
|
+
PyWinGUI is proprietary software. Source access is provided only for public SDK
|
|
87
|
+
integration, inspection, and debugging. The protected native runtime, licensing
|
|
88
|
+
logic, automation engine, OCR logic, AI/error recovery logic, and related
|
|
89
|
+
implementation details remain confidential and owned by PyWinGUI Engineering.
|
|
90
|
+
|
|
91
|
+
See `LICENSE`.
|
|
92
|
+
|
|
93
|
+
## Support
|
|
94
|
+
|
|
95
|
+
For licensing, installation, and technical support, contact PyWinGUI
|
|
96
|
+
Engineering.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# PyWinGUI
|
|
2
|
+
|
|
3
|
+
PyWinGUI is a proprietary Windows GUI automation SDK for desktop application
|
|
4
|
+
testing and workflow automation.
|
|
5
|
+
|
|
6
|
+
The package provides a public Python API backed by a protected native runtime.
|
|
7
|
+
The public source is available for integration, inspection, and debugging of
|
|
8
|
+
the API surface. The runtime implementation remains protected.
|
|
9
|
+
|
|
10
|
+
## What Is Included
|
|
11
|
+
|
|
12
|
+
- Public Python SDK wrappers
|
|
13
|
+
- Type marker support
|
|
14
|
+
- Public tests for import and API boundary checks
|
|
15
|
+
- A compiled native runtime in `pywingui/native/`
|
|
16
|
+
- Proprietary license terms in `LICENSE`
|
|
17
|
+
|
|
18
|
+
The protected runtime contains the automation engine, control detection,
|
|
19
|
+
window orchestration, OCR flow, AI/error recovery, and licensing enforcement.
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
Install from PyPI:
|
|
24
|
+
|
|
25
|
+
```bat
|
|
26
|
+
pip install pywingui
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
PyWinGUI currently targets:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
Python 3.13 on Windows x64
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Quick Start
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from pywingui.app import AppContext
|
|
39
|
+
from pywingui.base import BaseWindow
|
|
40
|
+
|
|
41
|
+
ctx = AppContext()
|
|
42
|
+
ctx.connect(title_regex=".*My Application.*")
|
|
43
|
+
|
|
44
|
+
window = BaseWindow(ctx, "My Application")
|
|
45
|
+
window.click("Login")
|
|
46
|
+
window.fill("Username", "demo")
|
|
47
|
+
window.fill("Password", "secret")
|
|
48
|
+
window.click("Submit")
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Runtime
|
|
52
|
+
|
|
53
|
+
The public SDK loads the protected native runtime automatically. A normal
|
|
54
|
+
installation includes:
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
pywingui/native/pywingui_native_runtime.cp313-win_amd64.pyd
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Do not move, rename, unpack, decompile, or modify the native runtime.
|
|
61
|
+
|
|
62
|
+
## Tests
|
|
63
|
+
|
|
64
|
+
Run public tests:
|
|
65
|
+
|
|
66
|
+
```bat
|
|
67
|
+
python -m pytest tests -q
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## License
|
|
71
|
+
|
|
72
|
+
PyWinGUI is proprietary software. Source access is provided only for public SDK
|
|
73
|
+
integration, inspection, and debugging. The protected native runtime, licensing
|
|
74
|
+
logic, automation engine, OCR logic, AI/error recovery logic, and related
|
|
75
|
+
implementation details remain confidential and owned by PyWinGUI Engineering.
|
|
76
|
+
|
|
77
|
+
See `LICENSE`.
|
|
78
|
+
|
|
79
|
+
## Support
|
|
80
|
+
|
|
81
|
+
For licensing, installation, and technical support, contact PyWinGUI
|
|
82
|
+
Engineering.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "pywingui"
|
|
7
|
+
version = "6.1.62"
|
|
8
|
+
description = "Enterprise GUI automation SDK for Progress OpenEdge and Win32"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.13,<3.14"
|
|
11
|
+
license = "LicenseRef-Proprietary"
|
|
12
|
+
license-files = ["LICENSE"]
|
|
13
|
+
authors = [{name = "PyWinGUI Engineering", email = "it.python101@gmail.com"}]
|
|
14
|
+
dependencies = [
|
|
15
|
+
"pywinauto-core>=0.1.5",
|
|
16
|
+
"pywinauto>=0.6.8",
|
|
17
|
+
"pyautogui>=0.9.54",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[project.scripts]
|
|
21
|
+
pywingui = "pywingui.pywingui_cli:main"
|
|
22
|
+
|
|
23
|
+
[tool.setuptools.packages.find]
|
|
24
|
+
where = ["."]
|
|
25
|
+
include = ["pywingui*"]
|
|
26
|
+
|
|
27
|
+
[tool.setuptools.package-data]
|
|
28
|
+
pywingui = ["py.typed", "native/*.pyd"]
|
|
29
|
+
|
|
30
|
+
[tool.pytest.ini_options]
|
|
31
|
+
testpaths = ["tests"]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from pywinauto import Application
|
|
2
|
+
|
|
3
|
+
from pywingui import controller
|
|
4
|
+
from pywingui.app.context import AppContext
|
|
5
|
+
from pywingui.base.base_window import BaseWindow
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def wait_for_window(title_substring: str, timeout: float = 30.0):
|
|
9
|
+
context = AppContext()
|
|
10
|
+
return context.engine.finder.find_window(title_substring, timeout=timeout)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
__all__ = ["AppContext", "Application", "BaseWindow", "controller", "wait_for_window"]
|