This release is a pre-release and may not be stable for production use.
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:
Metadata
Release files for PyScreenReader 1.0.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl | CPython 3.13 | abi3 | Windows x86-64 | Details |
| pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl | CPython 3.13 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl | CPython 3.13 | abi3 | macOS 11.0+ ARM64 | Details |
| pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl | CPython 3.12 | abi3 | Windows x86-64 | Details |
| pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl | CPython 3.12 | abi3 | macOS 11.0+ ARM64 | Details |
| pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl | CPython 3.11 | abi3 | Windows x86-64 | Details |
| pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl | CPython 3.11 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 4.5 MB
Release files / pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl
| Download URL | pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl |
|---|---|
| Size | 344.4 kB |
| Tags | CPython 3.13 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
767da9f6b1f13d239404b2601cf5b3c2efde7949a56014ef15d81e63ad8e295b
|
|
BLAKE2b-256 checksum How to use checksums |
6c5683acd7248fd47b5289c67e6d4a9582b7e707b153eeb052975ae63cf465ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl
| Download URL | pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl |
|---|---|
| Size | 620.7 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
356d4d92cf98fcc71aca1bf7e0b6c13394a1c0c0ebbc167b7ec9c5729707a3ee
|
|
BLAKE2b-256 checksum How to use checksums |
46cdcfa457a7d1c11e51d3fbb9ea3d03e7f63488b904d8ab6b3d49546ceb2caa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl
| Download URL | pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 538.6 kB |
| Tags | CPython 3.13 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cf2b7093309b3dc148db5996e080acbc073e8c8d91bc7445a8fdba3bd0a09ccf
|
|
BLAKE2b-256 checksum How to use checksums |
135379bcd4ea74e41fdabe96629670f75b59eb4dee9b347e0cf9cec79c0ddb44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl
| Download URL | pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 344.3 kB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
bf15be9b144789687ebde4de677b1787a7258110326d132a4e45710fe0f83d63
|
|
BLAKE2b-256 checksum How to use checksums |
11d7bc755343fe0504b1833eb96adb6a41fe082dfa1835cc8f397f38c8552b4f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl
| Download URL | pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl |
|---|---|
| Size | 620.5 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
827fe296fa697add773d95b6c6a6a8e7a66cbf1c75cbc25a4fcdb43de0e0acd4
|
|
BLAKE2b-256 checksum How to use checksums |
cc1e07eb1575656e14030d34e5fea295f0fe70bdadb623932829288a6df1030a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 538.4 kB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d69f0afa070131f6ff63170952061b93285866b9824199c8f690926097479330
|
|
BLAKE2b-256 checksum How to use checksums |
f30601d69338ebbd1b77d1a97c3da672b71ddc6afc25ff90747f1df8d3ea8444
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl
| Download URL | pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 343.4 kB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
300603edd053db582b4e00e2a6e69ba978a28714b1ec711261f4ce653a65d3bf
|
|
BLAKE2b-256 checksum How to use checksums |
00b866d8f7ba6f1a6003ce612f1c1b4849bc48768ff28ebb0ab674c976b64b4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl
| Download URL | pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl |
|---|---|
| Size | 618.9 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
9a013915c992979d6de5f098c36d07ee291f9f154d878e3b520e45b53f7d1347
|
|
BLAKE2b-256 checksum How to use checksums |
ae3c9175e566c7f2c0f72c2b7c64731417d3612382b1b3e84239714212f641d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl
| Download URL | pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 536.1 kB |
| Tags | CPython 3.11 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f753a498f2880c55193d4ee70693675ad5fb43037791be62b13eec5acf4b82ee
|
|
BLAKE2b-256 checksum How to use checksums |
f9134d372037b63dd4836723426520dc3a3008e656b28c29adbf99eb1713a02c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|