Skip to main content

PyScreenReader is a cross-platform Python library that wraps native accessibility APIs to collect widget tree information on the screen.

Project description

PyScreenReader

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:

  • NumPy for inspiration for our release workflow
  • Typer for inspiration for our README file

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl (344.4 kB view details)

Uploaded CPython 3.13+Windows x86-64

pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl (620.7 kB view details)

Uploaded CPython 3.13+

pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl (538.6 kB view details)

Uploaded CPython 3.13+macOS 11.0+ ARM64

pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl (344.3 kB view details)

Uploaded CPython 3.12+Windows x86-64

pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl (620.5 kB view details)

Uploaded CPython 3.12+

pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl (538.4 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl (343.4 kB view details)

Uploaded CPython 3.11+Windows x86-64

pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl (618.9 kB view details)

Uploaded CPython 3.11+

pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl (536.1 kB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

Details for the file pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 767da9f6b1f13d239404b2601cf5b3c2efde7949a56014ef15d81e63ad8e295b
MD5 59483738269ce853b2ac8b949bc4a85d
BLAKE2b-256 6c5683acd7248fd47b5289c67e6d4a9582b7e707b153eeb052975ae63cf465ad

See more details on using hashes here.

File details

Details for the file pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 356d4d92cf98fcc71aca1bf7e0b6c13394a1c0c0ebbc167b7ec9c5729707a3ee
MD5 efbc43007cd198d828843e56f415ecab
BLAKE2b-256 46cdcfa457a7d1c11e51d3fbb9ea3d03e7f63488b904d8ab6b3d49546ceb2caa

See more details on using hashes here.

File details

Details for the file pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf2b7093309b3dc148db5996e080acbc073e8c8d91bc7445a8fdba3bd0a09ccf
MD5 575b183f28b1df87e0eaf5330e27c088
BLAKE2b-256 135379bcd4ea74e41fdabe96629670f75b59eb4dee9b347e0cf9cec79c0ddb44

See more details on using hashes here.

File details

Details for the file pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 bf15be9b144789687ebde4de677b1787a7258110326d132a4e45710fe0f83d63
MD5 514c38293669740a5defdce4d1a37a71
BLAKE2b-256 11d7bc755343fe0504b1833eb96adb6a41fe082dfa1835cc8f397f38c8552b4f

See more details on using hashes here.

File details

Details for the file pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 827fe296fa697add773d95b6c6a6a8e7a66cbf1c75cbc25a4fcdb43de0e0acd4
MD5 7733b6425b7c73e2a0fe237c6f5f593a
BLAKE2b-256 cc1e07eb1575656e14030d34e5fea295f0fe70bdadb623932829288a6df1030a

See more details on using hashes here.

File details

Details for the file pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d69f0afa070131f6ff63170952061b93285866b9824199c8f690926097479330
MD5 5af5f35ab3e5ac1f76c08cf4e557b106
BLAKE2b-256 f30601d69338ebbd1b77d1a97c3da672b71ddc6afc25ff90747f1df8d3ea8444

See more details on using hashes here.

File details

Details for the file pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 300603edd053db582b4e00e2a6e69ba978a28714b1ec711261f4ce653a65d3bf
MD5 5d4f93f4d2dea58f4238fdf015baa0b3
BLAKE2b-256 00b866d8f7ba6f1a6003ce612f1c1b4849bc48768ff28ebb0ab674c976b64b4e

See more details on using hashes here.

File details

Details for the file pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9a013915c992979d6de5f098c36d07ee291f9f154d878e3b520e45b53f7d1347
MD5 c86af01d224762b5ffd420d7a5eb7989
BLAKE2b-256 ae3c9175e566c7f2c0f72c2b7c64731417d3612382b1b3e84239714212f641d2

See more details on using hashes here.

File details

Details for the file pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f753a498f2880c55193d4ee70693675ad5fb43037791be62b13eec5acf4b82ee
MD5 26527379ab03c2a37b5708ccba09110c
BLAKE2b-256 f9134d372037b63dd4836723426520dc3a3008e656b28c29adbf99eb1713a02c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page