Skip to main content

pyEDID

Build Status codecov PyPI PyPI - Python Version PyPI - Status PyPI - Downloads PyPI - License

Getting started

This is a python library to parse extended display identification data (EDID).

This project based on pyedid

EDID data format

The EDID data frame format is described in detail on the Wikipedia page.

Requirements

  • Python 3.6+
  • requests

Setup

pip3 install pyedid

Features

  • Parsing EDID data from hex or bytes
  • Embedded PNP ID registry with dump/restore to CSV file
  • Updatable PNP ID registry from www.uefi.org

Docs

ToDO

Quickstart

Parsing some hex EDID data with the default registry

import pyedid

edid_hex = (
    '00ffffffffffff000469982401010101'
    '1e1b01031e351e78ea9265a655559f28'
    '0d5054bfef00714f818081409500a940'
    'b300d1c00101023a801871382d40582c'
    '4500132b2100001e000000fd00324c1e'
    '5311000a202020202020000000fc0056'
    '533234380a20202020202020000000ff'
    '0048374c4d51533132323136310a0000'
)

# returned Edid object, used the Default embedded registry
edid = pyedid.parse_edid(edid_hex)

edid.name # 'VS248'
edid.manufacturer # 'Ancor Communications Inc'
edid.serial # 'H7LMQS122161'
edid.year # 2017 (year of manufacture)
edid.week # 30 (week of manufacture)
edid.width # 53.0 cm
edid.height # 30.0 cm
edid.resolutions # list with resulutions (x, y, rate), ex (720, 400, 70.0)
edid... # some other EDID data

json_str = str(edid) # making JSON string object

Getting EDID from xrandr --verbose

from pyedid import get_edid_from_xrandr_verbose
from subprocess import check_output

# getting `xrandr --verbose` output
randr = check_output(['xrandr', '--verbose'])

# parsing xrandr outputs to a bytes edid's list
edids = get_edid_from_xrandr_verbose(randr)

# parsing edid
edid = pyedid.parse_edid(edids[0])

Working with registry

from pyedid import Registry, DEFAULT_REGISTRY

# making a registry object from www.uefi.org
r_web = Registry.from_web()

# dumping the default registry to csv file
DEFAULT_REGISTRY.to_csv('/path/to/csv.file')

# restoring registry from csv file
r_csv = Registry.from_csv('/path/to/csv.file')

Licensing

See LICENSE

Metadata

Release files for pyedid 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyedid 1.0.3
File Size Uploaded
pyedid-1.0.3.tar.gz 37.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyedid 1.0.3
File Interpreter ABI Platform
pyedid-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 73.5 kB

Release files / pyedid-1.0.3.tar.gz

Download URL pyedid-1.0.3.tar.gz
Size 37.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e61b8ef7b6806ec536ea971bf650e3470f6a9cdae994d6f50d2d97c3f8f1b8f4
BLAKE2b-256 checksum
How to use checksums
ee8f67ad1955ca1afcd9f16af8377efe83aee8e162c1c333d4efa9813b1eb5b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release files / pyedid-1.0.3-py3-none-any.whl

Download URL pyedid-1.0.3-py3-none-any.whl
Size 36.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aa8bd3ce30b4813cbab0c111d4fc2dee1484d7f951b2b84002284f83481b7a3c
BLAKE2b-256 checksum
How to use checksums
f1ba0f26432b195a09de22ed8eadde1c556e25e93ece65f3e40f6cf3ccbf4224
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0

2 release files

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page