@@ -96,19 +96,19 @@ def __init__(self, display=None):
9696 try :
9797 display = environ ['DISPLAY' ]
9898 except KeyError :
99- raise ScreenshotError (
100- '$DISPLAY not set. Stopping to prevent segfault.' )
99+ raise ScreenshotError ('$DISPLAY not set.' , locals ())
100+
101101 if not isinstance (display , bytes ):
102102 display = bytes (display , 'utf-8' )
103103
104104 x11 = find_library ('X11' )
105105 if not x11 :
106- raise ScreenshotError ('No X11 library found.' )
106+ raise ScreenshotError ('No X11 library found.' , locals () )
107107 self .xlib = cdll .LoadLibrary (x11 )
108108
109109 xrandr = find_library ('Xrandr' )
110110 if not xrandr :
111- raise ScreenshotError ('No Xrandr extension found.' )
111+ raise ScreenshotError ('No Xrandr extension found.' , locals () )
112112 self .xrandr = cdll .LoadLibrary (xrandr )
113113
114114 self ._set_argtypes ()
@@ -118,8 +118,8 @@ def __init__(self, display=None):
118118 try :
119119 self .display .contents
120120 except ValueError :
121- raise ScreenshotError ('Cannot open display "{0}".' . format (
122- str ( display . decode ( 'utf-8' ))))
121+ raise ScreenshotError ('Cannot open display.' , locals ())
122+
123123 self .root = self .xlib .XDefaultRootWindow (
124124 self .display , self .xlib .XDefaultScreen (self .display ))
125125
@@ -156,9 +156,8 @@ def validate(value, _, args):
156156 '''
157157
158158 if value == 0 :
159- err = 'xrandr.XRRGetScreenResources() failed.'
160- err += ' NULL pointer received.'
161- raise ScreenshotError (err )
159+ raise ScreenshotError (('xrandr.XRRGetScreenResources() failed.'
160+ ' NULL pointer received.' ), locals ())
162161
163162 return args
164163
@@ -229,11 +228,7 @@ def get_pixels(self, monitor):
229228 monitor ['width' ], monitor ['height' ],
230229 0x00ffffff , 2 ) # ZPIXMAP
231230 if not ximage :
232- err = 'xlib.XGetImage() failed. Monitor informations: '
233- for key , val in sorted (monitor .items ()):
234- err = '{0}{1}: {2}, ' .format (err , key , val )
235- err = err .strip (', ' )
236- raise ScreenshotError (err )
231+ raise ScreenshotError ('xlib.XGetImage() failed.' , locals ())
237232
238233 # Raw pixels values conversion
239234 bpp = ximage .contents .bits_per_pixel
@@ -243,9 +238,8 @@ def get_pixels(self, monitor):
243238 c_ubyte * self .height * self .width * 4 ))
244239 self .image = self .bgra_to_rgb (bytearray (data .contents ))
245240 else :
246- err = ('Not implemented for this configuration '
247- '([XImage] bits per pixel = {0}).' )
248- raise ScreenshotError (err .format (bpp ))
241+ raise ScreenshotError (('[XImage] bits per pixel value '
242+ 'not (yet?) implemented.' ), locals ())
249243
250244 # Free
251245 self .xlib .XDestroyImage (ximage )
0 commit comments