PyScreenReader is a cross-platform Python library that wraps native accessibility APIs to collect widget tree information on the screen.
Project description
PyScreenReader
PyScreenReader is a library for developers to parse on-screen information using the simplicity of Python.
It's a cross-platform abstraction of native accessibility APIs for Windows, macOS, and Linux, based around representing UI elements in a common tree-like interface in Python.
Key features:
- Parse UI properties: Such as location, size, text content, focus state, and more...
- Cross-platform support: Write once, works (mostly) everywhere! Compatible with Windows, macOS, and Linux.
- Unified UI model: Abstracts diverse native UI controls into a single consistent tree-like data structure.
- Abstracted System APIs: Avoid delving in to the complexity of native per-platform system APIs to interact with the screen.
- Lightweight and Pythonic: No need for compilers or special toolchain setup, just use Python.
Full documentation of PyScreenReader can be found HERE.
[!WARNING] PyScreenReader is not yet released and is still in testing. Stay tuned for its public release on PyPi in the near future.
Table of Content
Quick Start
Install PyScreenReader latest release from pip registries.
pip install PyScreenReader
In your Python script, import PyScreenReader -
# Import the reader itself
from PyScreenReader.screen_reader import ScreenReader
# Import the widgets the reader will return
from PyScreenReader.virtual_widgets import VirtualWidget
# Create a screen reader instance
screen_reader = ScreenReader()
# Read the virtual widget tree by your program's PID
root = screen_reader.from_pid(20880)
# Print the location of the root widget extracted
print(f"Position of Root Widget (X: {root.get_x()}, Y: {root.get_y()})")
# Optional: Get all children of the root as a list of VirtualWidgets to traverse the tree!
children = root.get_children()
This is just a quick start. For more information, please refer to our full documentation.
Contributing
We are glad to hear that you are interested in contributing to PyScreenReader! Please see the contribution guideline for more information.
The guideline includes how to file a GitHub issue, open a GitHub Pull Request, set up local dev environment, etc.
Feedback & Support
Feedback is a gift! We appreciate any kind of feedback/questions/concerns in the following forms:
- File an issue ticket. Issue board is another place where we track technical questions. Once approved by the maintainers, new issues will be assigned and worked on, and hopefully will be released in the next version of PyScreenReader.
- Found Security concerns and vulnerabilities? Please refer to our SECURITY page and report them through the GitHub Security Portal.
Licensing
PyScreenReader is licensed under MIT License. By using, distributing, or contributing to this project, you agree the terms and conditions of this license.
PyScreenReader greatly relies on:
Special thanks to:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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 pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl.
File metadata
- Download URL: pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl
- Upload date:
- Size: 344.4 kB
- Tags: CPython 3.13+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
767da9f6b1f13d239404b2601cf5b3c2efde7949a56014ef15d81e63ad8e295b
|
|
| MD5 |
59483738269ce853b2ac8b949bc4a85d
|
|
| BLAKE2b-256 |
6c5683acd7248fd47b5289c67e6d4a9582b7e707b153eeb052975ae63cf465ad
|
File details
Details for the file pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl.
File metadata
- Download URL: pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl
- Upload date:
- Size: 620.7 kB
- Tags: CPython 3.13+
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
356d4d92cf98fcc71aca1bf7e0b6c13394a1c0c0ebbc167b7ec9c5729707a3ee
|
|
| MD5 |
efbc43007cd198d828843e56f415ecab
|
|
| BLAKE2b-256 |
46cdcfa457a7d1c11e51d3fbb9ea3d03e7f63488b904d8ab6b3d49546ceb2caa
|
File details
Details for the file pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 538.6 kB
- Tags: CPython 3.13+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf2b7093309b3dc148db5996e080acbc073e8c8d91bc7445a8fdba3bd0a09ccf
|
|
| MD5 |
575b183f28b1df87e0eaf5330e27c088
|
|
| BLAKE2b-256 |
135379bcd4ea74e41fdabe96629670f75b59eb4dee9b347e0cf9cec79c0ddb44
|
File details
Details for the file pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl.
File metadata
- Download URL: pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl
- Upload date:
- Size: 344.3 kB
- Tags: CPython 3.12+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf15be9b144789687ebde4de677b1787a7258110326d132a4e45710fe0f83d63
|
|
| MD5 |
514c38293669740a5defdce4d1a37a71
|
|
| BLAKE2b-256 |
11d7bc755343fe0504b1833eb96adb6a41fe082dfa1835cc8f397f38c8552b4f
|
File details
Details for the file pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl.
File metadata
- Download URL: pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl
- Upload date:
- Size: 620.5 kB
- Tags: CPython 3.12+
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
827fe296fa697add773d95b6c6a6a8e7a66cbf1c75cbc25a4fcdb43de0e0acd4
|
|
| MD5 |
7733b6425b7c73e2a0fe237c6f5f593a
|
|
| BLAKE2b-256 |
cc1e07eb1575656e14030d34e5fea295f0fe70bdadb623932829288a6df1030a
|
File details
Details for the file pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 538.4 kB
- Tags: CPython 3.12+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d69f0afa070131f6ff63170952061b93285866b9824199c8f690926097479330
|
|
| MD5 |
5af5f35ab3e5ac1f76c08cf4e557b106
|
|
| BLAKE2b-256 |
f30601d69338ebbd1b77d1a97c3da672b71ddc6afc25ff90747f1df8d3ea8444
|
File details
Details for the file pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl.
File metadata
- Download URL: pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl
- Upload date:
- Size: 343.4 kB
- Tags: CPython 3.11+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
300603edd053db582b4e00e2a6e69ba978a28714b1ec711261f4ce653a65d3bf
|
|
| MD5 |
5d4f93f4d2dea58f4238fdf015baa0b3
|
|
| BLAKE2b-256 |
00b866d8f7ba6f1a6003ce612f1c1b4849bc48768ff28ebb0ab674c976b64b4e
|
File details
Details for the file pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl.
File metadata
- Download URL: pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl
- Upload date:
- Size: 618.9 kB
- Tags: CPython 3.11+
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a013915c992979d6de5f098c36d07ee291f9f154d878e3b520e45b53f7d1347
|
|
| MD5 |
c86af01d224762b5ffd420d7a5eb7989
|
|
| BLAKE2b-256 |
ae3c9175e566c7f2c0f72c2b7c64731417d3612382b1b3e84239714212f641d2
|
File details
Details for the file pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 536.1 kB
- Tags: CPython 3.11+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f753a498f2880c55193d4ee70693675ad5fb43037791be62b13eec5acf4b82ee
|
|
| MD5 |
26527379ab03c2a37b5708ccba09110c
|
|
| BLAKE2b-256 |
f9134d372037b63dd4836723426520dc3a3008e656b28c29adbf99eb1713a02c
|