Mercurial > libervia-backend
annotate frontends/src/tools/css_color.py @ 2109:85f3e12e984d
core (memory/cache): file caching handling, first draft:
instead of having file caching handled individually by plugins, a generic module has been added in memory.
- Cache can be global or associated to a profile. In the later case, client.cache can be used.
- Cache are managed with unique ids (which can be any unique unicode, hash uuid, or something else).
- To know if a file is in cache, getFilePath is used: if the file is in cache, its absolute path is returned, else None is returned.
- To cache a file, cacheData is used with at list the source of cache (most of time plugin import name), and unique id. The method return file opened in binary writing mode (so cacheData can - and should - be used with "with" statement).
- 2 files will be created: a metadata file (named after the unique id), and the actual file.
- each file has a end of life time, after it, the cache is invalidated and the file must be requested again.
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 05 Jan 2017 20:23:38 +0100 |
parents | 95ad70ad815c |
children | 8b37a62336c3 |
rev | line source |
---|---|
2077
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python2 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # CSS color parsing |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
5 # Copyright (C) 2009-2016 Jérome-Poisson |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 from sat.core.log import getLogger |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 log = getLogger(__name__) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 CSS_COLORS = { |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 u"black": u"000000", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 u"silver": u"c0c0c0", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 u"gray": u"808080", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 u"white": u"ffffff", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 u"maroon": u"800000", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 u"red": u"ff0000", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 u"purple": u"800080", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 u"fuchsia": u"ff00ff", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
33 u"green": u"008000", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 u"lime": u"00ff00", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 u"olive": u"808000", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
36 u"yellow": u"ffff00", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
37 u"navy": u"000080", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
38 u"blue": u"0000ff", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
39 u"teal": u"008080", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
40 u"aqua": u"00ffff", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
41 u"orange": u"ffa500", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
42 u"aliceblue": u"f0f8ff", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
43 u"antiquewhite": u"faebd7", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
44 u"aquamarine": u"7fffd4", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
45 u"azure": u"f0ffff", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
46 u"beige": u"f5f5dc", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
47 u"bisque": u"ffe4c4", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
48 u"blanchedalmond": u"ffebcd", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
49 u"blueviolet": u"8a2be2", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
50 u"brown": u"a52a2a", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
51 u"burlywood": u"deb887", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
52 u"cadetblue": u"5f9ea0", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
53 u"chartreuse": u"7fff00", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
54 u"chocolate": u"d2691e", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
55 u"coral": u"ff7f50", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
56 u"cornflowerblue": u"6495ed", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
57 u"cornsilk": u"fff8dc", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
58 u"crimson": u"dc143c", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
59 u"darkblue": u"00008b", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
60 u"darkcyan": u"008b8b", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
61 u"darkgoldenrod": u"b8860b", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
62 u"darkgray": u"a9a9a9", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
63 u"darkgreen": u"006400", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
64 u"darkgrey": u"a9a9a9", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
65 u"darkkhaki": u"bdb76b", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
66 u"darkmagenta": u"8b008b", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
67 u"darkolivegreen": u"556b2f", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
68 u"darkorange": u"ff8c00", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
69 u"darkorchid": u"9932cc", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
70 u"darkred": u"8b0000", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
71 u"darksalmon": u"e9967a", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
72 u"darkseagreen": u"8fbc8f", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
73 u"darkslateblue": u"483d8b", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
74 u"darkslategray": u"2f4f4f", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
75 u"darkslategrey": u"2f4f4f", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
76 u"darkturquoise": u"00ced1", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
77 u"darkviolet": u"9400d3", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
78 u"deeppink": u"ff1493", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
79 u"deepskyblue": u"00bfff", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
80 u"dimgray": u"696969", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
81 u"dimgrey": u"696969", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
82 u"dodgerblue": u"1e90ff", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
83 u"firebrick": u"b22222", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
84 u"floralwhite": u"fffaf0", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
85 u"forestgreen": u"228b22", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
86 u"gainsboro": u"dcdcdc", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
87 u"ghostwhite": u"f8f8ff", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
88 u"gold": u"ffd700", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
89 u"goldenrod": u"daa520", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
90 u"greenyellow": u"adff2f", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
91 u"grey": u"808080", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
92 u"honeydew": u"f0fff0", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
93 u"hotpink": u"ff69b4", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
94 u"indianred": u"cd5c5c", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
95 u"indigo": u"4b0082", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
96 u"ivory": u"fffff0", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
97 u"khaki": u"f0e68c", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
98 u"lavender": u"e6e6fa", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
99 u"lavenderblush": u"fff0f5", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
100 u"lawngreen": u"7cfc00", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
101 u"lemonchiffon": u"fffacd", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
102 u"lightblue": u"add8e6", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
103 u"lightcoral": u"f08080", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
104 u"lightcyan": u"e0ffff", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
105 u"lightgoldenrodyellow": u"fafad2", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
106 u"lightgray": u"d3d3d3", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
107 u"lightgreen": u"90ee90", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
108 u"lightgrey": u"d3d3d3", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
109 u"lightpink": u"ffb6c1", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
110 u"lightsalmon": u"ffa07a", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
111 u"lightseagreen": u"20b2aa", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
112 u"lightskyblue": u"87cefa", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
113 u"lightslategray": u"778899", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
114 u"lightslategrey": u"778899", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
115 u"lightsteelblue": u"b0c4de", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
116 u"lightyellow": u"ffffe0", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
117 u"limegreen": u"32cd32", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
118 u"linen": u"faf0e6", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
119 u"mediumaquamarine": u"66cdaa", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
120 u"mediumblue": u"0000cd", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
121 u"mediumorchid": u"ba55d3", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
122 u"mediumpurple": u"9370db", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
123 u"mediumseagreen": u"3cb371", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
124 u"mediumslateblue": u"7b68ee", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
125 u"mediumspringgreen": u"00fa9a", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
126 u"mediumturquoise": u"48d1cc", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
127 u"mediumvioletred": u"c71585", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
128 u"midnightblue": u"191970", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
129 u"mintcream": u"f5fffa", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
130 u"mistyrose": u"ffe4e1", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
131 u"moccasin": u"ffe4b5", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
132 u"navajowhite": u"ffdead", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
133 u"oldlace": u"fdf5e6", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
134 u"olivedrab": u"6b8e23", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
135 u"orangered": u"ff4500", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
136 u"orchid": u"da70d6", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
137 u"palegoldenrod": u"eee8aa", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
138 u"palegreen": u"98fb98", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
139 u"paleturquoise": u"afeeee", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
140 u"palevioletred": u"db7093", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
141 u"papayawhip": u"ffefd5", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
142 u"peachpuff": u"ffdab9", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
143 u"peru": u"cd853f", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
144 u"pink": u"ffc0cb", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
145 u"plum": u"dda0dd", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
146 u"powderblue": u"b0e0e6", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
147 u"rosybrown": u"bc8f8f", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
148 u"royalblue": u"4169e1", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
149 u"saddlebrown": u"8b4513", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
150 u"salmon": u"fa8072", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
151 u"sandybrown": u"f4a460", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
152 u"seagreen": u"2e8b57", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
153 u"seashell": u"fff5ee", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
154 u"sienna": u"a0522d", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
155 u"skyblue": u"87ceeb", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
156 u"slateblue": u"6a5acd", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
157 u"slategray": u"708090", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
158 u"slategrey": u"708090", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
159 u"snow": u"fffafa", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
160 u"springgreen": u"00ff7f", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
161 u"steelblue": u"4682b4", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
162 u"tan": u"d2b48c", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
163 u"thistle": u"d8bfd8", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
164 u"tomato": u"ff6347", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
165 u"turquoise": u"40e0d0", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
166 u"violet": u"ee82ee", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
167 u"wheat": u"f5deb3", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
168 u"whitesmoke": u"f5f5f5", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
169 u"yellowgreen": u"9acd32", |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
170 u"rebeccapurple": u"663399" |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
171 } |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
172 DEFAULT = u"000000" |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
173 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
174 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
175 def parse(raw_value, as_string=True): |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
176 """parse CSS color value and return normalised value |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
177 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
178 @param raw_value(unicode): CSS value |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
179 @param as_string(bool): if True return a string, |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
180 else return a tuple of int |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
181 @return (unicode, tuple): normalised value |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
182 if as_string is True, value is 3 or 4 hex words (e.g. u"ff00aabb") |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
183 else value is a 3 or 4 tuple of int (e.g.: (255, 0, 170, 187)). |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
184 If present, the 4th value is the alpha channel |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
185 If value can't be parsed, a warning message is logged, and DEFAULT is returned |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
186 """ |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
187 raw_value = raw_value.strip().lower() |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
188 if raw_value.startswith(u'#'): |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
189 # we have a hexadecimal value |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
190 str_value = raw_value[1:] |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
191 if len(raw_value) in (3,4): |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
192 str_value = u''.join([2*v for v in str_value]) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
193 elif raw_value.startswith(u'rgb'): |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
194 left_p = raw_value.find(u'(') |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
195 right_p = raw_value.find(u')') |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
196 rgb_values = [v.strip() for v in raw_value[left_p+1:right_p].split(',')] |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
197 expected_len = 4 if raw_value.startswith(u'rgba') else 3 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
198 if len(rgb_values) != expected_len: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
199 log.warning(u"incorrect value: {}".format(raw_value)) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
200 str_value = DEFAULT |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
201 else: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
202 int_values = [] |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
203 for rgb_v in rgb_values: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
204 p_idx = rgb_v.find(u'%') |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
205 if p_idx == -1: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
206 # base 10 value |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
207 try: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
208 int_v = int(rgb_v) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
209 if int_v > 255: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
210 raise ValueError(u"value exceed 255") |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
211 int_values.append(int_v) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
212 except ValueError: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
213 log.warning(u"invalid int: {}".format(rgb_v)) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
214 int_values.append(0) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
215 else: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
216 # percentage |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
217 try: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
218 int_v = int(int(rgb_v[:p_idx]) / 100.0 * 255) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
219 if int_v > 255: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
220 raise ValueError(u"value exceed 255") |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
221 int_values.append(int_v) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
222 except ValueError: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
223 log.warning(u"invalid percent value: {}".format(rgb_v)) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
224 int_values.append(0) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
225 str_value = u''.join([u"{:02x}".format(v) for v in int_values]) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
226 elif raw_value.startswith(u'hsl'): |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
227 log.warning(u"hue-saturation-lightness not handled yet") # TODO |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
228 str_value = DEFAULT |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
229 else: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
230 try: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
231 str_value = CSS_COLORS[raw_value] |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
232 except KeyError: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
233 log.warning(u"unrecognised format: {}".format(raw_value)) |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
234 str_value = DEFAULT |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
235 |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
236 if as_string: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
237 return str_value |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
238 else: |
95ad70ad815c
frontends (tools): added a module to parse CSS colors
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
239 return tuple([int(str_value[i]+str_value[i+1], 16) for i in xrange(0, len(str_value), 2)]) |