This file is indexed.

/usr/lib/python2.7/dist-packages/DisplayCAL/debughelpers.py is in dispcalgui 3.1.0.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
# -*- coding: utf-8 -*-

import inspect
import sys
import traceback

import config
from config import fs_enc
from log import logbuffer, safe_print
from meta import name as appname
from options import debug
from util_str import safe_unicode

wxEventTypes = {}

def getevtobjname(event, window=None):
	""" Get and return the event object's name. """
	try:
		event_object = event.GetEventObject()
		if not event_object and window:
			event_object = window.FindWindowById(event.GetId())
		if event_object and hasattr(event_object, "GetName"):
			return event_object.GetName()
	except Exception, exception:
		pass


def getevttype(event):
	""" Get and return the event object's type. """
	if not wxEventTypes:
		from wxaddons import wx
		try:
			for name in dir(wx):
				if name.find("EVT_") == 0:
					attr = getattr(wx, name)
					if hasattr(attr, "evtType"):
						wxEventTypes[attr.evtType[0]] = name
		except Exception, exception:
			pass
	typeId = event.GetEventType()
	if typeId in wxEventTypes:
		return wxEventTypes[typeId]


def handle_error(error, parent=None, silent=False):
	""" Log an error string and show an error dialog. """
	if isinstance(error, tuple):
		# We got a tuple. Assume (etype, value, tb)
		tbstr = "".join(traceback.format_exception(*error))
		error = error[1]
	else:
		tbstr = traceback.format_exc()
	if (tbstr.strip() != "None" and isinstance(error, Exception) and
		(debug or not isinstance(error, EnvironmentError) or
		 not getattr(error, "filename", None))):
		# Print a traceback if in debug mode, for non environment errors, and
		# for environment errors not related to files
		safe_print(tbstr)
	else:
		safe_print(error)
	if not silent:
		try:
			from wxaddons import wx
			app = wx.GetApp()
			if app is None and parent is None:
				app = wx.App(redirect=False)
				# wxPython 3 bugfix: We also need a toplevel window
				frame = wx.Frame(None)
				parent = False
			else:
				frame = None
			if parent is None:
				parent = wx.GetActiveWindow()
			if parent:
				try:
					parent.IsShownOnScreen()
				except:
					# If the parent is still being constructed, we can't use it
					parent = None
			if isinstance(error, Warning):
				icon = wx.ICON_WARNING
			elif isinstance(error, Exception):
				icon = wx.ICON_ERROR
			else:
				icon = wx.ICON_INFORMATION
			dlg = wx.MessageDialog(parent if parent not in (False, None) and 
								   parent.IsShownOnScreen() else None, 
								   safe_unicode(error), appname, wx.OK | icon)
			if frame:
				# wxPython 3 bugfix: We need to use CallLater and MainLoop
				wx.CallLater(1, dlg.ShowModal)
				wx.CallLater(1, frame.Close)
				app.MainLoop()
			else:
				dlg.ShowModal()
				dlg.Destroy()
		except Exception, exception:
			safe_print("Warning: handle_error():", safe_unicode(exception))


def print_callstack():
	""" Print call stack """
	stack = inspect.stack()
	indent = ""
	for frame, filename, linenum, funcname, line, exc in reversed(stack[1:]):
		safe_print(indent, funcname, filename, linenum,
				   repr("".join(line).strip()))
		indent += " "


class ResourceError(Exception):
	pass