dmg-builder 26.0.16 → 26.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/dmg.d.ts +33 -1
- package/out/dmg.js +9 -165
- package/out/dmg.js.map +1 -1
- package/out/dmgUtil.d.ts +16 -2
- package/out/dmgUtil.js +153 -2
- package/out/dmgUtil.js.map +1 -1
- package/out/hdiuil.js +1 -1
- package/out/hdiuil.js.map +1 -1
- package/package.json +3 -4
- package/vendor/biplist/__init__.py +75 -75
- package/vendor/dmgbuild/__init__.py +5 -0
- package/vendor/dmgbuild/__main__.py +67 -0
- package/vendor/dmgbuild/badge.py +104 -78
- package/vendor/dmgbuild/colors.py +239 -229
- package/vendor/dmgbuild/core.py +945 -274
- package/vendor/dmgbuild/licensing.py +329 -0
- package/vendor/dmgbuild/resources/builtin-arrow.tiff +0 -0
- package/vendor/ds_store/__init__.py +3 -1
- package/vendor/ds_store/__main__.py +102 -0
- package/vendor/ds_store/buddy.py +142 -134
- package/vendor/ds_store/store.py +333 -322
- package/vendor/mac_alias/__init__.py +43 -23
- package/vendor/mac_alias/alias.py +334 -224
- package/vendor/mac_alias/bookmark.py +283 -278
- package/vendor/mac_alias/osx.py +406 -302
- package/vendor/mac_alias/utils.py +10 -8
- package/vendor/run_dmgbuild.py +14 -0
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
from __future__ import unicode_literals
|
|
3
|
-
|
|
4
|
-
import re
|
|
5
1
|
import math
|
|
2
|
+
import re
|
|
3
|
+
|
|
6
4
|
|
|
7
|
-
class Color
|
|
5
|
+
class Color:
|
|
8
6
|
def to_rgb(self):
|
|
9
|
-
raise Exception(
|
|
7
|
+
raise Exception("Must implement to_rgb() in subclasses")
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
|
|
10
|
+
class RGB:
|
|
12
11
|
def __init__(self, r, g, b):
|
|
13
12
|
self.r = r
|
|
14
13
|
self.g = g
|
|
@@ -16,12 +15,13 @@ class RGB (Color):
|
|
|
16
15
|
|
|
17
16
|
def to_rgb(self):
|
|
18
17
|
return self
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class HSL(Color):
|
|
21
|
+
def __init__(self, h, s, l): # noqa; E741
|
|
22
22
|
self.h = h
|
|
23
23
|
self.s = s
|
|
24
|
-
self.l = l
|
|
24
|
+
self.l = l # noqa; E741
|
|
25
25
|
|
|
26
26
|
@staticmethod
|
|
27
27
|
def _hue_to_rgb(t1, t2, hue):
|
|
@@ -38,10 +38,10 @@ class HSL (Color):
|
|
|
38
38
|
return (t2 - t1) * (4 - hue) + t1
|
|
39
39
|
else:
|
|
40
40
|
return t1
|
|
41
|
-
|
|
41
|
+
|
|
42
42
|
def to_rgb(self):
|
|
43
43
|
hue = self.h / 60.0
|
|
44
|
-
if self.l <= 0.5:
|
|
44
|
+
if self.l <= 0.5: # noqa; E741
|
|
45
45
|
t2 = self.l * (self.s + 1)
|
|
46
46
|
else:
|
|
47
47
|
t2 = self.l + self.s - (self.l * self.s)
|
|
@@ -50,8 +50,9 @@ class HSL (Color):
|
|
|
50
50
|
g = self._hue_to_rgb(t1, t2, hue)
|
|
51
51
|
b = self._hue_to_rgb(t1, t2, hue - 2)
|
|
52
52
|
return RGB(r, g, b)
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class HWB(Color):
|
|
55
56
|
def __init__(self, h, w, b):
|
|
56
57
|
self.h = h
|
|
57
58
|
self.w = w
|
|
@@ -69,10 +70,10 @@ class HWB (Color):
|
|
|
69
70
|
elif hue < 3:
|
|
70
71
|
return 1
|
|
71
72
|
elif hue < 4:
|
|
72
|
-
return
|
|
73
|
+
return 4 - hue
|
|
73
74
|
else:
|
|
74
75
|
return 0
|
|
75
|
-
|
|
76
|
+
|
|
76
77
|
def to_rgb(self):
|
|
77
78
|
hue = self.h / 60.0
|
|
78
79
|
t1 = 1 - self.w - self.b
|
|
@@ -80,8 +81,9 @@ class HWB (Color):
|
|
|
80
81
|
g = self._hue_to_rgb(hue) * t1 + self.w
|
|
81
82
|
b = self._hue_to_rgb(hue - 2) * t1 + self.w
|
|
82
83
|
return RGB(r, g, b)
|
|
83
|
-
|
|
84
|
-
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class CMYK(Color):
|
|
85
87
|
def __init__(self, c, m, y, k):
|
|
86
88
|
self.c = c
|
|
87
89
|
self.m = m
|
|
@@ -93,170 +95,173 @@ class CMYK (Color):
|
|
|
93
95
|
g = 1.0 - min(1.0, self.m + self.k)
|
|
94
96
|
b = 1.0 - min(1.0, self.y + self.k)
|
|
95
97
|
return RGB(r, g, b)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
class Gray(Color):
|
|
98
101
|
def __init__(self, g):
|
|
99
102
|
self.g = g
|
|
100
103
|
|
|
101
104
|
def to_rgb(self):
|
|
102
|
-
return RGB(g, g, g)
|
|
103
|
-
|
|
105
|
+
return RGB(self.g, self.g, self.g)
|
|
106
|
+
|
|
107
|
+
|
|
104
108
|
_x11_colors = {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
_ws_re = re.compile(
|
|
255
|
-
_token_re = re.compile(
|
|
256
|
-
_hex_re = re.compile(
|
|
257
|
-
_number_re = re.compile(
|
|
258
|
-
|
|
259
|
-
|
|
109
|
+
"aliceblue": (240, 248, 255),
|
|
110
|
+
"antiquewhite": (250, 235, 215),
|
|
111
|
+
"aqua": (0, 255, 255),
|
|
112
|
+
"aquamarine": (127, 255, 212),
|
|
113
|
+
"azure": (240, 255, 255),
|
|
114
|
+
"beige": (245, 245, 220),
|
|
115
|
+
"bisque": (255, 228, 196),
|
|
116
|
+
"black": (0, 0, 0),
|
|
117
|
+
"blanchedalmond": (255, 235, 205),
|
|
118
|
+
"blue": (0, 0, 255),
|
|
119
|
+
"blueviolet": (138, 43, 226),
|
|
120
|
+
"brown": (165, 42, 42),
|
|
121
|
+
"burlywood": (222, 184, 135),
|
|
122
|
+
"cadetblue": (95, 158, 160),
|
|
123
|
+
"chartreuse": (127, 255, 0),
|
|
124
|
+
"chocolate": (210, 105, 30),
|
|
125
|
+
"coral": (255, 127, 80),
|
|
126
|
+
"cornflowerblue": (100, 149, 237),
|
|
127
|
+
"cornsilk": (255, 248, 220),
|
|
128
|
+
"crimson": (220, 20, 60),
|
|
129
|
+
"cyan": (0, 255, 255),
|
|
130
|
+
"darkblue": (0, 0, 139),
|
|
131
|
+
"darkcyan": (0, 139, 139),
|
|
132
|
+
"darkgoldenrod": (184, 134, 11),
|
|
133
|
+
"darkgray": (169, 169, 169),
|
|
134
|
+
"darkgreen": (0, 100, 0),
|
|
135
|
+
"darkgrey": (169, 169, 169),
|
|
136
|
+
"darkkhaki": (189, 183, 107),
|
|
137
|
+
"darkmagenta": (139, 0, 139),
|
|
138
|
+
"darkolivegreen": (85, 107, 47),
|
|
139
|
+
"darkorange": (255, 140, 0),
|
|
140
|
+
"darkorchid": (153, 50, 204),
|
|
141
|
+
"darkred": (139, 0, 0),
|
|
142
|
+
"darksalmon": (233, 150, 122),
|
|
143
|
+
"darkseagreen": (143, 188, 143),
|
|
144
|
+
"darkslateblue": (72, 61, 139),
|
|
145
|
+
"darkslategray": (47, 79, 79),
|
|
146
|
+
"darkslategrey": (47, 79, 79),
|
|
147
|
+
"darkturquoise": (0, 206, 209),
|
|
148
|
+
"darkviolet": (148, 0, 211),
|
|
149
|
+
"deeppink": (255, 20, 147),
|
|
150
|
+
"deepskyblue": (0, 191, 255),
|
|
151
|
+
"dimgray": (105, 105, 105),
|
|
152
|
+
"dimgrey": (105, 105, 105),
|
|
153
|
+
"dodgerblue": (30, 144, 255),
|
|
154
|
+
"firebrick": (178, 34, 34),
|
|
155
|
+
"floralwhite": (255, 250, 240),
|
|
156
|
+
"forestgreen": (34, 139, 34),
|
|
157
|
+
"fuchsia": (255, 0, 255),
|
|
158
|
+
"gainsboro": (220, 220, 220),
|
|
159
|
+
"ghostwhite": (248, 248, 255),
|
|
160
|
+
"gold": (255, 215, 0),
|
|
161
|
+
"goldenrod": (218, 165, 32),
|
|
162
|
+
"gray": (128, 128, 128),
|
|
163
|
+
"grey": (128, 128, 128),
|
|
164
|
+
"green": (0, 128, 0),
|
|
165
|
+
"greenyellow": (173, 255, 47),
|
|
166
|
+
"honeydew": (240, 255, 240),
|
|
167
|
+
"hotpink": (255, 105, 180),
|
|
168
|
+
"indianred": (205, 92, 92),
|
|
169
|
+
"indigo": (75, 0, 130),
|
|
170
|
+
"ivory": (255, 255, 240),
|
|
171
|
+
"khaki": (240, 230, 140),
|
|
172
|
+
"lavender": (230, 230, 250),
|
|
173
|
+
"lavenderblush": (255, 240, 245),
|
|
174
|
+
"lawngreen": (124, 252, 0),
|
|
175
|
+
"lemonchiffon": (255, 250, 205),
|
|
176
|
+
"lightblue": (173, 216, 230),
|
|
177
|
+
"lightcoral": (240, 128, 128),
|
|
178
|
+
"lightcyan": (224, 255, 255),
|
|
179
|
+
"lightgoldenrodyellow": (250, 250, 210),
|
|
180
|
+
"lightgray": (211, 211, 211),
|
|
181
|
+
"lightgreen": (144, 238, 144),
|
|
182
|
+
"lightgrey": (211, 211, 211),
|
|
183
|
+
"lightpink": (255, 182, 193),
|
|
184
|
+
"lightsalmon": (255, 160, 122),
|
|
185
|
+
"lightseagreen": (32, 178, 170),
|
|
186
|
+
"lightskyblue": (135, 206, 250),
|
|
187
|
+
"lightslategray": (119, 136, 153),
|
|
188
|
+
"lightslategrey": (119, 136, 153),
|
|
189
|
+
"lightsteelblue": (176, 196, 222),
|
|
190
|
+
"lightyellow": (255, 255, 224),
|
|
191
|
+
"lime": (0, 255, 0),
|
|
192
|
+
"limegreen": (50, 205, 50),
|
|
193
|
+
"linen": (250, 240, 230),
|
|
194
|
+
"magenta": (255, 0, 255),
|
|
195
|
+
"maroon": (128, 0, 0),
|
|
196
|
+
"mediumaquamarine": (102, 205, 170),
|
|
197
|
+
"mediumblue": (0, 0, 205),
|
|
198
|
+
"mediumorchid": (186, 85, 211),
|
|
199
|
+
"mediumpurple": (147, 112, 219),
|
|
200
|
+
"mediumseagreen": (60, 179, 113),
|
|
201
|
+
"mediumslateblue": (123, 104, 238),
|
|
202
|
+
"mediumspringgreen": (0, 250, 154),
|
|
203
|
+
"mediumturquoise": (72, 209, 204),
|
|
204
|
+
"mediumvioletred": (199, 21, 133),
|
|
205
|
+
"midnightblue": (25, 25, 112),
|
|
206
|
+
"mintcream": (245, 255, 250),
|
|
207
|
+
"mistyrose": (255, 228, 225),
|
|
208
|
+
"moccasin": (255, 228, 181),
|
|
209
|
+
"navajowhite": (255, 222, 173),
|
|
210
|
+
"navy": (0, 0, 128),
|
|
211
|
+
"oldlace": (253, 245, 230),
|
|
212
|
+
"olive": (128, 128, 0),
|
|
213
|
+
"olivedrab": (107, 142, 35),
|
|
214
|
+
"orange": (255, 165, 0),
|
|
215
|
+
"orangered": (255, 69, 0),
|
|
216
|
+
"orchid": (218, 112, 214),
|
|
217
|
+
"palegoldenrod": (238, 232, 170),
|
|
218
|
+
"palegreen": (152, 251, 152),
|
|
219
|
+
"paleturquoise": (175, 238, 238),
|
|
220
|
+
"palevioletred": (219, 112, 147),
|
|
221
|
+
"papayawhip": (255, 239, 213),
|
|
222
|
+
"peachpuff": (255, 218, 185),
|
|
223
|
+
"peru": (205, 133, 63),
|
|
224
|
+
"pink": (255, 192, 203),
|
|
225
|
+
"plum": (221, 160, 221),
|
|
226
|
+
"powderblue": (176, 224, 230),
|
|
227
|
+
"purple": (128, 0, 128),
|
|
228
|
+
"red": (255, 0, 0),
|
|
229
|
+
"rosybrown": (188, 143, 143),
|
|
230
|
+
"royalblue": (65, 105, 225),
|
|
231
|
+
"saddlebrown": (139, 69, 19),
|
|
232
|
+
"salmon": (250, 128, 114),
|
|
233
|
+
"sandybrown": (244, 164, 96),
|
|
234
|
+
"seagreen": (46, 139, 87),
|
|
235
|
+
"seashell": (255, 245, 238),
|
|
236
|
+
"sienna": (160, 82, 45),
|
|
237
|
+
"silver": (192, 192, 192),
|
|
238
|
+
"skyblue": (135, 206, 235),
|
|
239
|
+
"slateblue": (106, 90, 205),
|
|
240
|
+
"slategray": (112, 128, 144),
|
|
241
|
+
"slategrey": (112, 128, 144),
|
|
242
|
+
"snow": (255, 250, 250),
|
|
243
|
+
"springgreen": (0, 255, 127),
|
|
244
|
+
"steelblue": (70, 130, 180),
|
|
245
|
+
"tan": (210, 180, 140),
|
|
246
|
+
"teal": (0, 128, 128),
|
|
247
|
+
"thistle": (216, 191, 216),
|
|
248
|
+
"tomato": (255, 99, 71),
|
|
249
|
+
"turquoise": (64, 224, 208),
|
|
250
|
+
"violet": (238, 130, 238),
|
|
251
|
+
"wheat": (245, 222, 179),
|
|
252
|
+
"white": (255, 255, 255),
|
|
253
|
+
"whitesmoke": (245, 245, 245),
|
|
254
|
+
"yellow": (255, 255, 0),
|
|
255
|
+
"yellowgreen": (154, 205, 50),
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
_ws_re = re.compile(r"\s+")
|
|
259
|
+
_token_re = re.compile(r"[A-Za-z_][A-Za-z0-9_]*")
|
|
260
|
+
_hex_re = re.compile(r"#([0-9a-f]{3}(?:[0-9a-f]{3})?)$")
|
|
261
|
+
_number_re = re.compile(r"[0-9]*(\.[0-9]*)")
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
class ColorParser:
|
|
260
265
|
def __init__(self, s):
|
|
261
266
|
self._string = s
|
|
262
267
|
self._pos = 0
|
|
@@ -265,12 +270,13 @@ class ColorParser (object):
|
|
|
265
270
|
m = _ws_re.match(self._string, self._pos)
|
|
266
271
|
if m:
|
|
267
272
|
self._pos = m.end(0)
|
|
268
|
-
|
|
269
|
-
def expect(self, s, context=
|
|
270
|
-
if
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
273
|
+
|
|
274
|
+
def expect(self, s, context=""):
|
|
275
|
+
if (
|
|
276
|
+
len(self._string) - self._pos < len(s)
|
|
277
|
+
or self._string[self._pos : self._pos + len(s)] != s
|
|
278
|
+
):
|
|
279
|
+
raise ValueError(f'bad color "{self._string}" - expected "{s}"{context}')
|
|
274
280
|
self._pos += len(s)
|
|
275
281
|
|
|
276
282
|
def expectEnd(self):
|
|
@@ -285,29 +291,28 @@ class ColorParser (object):
|
|
|
285
291
|
self._pos = m.end(0)
|
|
286
292
|
return token
|
|
287
293
|
return None
|
|
288
|
-
|
|
289
|
-
def parseNumber(self, context=
|
|
294
|
+
|
|
295
|
+
def parseNumber(self, context=""):
|
|
290
296
|
m = _number_re.match(self._string, self._pos)
|
|
291
297
|
if m:
|
|
292
298
|
self._pos = m.end(0)
|
|
293
299
|
return float(m.group(0))
|
|
294
|
-
raise ValueError('bad color "
|
|
295
|
-
|
|
296
|
-
|
|
300
|
+
raise ValueError(f'bad color "{self._string}" - expected a number{context}')
|
|
301
|
+
|
|
297
302
|
def parseColor(self):
|
|
298
303
|
self.skipws()
|
|
299
304
|
|
|
300
305
|
token = self.getToken()
|
|
301
306
|
if token:
|
|
302
|
-
if token ==
|
|
307
|
+
if token == "rgb":
|
|
303
308
|
return self.parseRGB()
|
|
304
|
-
elif token ==
|
|
309
|
+
elif token == "hsl":
|
|
305
310
|
return self.parseHSL()
|
|
306
|
-
elif token ==
|
|
311
|
+
elif token == "hwb":
|
|
307
312
|
return self.parseHWB()
|
|
308
|
-
elif token ==
|
|
313
|
+
elif token == "cmyk":
|
|
309
314
|
return self.parseCMYK()
|
|
310
|
-
elif token ==
|
|
315
|
+
elif token == "gray" or token == "grey":
|
|
311
316
|
return self.parseGray()
|
|
312
317
|
|
|
313
318
|
try:
|
|
@@ -318,19 +323,19 @@ class ColorParser (object):
|
|
|
318
323
|
self.expectEnd()
|
|
319
324
|
|
|
320
325
|
return RGB(r / 255.0, g / 255.0, b / 255.0)
|
|
321
|
-
|
|
326
|
+
|
|
322
327
|
m = _hex_re.match(self._string, self._pos)
|
|
323
328
|
if m:
|
|
324
329
|
hrgb = m.group(1)
|
|
325
330
|
|
|
326
331
|
if len(hrgb) == 3:
|
|
327
|
-
r = int(
|
|
328
|
-
g = int(
|
|
329
|
-
b = int(
|
|
332
|
+
r = int("0x" + 2 * hrgb[0], 16)
|
|
333
|
+
g = int("0x" + 2 * hrgb[1], 16)
|
|
334
|
+
b = int("0x" + 2 * hrgb[2], 16)
|
|
330
335
|
else:
|
|
331
|
-
r = int(
|
|
332
|
-
g = int(
|
|
333
|
-
b = int(
|
|
336
|
+
r = int("0x" + hrgb[0:2], 16)
|
|
337
|
+
g = int("0x" + hrgb[2:4], 16)
|
|
338
|
+
b = int("0x" + hrgb[4:6], 16)
|
|
334
339
|
|
|
335
340
|
self._pos = m.end(0)
|
|
336
341
|
self.skipws()
|
|
@@ -342,51 +347,51 @@ class ColorParser (object):
|
|
|
342
347
|
raise ValueError('bad color syntax "%s"' % self._string)
|
|
343
348
|
|
|
344
349
|
def parseRGB(self):
|
|
345
|
-
self.expect(
|
|
350
|
+
self.expect("(", 'after "rgb"')
|
|
346
351
|
self.skipws()
|
|
347
352
|
|
|
348
353
|
r = self.parseValue()
|
|
349
354
|
|
|
350
355
|
self.skipws()
|
|
351
|
-
self.expect(
|
|
356
|
+
self.expect(",", 'in "rgb"')
|
|
352
357
|
self.skipws()
|
|
353
358
|
|
|
354
359
|
g = self.parseValue()
|
|
355
360
|
|
|
356
361
|
self.skipws()
|
|
357
|
-
self.expect(
|
|
362
|
+
self.expect(",", 'in "rgb"')
|
|
358
363
|
self.skipws()
|
|
359
364
|
|
|
360
365
|
b = self.parseValue()
|
|
361
366
|
|
|
362
367
|
self.skipws()
|
|
363
|
-
self.expect(
|
|
368
|
+
self.expect(")", 'at end of "rgb"')
|
|
364
369
|
|
|
365
370
|
self.skipws()
|
|
366
371
|
self.expectEnd()
|
|
367
372
|
|
|
368
373
|
return RGB(r, g, b)
|
|
369
|
-
|
|
374
|
+
|
|
370
375
|
def parseHSL(self):
|
|
371
|
-
self.expect(
|
|
376
|
+
self.expect("(", 'after "hsl"')
|
|
372
377
|
self.skipws()
|
|
373
378
|
|
|
374
379
|
h = self.parseAngle()
|
|
375
380
|
|
|
376
381
|
self.skipws()
|
|
377
|
-
self.expect(
|
|
382
|
+
self.expect(",", 'in "hsl"')
|
|
378
383
|
self.skipws()
|
|
379
384
|
|
|
380
385
|
s = self.parseValue()
|
|
381
386
|
|
|
382
387
|
self.skipws()
|
|
383
|
-
self.expect(
|
|
388
|
+
self.expect(",", 'in "hsl"')
|
|
384
389
|
self.skipws()
|
|
385
390
|
|
|
386
|
-
l = self.parseValue()
|
|
391
|
+
l = self.parseValue() # noqa; E741
|
|
387
392
|
|
|
388
393
|
self.skipws()
|
|
389
|
-
self.expect(
|
|
394
|
+
self.expect(")", 'at end of "hsl"')
|
|
390
395
|
|
|
391
396
|
self.skipws()
|
|
392
397
|
self.expectEnd()
|
|
@@ -394,25 +399,25 @@ class ColorParser (object):
|
|
|
394
399
|
return HSL(h, s, l)
|
|
395
400
|
|
|
396
401
|
def parseHWB(self):
|
|
397
|
-
self.expect(
|
|
402
|
+
self.expect("(", 'after "hwb"')
|
|
398
403
|
self.skipws()
|
|
399
404
|
|
|
400
405
|
h = self.parseAngle()
|
|
401
406
|
|
|
402
407
|
self.skipws()
|
|
403
|
-
self.expect(
|
|
408
|
+
self.expect(",", 'in "hwb"')
|
|
404
409
|
self.skipws()
|
|
405
410
|
|
|
406
411
|
w = self.parseValue()
|
|
407
412
|
|
|
408
413
|
self.skipws()
|
|
409
|
-
self.expect(
|
|
414
|
+
self.expect(",", 'in "hwb"')
|
|
410
415
|
self.skipws()
|
|
411
416
|
|
|
412
417
|
b = self.parseValue()
|
|
413
418
|
|
|
414
419
|
self.skipws()
|
|
415
|
-
self.expect(
|
|
420
|
+
self.expect(")", 'at end of "hwb"')
|
|
416
421
|
|
|
417
422
|
self.skipws()
|
|
418
423
|
self.expectEnd()
|
|
@@ -420,31 +425,31 @@ class ColorParser (object):
|
|
|
420
425
|
return HWB(h, w, b)
|
|
421
426
|
|
|
422
427
|
def parseCMYK(self):
|
|
423
|
-
self.expect(
|
|
428
|
+
self.expect("(", 'after "cmyk"')
|
|
424
429
|
self.skipws()
|
|
425
430
|
|
|
426
431
|
c = self.parseValue()
|
|
427
432
|
|
|
428
433
|
self.skipws()
|
|
429
|
-
self.expect(
|
|
434
|
+
self.expect(",", 'in "cmyk"')
|
|
430
435
|
self.skipws()
|
|
431
436
|
|
|
432
437
|
m = self.parseValue()
|
|
433
438
|
|
|
434
439
|
self.skipws()
|
|
435
|
-
self.expect(
|
|
440
|
+
self.expect(",", 'in "cmyk"')
|
|
436
441
|
self.skipws()
|
|
437
442
|
|
|
438
443
|
y = self.parseValue()
|
|
439
444
|
|
|
440
445
|
self.skipws()
|
|
441
|
-
self.expect(
|
|
446
|
+
self.expect(",", 'in "cmyk"')
|
|
442
447
|
self.skipws()
|
|
443
448
|
|
|
444
449
|
k = self.parseValue()
|
|
445
450
|
|
|
446
451
|
self.skipws()
|
|
447
|
-
self.expect(
|
|
452
|
+
self.expect(")", 'at end of "cmyk"')
|
|
448
453
|
|
|
449
454
|
self.skipws()
|
|
450
455
|
self.expectEnd()
|
|
@@ -452,13 +457,13 @@ class ColorParser (object):
|
|
|
452
457
|
return CMYK(c, m, y, k)
|
|
453
458
|
|
|
454
459
|
def parseGray(self):
|
|
455
|
-
self.expect(
|
|
460
|
+
self.expect("(", 'after "gray"')
|
|
456
461
|
self.skipws()
|
|
457
462
|
|
|
458
463
|
g = self.parseValue()
|
|
459
464
|
|
|
460
465
|
self.skipws()
|
|
461
|
-
self.expect(
|
|
466
|
+
self.expect(")", 'at end of "gray')
|
|
462
467
|
|
|
463
468
|
self.skipws()
|
|
464
469
|
self.expectEnd()
|
|
@@ -468,27 +473,32 @@ class ColorParser (object):
|
|
|
468
473
|
def parseValue(self):
|
|
469
474
|
n = self.parseNumber()
|
|
470
475
|
self.skipws()
|
|
471
|
-
if self._string[self._pos] ==
|
|
476
|
+
if self._string[self._pos] == "%":
|
|
472
477
|
n = n / 100.0
|
|
473
478
|
self.pos += 1
|
|
474
479
|
return n
|
|
475
|
-
|
|
480
|
+
|
|
476
481
|
def parseAngle(self):
|
|
477
482
|
n = self.parseNumber()
|
|
478
483
|
self.skipws()
|
|
479
484
|
tok = self.getToken()
|
|
480
|
-
if tok ==
|
|
485
|
+
if tok == "rad":
|
|
481
486
|
n = n * 180.0 / math.pi
|
|
482
|
-
elif tok ==
|
|
487
|
+
elif tok == "grad" or tok == "gon":
|
|
483
488
|
n = n * 0.9
|
|
484
|
-
elif tok !=
|
|
489
|
+
elif tok != "deg":
|
|
485
490
|
raise ValueError('bad angle unit "%s"' % tok)
|
|
486
491
|
return n
|
|
487
492
|
|
|
488
|
-
|
|
489
|
-
|
|
493
|
+
|
|
494
|
+
_color_re = re.compile(
|
|
495
|
+
r"\s*(#|rgb|hsl|hwb|cmyk|gray|grey|%s)" % "|".join(_x11_colors.keys())
|
|
496
|
+
)
|
|
497
|
+
|
|
498
|
+
|
|
490
499
|
def isAColor(s):
|
|
491
500
|
return _color_re.match(s)
|
|
492
501
|
|
|
502
|
+
|
|
493
503
|
def parseColor(s):
|
|
494
504
|
return ColorParser(s).parseColor()
|