From 1f68858c4c6e2b8c2e8308d2a6eb0fc44e06a08d Mon Sep 17 00:00:00 2001 From: Seungmin Kim <8457324+ehfd@users.noreply.github.com> Date: Thu, 2 May 2024 03:38:50 +0900 Subject: [PATCH 1/3] randr: inherit XError in error classes (#1) Commit c87624dd6 ('Add Randr error classes and register them during init') introduces three new error classes to xrandr, but makes them inherit from Exception. Let all error classes in randr inherit from Xerror, like all other code expects. Fixes the traceback ``` ... File "/tmp/python-env/lib/python3.8/site-packages/Xlib/display.py", line 182, in sync self.get_pointer_control() File "/tmp/python-env/lib/python3.8/site-packages/Xlib/display.py", line 833, in get_pointer_control return request.GetPointerControl(display = self.display) File "/tmp/python-env/lib/python3.8/site-packages/Xlib/protocol/rq.py", line 1369, in __init__ self.reply() File "/tmp/python-env/lib/python3.8/site-packages/Xlib/protocol/rq.py", line 1381, in reply self._display.send_and_recv(request = self._serial) File "/tmp/python-env/lib/python3.8/site-packages/Xlib/protocol/display.py", line 612, in send_and_recv gotreq = self.parse_response(request) File "/tmp/python-env/lib/python3.8/site-packages/Xlib/protocol/display.py", line 719, in parse_response gotreq = self.parse_error_response(request) or gotreq File "/tmp/python-env/lib/python3.8/site-packages/Xlib/protocol/display.py", line 745, in parse_error_response req = self.get_waiting_request(e.sequence_number) AttributeError: 'BadRRModeError' object has no attribute 'sequence_number' ``` fixes #241 Co-authored-by: Frans Klaver --- Xlib/ext/randr.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Xlib/ext/randr.py b/Xlib/ext/randr.py index 9cbfe2d..515703b 100644 --- a/Xlib/ext/randr.py +++ b/Xlib/ext/randr.py @@ -36,6 +36,7 @@ from Xlib import X from Xlib.protocol import rq +from Xlib.error import XError extname = 'RANDR' @@ -123,11 +124,11 @@ BadRRMode = 2 # Error classes # -class BadRROutputError(Exception): pass +class BadRROutputError(XError): pass -class BadRRCrtcError(Exception): pass +class BadRRCrtcError(XError): pass -class BadRRModeError(Exception): pass +class BadRRModeError(XError): pass # Data Structures # From 583fe2eb0f28a5cba4dda4215b258b1d79b45bd4 Mon Sep 17 00:00:00 2001 From: Seungmin Kim <8457324+ehfd@users.noreply.github.com> Date: Sun, 23 Mar 2025 22:40:44 +0900 Subject: [PATCH 2/3] Fix package build --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index 71bdb08..2f7bd7c 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,6 @@ setup( install_requires=['six>=1.10.0'], - setup_requires=['setuptools-scm'], packages=[ 'Xlib', 'Xlib.ext', From 932e5d18c3edcb6a02e11c5e0b31c0f0ce4fd571 Mon Sep 17 00:00:00 2001 From: Ryan Kuba Date: Thu, 12 Feb 2026 21:06:05 -0500 Subject: [PATCH 3/3] remove legacy check for pre 2016 era setuptools (#2) --- setup.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/setup.py b/setup.py index 2f7bd7c..1ef3152 100644 --- a/setup.py +++ b/setup.py @@ -1,13 +1,6 @@ # Distutils script for python-xlib -from pkg_resources import parse_requirements -from setuptools import (__version__ as setuptools_version, setup) - - -# Check setuptools is recent enough to support `setup.cfg`. -setuptools_require = next(parse_requirements('setuptools>=30.3.0')) -assert setuptools_version in setuptools_require, '{} is required'.format(setuptools_require) - +from setuptools import setup setup( install_requires=['six>=1.10.0'],