Repository navigation
Expand file tree
/
Copy patherror.py
More file actions
118 lines (98 loc) · 3.24 KB
/
Copy patherror.py
File metadata and controls
118 lines (98 loc) · 3.24 KB
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
113
114
115
116
117
118
# $Id: error.py,v 1.2 2000-08-02 09:39:24 petli Exp $
#
# Xlib.error -- basic error classes
#
# Copyright (C) 2000 Peter Liljenberg <petli@ctrl-c.liu.se>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Standard modules
import string
# Xlib modules
import X
# Xlib.protocol modules
from Xlib.protocol import rq
class DisplayError(Exception):
def __init__(self, display):
self.display = display
def __str__(self):
return 'Display error "%s"' % self.display
class DisplayNameError(DisplayError):
def __str__(self):
return 'Bad display name "%s"' % self.display
class DisplayConnectionError(DisplayError):
def __init__(self, display, msg):
self.display = display
self.msg = msg
def __str__(self):
return 'Can\'t connect to display "%s": %s' % (self.display, self.msg)
class ConnectionClosedError(Exception):
def __init__(self, whom):
self.whom = whom
def __str__(self):
return 'Display connection closed by %s' % self.whom
class ResourceIDError(Exception): pass
class XError(rq.GetAttrData, Exception):
_fields = rq.Struct( rq.Card8('type'), # Always 0
rq.Card8('code'),
rq.Card16('sequence_number'),
rq.Card32('resource_id'),
rq.Card16('minor_opcode'),
rq.Card8('major_opcode'),
rq.Pad(21)
)
def __init__(self, data):
self._data, data = self._fields.parse_binary(data, rawdict = 1)
def __str__(self):
s = []
for f in ('code', 'resource_id', 'sequence_number',
'major_opcode', 'minor_opcode'):
s.append('%s = %d' % (f, self._data[f]))
return '%s: %s' % (self.__class__, string.join(s, ', '))
class BadRequest(XError): pass
class BadValue(XError): pass
class BadWindow(XError): pass
class BadPixmap(XError): pass
class BadAtom(XError): pass
class BadCursor(XError): pass
class BadFont(XError): pass
class BadMatch(XError): pass
class BadDrawable(XError): pass
class BadAccess(XError): pass
class BadAlloc(XError): pass
class BadColor(XError): pass
class BadGC(XError): pass
class BadIDChoice(XError): pass
class BadName(XError): pass
class BadLength(XError): pass
class BadImplementation(XError): pass
xerror_class = {
X.BadRequest: BadRequest,
X.BadValue: BadValue,
X.BadWindow: BadWindow,
X.BadPixmap: BadPixmap,
X.BadAtom: BadAtom,
X.BadCursor: BadCursor,
X.BadFont: BadFont,
X.BadMatch: BadMatch,
X.BadDrawable: BadDrawable,
X.BadAccess: BadAccess,
X.BadAlloc: BadAlloc,
X.BadColor: BadColor,
X.BadGC: BadGC,
X.BadIDChoice: BadIDChoice,
X.BadName: BadName,
X.BadLength: BadLength,
X.BadImplementation: BadImplementation,
}