dirplot 0.1.0__py3-none-any.whl
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.
- dirplot/__init__.py +3 -0
- dirplot/__main__.py +11 -0
- dirplot/colors.py +731 -0
- dirplot/display.py +142 -0
- dirplot/fonts/JetBrainsMono-Bold.ttf +0 -0
- dirplot/fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- dirplot/fonts/JetBrainsMono-Italic.ttf +0 -0
- dirplot/fonts/JetBrainsMono-Regular.ttf +0 -0
- dirplot/fonts/OFL.txt +93 -0
- dirplot/main.py +153 -0
- dirplot/py.typed +0 -0
- dirplot/render.py +350 -0
- dirplot/scanner.py +76 -0
- dirplot/terminal.py +28 -0
- dirplot-0.1.0.dist-info/METADATA +155 -0
- dirplot-0.1.0.dist-info/RECORD +19 -0
- dirplot-0.1.0.dist-info/WHEEL +4 -0
- dirplot-0.1.0.dist-info/entry_points.txt +2 -0
- dirplot-0.1.0.dist-info/licenses/LICENSE +21 -0
dirplot/colors.py
ADDED
|
@@ -0,0 +1,731 @@
|
|
|
1
|
+
"""Colour assignment for file extensions."""
|
|
2
|
+
|
|
3
|
+
from typing import Any
|
|
4
|
+
|
|
5
|
+
import matplotlib
|
|
6
|
+
|
|
7
|
+
matplotlib.use("Agg")
|
|
8
|
+
|
|
9
|
+
import matplotlib.pyplot as plt # noqa: E402
|
|
10
|
+
|
|
11
|
+
# Matplotlib RGBA colour as returned by a colormap call.
|
|
12
|
+
RGBAColor = tuple[float, float, float, float]
|
|
13
|
+
|
|
14
|
+
# Colors sourced from GitHub Linguist languages.yml
|
|
15
|
+
# https://github.com/github/linguist/blob/master/lib/linguist/languages.yml
|
|
16
|
+
# Copyright (c) 2017 GitHub, Inc. — MIT License
|
|
17
|
+
# https://github.com/github/linguist/blob/master/LICENSE
|
|
18
|
+
_LINGUIST: dict[str, str] = {
|
|
19
|
+
".bsl": "#814CCC",
|
|
20
|
+
".os": "#814CCC",
|
|
21
|
+
".2da": "#38761D",
|
|
22
|
+
".4dm": "#004289",
|
|
23
|
+
".abap": "#E8274B",
|
|
24
|
+
".asddls": "#555e25",
|
|
25
|
+
".asc": "#B9D9FF",
|
|
26
|
+
".ash": "#B9D9FF",
|
|
27
|
+
".aidl": "#34EB6B",
|
|
28
|
+
".al": "#3AA2B5",
|
|
29
|
+
".alg": "#D1E0DB",
|
|
30
|
+
".ampl": "#E6EFBB",
|
|
31
|
+
".g4": "#9DC3FF",
|
|
32
|
+
".apib": "#2ACCA8",
|
|
33
|
+
".apl": "#5A8164",
|
|
34
|
+
".dyalog": "#5A8164",
|
|
35
|
+
".asl": "#555555",
|
|
36
|
+
".dsl": "#555555",
|
|
37
|
+
".as": "#882B0F",
|
|
38
|
+
".adb": "#02f88c",
|
|
39
|
+
".ada": "#02f88c",
|
|
40
|
+
".ads": "#02f88c",
|
|
41
|
+
".txt": "#800000",
|
|
42
|
+
".afm": "#fa0f00",
|
|
43
|
+
".agda": "#315665",
|
|
44
|
+
".ak": "#640ff8",
|
|
45
|
+
".als": "#64C800",
|
|
46
|
+
".angelscript": "#C7D7DC",
|
|
47
|
+
".antlers.html": "#ff269e",
|
|
48
|
+
".antlers.php": "#ff269e",
|
|
49
|
+
".antlers.xml": "#ff269e",
|
|
50
|
+
".apacheconf": "#d12127",
|
|
51
|
+
".vhost": "#d12127",
|
|
52
|
+
".cls": "#1797c0",
|
|
53
|
+
".apex": "#1797c0",
|
|
54
|
+
".trigger": "#1797c0",
|
|
55
|
+
".agc": "#0B3D91",
|
|
56
|
+
".applescript": "#101F1F",
|
|
57
|
+
".scpt": "#101F1F",
|
|
58
|
+
".arc": "#aa2afe",
|
|
59
|
+
".asciidoc": "#73a0c5",
|
|
60
|
+
".adoc": "#73a0c5",
|
|
61
|
+
".aj": "#a957b0",
|
|
62
|
+
".asm": "#6E4C13",
|
|
63
|
+
".a51": "#6E4C13",
|
|
64
|
+
".i": "#6E4C13",
|
|
65
|
+
".inc": "#6E4C13",
|
|
66
|
+
".nas": "#6E4C13",
|
|
67
|
+
".nasm": "#6E4C13",
|
|
68
|
+
".s": "#6E4C13",
|
|
69
|
+
".astro": "#ff5a03",
|
|
70
|
+
".asy": "#ff0000",
|
|
71
|
+
".aug": "#9CC134",
|
|
72
|
+
".ahk": "#6594b9",
|
|
73
|
+
".ahkl": "#6594b9",
|
|
74
|
+
".au3": "#1C3552",
|
|
75
|
+
".avdl": "#0040FF",
|
|
76
|
+
".awk": "#c30e9b",
|
|
77
|
+
".auk": "#c30e9b",
|
|
78
|
+
".gawk": "#c30e9b",
|
|
79
|
+
".mawk": "#c30e9b",
|
|
80
|
+
".nawk": "#c30e9b",
|
|
81
|
+
".mch": "#8aa8c5",
|
|
82
|
+
".bas": "#00e4ff",
|
|
83
|
+
".bal": "#FF5000",
|
|
84
|
+
".bat": "#C1F12E",
|
|
85
|
+
".cmd": "#C1F12E",
|
|
86
|
+
".bf": "#a52f4e",
|
|
87
|
+
".befunge": "#555555",
|
|
88
|
+
".be": "#15A13C",
|
|
89
|
+
".bib": "#778899",
|
|
90
|
+
".bibtex": "#778899",
|
|
91
|
+
".bst": "#555555",
|
|
92
|
+
".bicep": "#519aba",
|
|
93
|
+
".bicepparam": "#519aba",
|
|
94
|
+
".bs": "#5562ac",
|
|
95
|
+
".bison": "#6A463F",
|
|
96
|
+
".bb": "#00bce4",
|
|
97
|
+
".bbappend": "#00bce4",
|
|
98
|
+
".bbclass": "#00bce4",
|
|
99
|
+
".blade": "#f7523f",
|
|
100
|
+
".blade.php": "#f7523f",
|
|
101
|
+
".decls": "#00FFAE",
|
|
102
|
+
".bmx": "#cd6400",
|
|
103
|
+
".bsv": "#12223c",
|
|
104
|
+
".bplx": "#c80fa0",
|
|
105
|
+
".b": "#2F2530",
|
|
106
|
+
".brs": "#662D91",
|
|
107
|
+
".bru": "#F4AA41",
|
|
108
|
+
".c": "#555555",
|
|
109
|
+
".cats": "#555555",
|
|
110
|
+
".h": "#555555",
|
|
111
|
+
".idc": "#555555",
|
|
112
|
+
".cs": "#178600",
|
|
113
|
+
".cake": "#178600",
|
|
114
|
+
".csx": "#178600",
|
|
115
|
+
".linq": "#178600",
|
|
116
|
+
".cpp": "#f34b7d",
|
|
117
|
+
".c++": "#f34b7d",
|
|
118
|
+
".cc": "#f34b7d",
|
|
119
|
+
".cp": "#f34b7d",
|
|
120
|
+
".cppm": "#f34b7d",
|
|
121
|
+
".cxx": "#f34b7d",
|
|
122
|
+
".h++": "#f34b7d",
|
|
123
|
+
".hh": "#f34b7d",
|
|
124
|
+
".hpp": "#f34b7d",
|
|
125
|
+
".hxx": "#f34b7d",
|
|
126
|
+
".inl": "#f34b7d",
|
|
127
|
+
".ino": "#f34b7d",
|
|
128
|
+
".ipp": "#f34b7d",
|
|
129
|
+
".ixx": "#f34b7d",
|
|
130
|
+
".tcc": "#f34b7d",
|
|
131
|
+
".tpp": "#f34b7d",
|
|
132
|
+
".txx": "#f34b7d",
|
|
133
|
+
".c3": "#2563eb",
|
|
134
|
+
".cds": "#0092d1",
|
|
135
|
+
".clp": "#00A300",
|
|
136
|
+
".cmake": "#DA3434",
|
|
137
|
+
".dae": "#F1A42B",
|
|
138
|
+
".cql": "#006091",
|
|
139
|
+
".css": "#663399",
|
|
140
|
+
".csv": "#237346",
|
|
141
|
+
".cue": "#5886E1",
|
|
142
|
+
".cabal": "#483465",
|
|
143
|
+
".caddyfile": "#22b638",
|
|
144
|
+
".cdc": "#00ef8b",
|
|
145
|
+
".cairo": "#ff4a48",
|
|
146
|
+
".mligo": "#3be133",
|
|
147
|
+
".cj": "#00868B",
|
|
148
|
+
".capnp": "#c42727",
|
|
149
|
+
".carbon": "#222222",
|
|
150
|
+
".mss": "#555555",
|
|
151
|
+
".ceylon": "#dfa535",
|
|
152
|
+
".chpl": "#8dc63f",
|
|
153
|
+
".ck": "#3f8000",
|
|
154
|
+
".circom": "#707575",
|
|
155
|
+
".cirru": "#ccccff",
|
|
156
|
+
".clw": "#db901e",
|
|
157
|
+
".clar": "#5546ff",
|
|
158
|
+
".icl": "#3F85AF",
|
|
159
|
+
".dcl": "#3F85AF",
|
|
160
|
+
".click": "#E4E6F3",
|
|
161
|
+
".clj": "#db5855",
|
|
162
|
+
".boot": "#db5855",
|
|
163
|
+
".cl2": "#db5855",
|
|
164
|
+
".cljc": "#db5855",
|
|
165
|
+
".cljs": "#db5855",
|
|
166
|
+
".cljx": "#db5855",
|
|
167
|
+
".hic": "#db5855",
|
|
168
|
+
".soy": "#0d948f",
|
|
169
|
+
".clue": "#0009b5",
|
|
170
|
+
".ql": "#140f46",
|
|
171
|
+
".qll": "#140f46",
|
|
172
|
+
".coffee": "#244776",
|
|
173
|
+
"._coffee": "#244776",
|
|
174
|
+
".cjsx": "#244776",
|
|
175
|
+
".iced": "#244776",
|
|
176
|
+
".cfm": "#ed2cd6",
|
|
177
|
+
".cfml": "#ed2cd6",
|
|
178
|
+
".cfc": "#ed2cd6",
|
|
179
|
+
".lisp": "#3fb68b",
|
|
180
|
+
".asd": "#3fb68b",
|
|
181
|
+
".cl": "#3fb68b",
|
|
182
|
+
".l": "#3fb68b",
|
|
183
|
+
".lsp": "#3fb68b",
|
|
184
|
+
".ny": "#3fb68b",
|
|
185
|
+
".sexp": "#3fb68b",
|
|
186
|
+
".cwl": "#B5314C",
|
|
187
|
+
".cps": "#B0CE4E",
|
|
188
|
+
".cook": "#E15A29",
|
|
189
|
+
".cr": "#000100",
|
|
190
|
+
".orc": "#1a1a1a",
|
|
191
|
+
".udo": "#1a1a1a",
|
|
192
|
+
".csd": "#1a1a1a",
|
|
193
|
+
".sco": "#1a1a1a",
|
|
194
|
+
".cu": "#3A4E3A",
|
|
195
|
+
".cuh": "#3A4E3A",
|
|
196
|
+
".curry": "#531242",
|
|
197
|
+
".cylc": "#00b3fd",
|
|
198
|
+
".cyp": "#34c0eb",
|
|
199
|
+
".cypher": "#34c0eb",
|
|
200
|
+
".pyx": "#fedf5b",
|
|
201
|
+
".pxd": "#fedf5b",
|
|
202
|
+
".pxi": "#fedf5b",
|
|
203
|
+
".d": "#ba595e",
|
|
204
|
+
".di": "#ba595e",
|
|
205
|
+
".d2": "#526ee8",
|
|
206
|
+
".dm": "#447265",
|
|
207
|
+
".dfy": "#FFEC25",
|
|
208
|
+
".dart": "#00B4AB",
|
|
209
|
+
".das": "#d3d3d3",
|
|
210
|
+
".dwl": "#003a52",
|
|
211
|
+
".dsc": "#D70751",
|
|
212
|
+
".dhall": "#dfafff",
|
|
213
|
+
".diff": "#555555",
|
|
214
|
+
".patch": "#555555",
|
|
215
|
+
".dockerfile": "#384d54",
|
|
216
|
+
".containerfile": "#384d54",
|
|
217
|
+
".djs": "#cca760",
|
|
218
|
+
".env": "#e5d559",
|
|
219
|
+
".dylan": "#6c616e",
|
|
220
|
+
".dyl": "#6c616e",
|
|
221
|
+
".intr": "#6c616e",
|
|
222
|
+
".lid": "#6c616e",
|
|
223
|
+
".e": "#ccce35",
|
|
224
|
+
".ebnf": "#555555",
|
|
225
|
+
".ecl": "#001d9d",
|
|
226
|
+
".ejs": "#a91e50",
|
|
227
|
+
".ect": "#a91e50",
|
|
228
|
+
".jst": "#a91e50",
|
|
229
|
+
".edgeql": "#31A7FF",
|
|
230
|
+
".esdl": "#31A7FF",
|
|
231
|
+
".ex": "#6e4a7e",
|
|
232
|
+
".exs": "#6e4a7e",
|
|
233
|
+
".heex": "#6e4a7e",
|
|
234
|
+
".leex": "#6e4a7e",
|
|
235
|
+
".elm": "#60B5CC",
|
|
236
|
+
".elv": "#55BB55",
|
|
237
|
+
".el": "#c065db",
|
|
238
|
+
".em": "#FFF4F3",
|
|
239
|
+
".erl": "#B83998",
|
|
240
|
+
".app.src": "#B83998",
|
|
241
|
+
".es": "#B83998",
|
|
242
|
+
".escript": "#B83998",
|
|
243
|
+
".hrl": "#B83998",
|
|
244
|
+
".xrl": "#B83998",
|
|
245
|
+
".yrl": "#B83998",
|
|
246
|
+
".fs": "#b845fc",
|
|
247
|
+
".fsi": "#b845fc",
|
|
248
|
+
".fsx": "#b845fc",
|
|
249
|
+
".fst": "#572e30",
|
|
250
|
+
".fsti": "#572e30",
|
|
251
|
+
".flf": "#FFDDBB",
|
|
252
|
+
".fir": "#2f632f",
|
|
253
|
+
".fx": "#88ccff",
|
|
254
|
+
".flux": "#88ccff",
|
|
255
|
+
".factor": "#636746",
|
|
256
|
+
".fy": "#7b9db4",
|
|
257
|
+
".fancypack": "#7b9db4",
|
|
258
|
+
".fan": "#14253c",
|
|
259
|
+
".dsp": "#c37240",
|
|
260
|
+
".fnl": "#fff3d7",
|
|
261
|
+
".flix": "#d44a45",
|
|
262
|
+
".ftl": "#0050b2",
|
|
263
|
+
".ftlh": "#0050b2",
|
|
264
|
+
".fth": "#341708",
|
|
265
|
+
".4th": "#341708",
|
|
266
|
+
".forth": "#341708",
|
|
267
|
+
".frt": "#341708",
|
|
268
|
+
".f77": "#4d41b1",
|
|
269
|
+
".fpp": "#4d41b1",
|
|
270
|
+
".f90": "#4d41b1",
|
|
271
|
+
".f03": "#4d41b1",
|
|
272
|
+
".f08": "#4d41b1",
|
|
273
|
+
".f95": "#4d41b1",
|
|
274
|
+
".bi": "#141AC9",
|
|
275
|
+
".fut": "#5f021f",
|
|
276
|
+
".gco": "#D08CF2",
|
|
277
|
+
".gcode": "#D08CF2",
|
|
278
|
+
".gaml": "#FFC766",
|
|
279
|
+
".gms": "#f49a22",
|
|
280
|
+
".gapl": "#64C800",
|
|
281
|
+
".gd": "#355570",
|
|
282
|
+
".gdshader": "#478CBF",
|
|
283
|
+
".gdshaderinc": "#478CBF",
|
|
284
|
+
".ged": "#003058",
|
|
285
|
+
".glsl": "#5686a5",
|
|
286
|
+
".fp": "#5686a5",
|
|
287
|
+
".frag": "#5686a5",
|
|
288
|
+
".frg": "#5686a5",
|
|
289
|
+
".fsh": "#5686a5",
|
|
290
|
+
".fshader": "#5686a5",
|
|
291
|
+
".geo": "#5686a5",
|
|
292
|
+
".geom": "#5686a5",
|
|
293
|
+
".glslf": "#5686a5",
|
|
294
|
+
".glslv": "#5686a5",
|
|
295
|
+
".gs": "#5686a5",
|
|
296
|
+
".gshader": "#5686a5",
|
|
297
|
+
".rchit": "#5686a5",
|
|
298
|
+
".rmiss": "#5686a5",
|
|
299
|
+
".shader": "#5686a5",
|
|
300
|
+
".tesc": "#5686a5",
|
|
301
|
+
".tese": "#5686a5",
|
|
302
|
+
".vert": "#5686a5",
|
|
303
|
+
".vrx": "#5686a5",
|
|
304
|
+
".vsh": "#5686a5",
|
|
305
|
+
".vshader": "#5686a5",
|
|
306
|
+
".gsc": "#FF6800",
|
|
307
|
+
".csc": "#FF6800",
|
|
308
|
+
".gsh": "#FF6800",
|
|
309
|
+
".gmi": "#ff6900",
|
|
310
|
+
".4gl": "#63408e",
|
|
311
|
+
".per": "#d8df39",
|
|
312
|
+
".kid": "#951531",
|
|
313
|
+
".gbr": "#d20b00",
|
|
314
|
+
".cmp": "#d20b00",
|
|
315
|
+
".gbl": "#d20b00",
|
|
316
|
+
".gbo": "#d20b00",
|
|
317
|
+
".gbp": "#d20b00",
|
|
318
|
+
".gbs": "#d20b00",
|
|
319
|
+
".gko": "#d20b00",
|
|
320
|
+
".gpb": "#d20b00",
|
|
321
|
+
".gpt": "#d20b00",
|
|
322
|
+
".gtl": "#d20b00",
|
|
323
|
+
".gto": "#d20b00",
|
|
324
|
+
".gtp": "#d20b00",
|
|
325
|
+
".gts": "#d20b00",
|
|
326
|
+
".sol": "#d20b00",
|
|
327
|
+
".po": "#555555",
|
|
328
|
+
".pot": "#555555",
|
|
329
|
+
".feature": "#5B2063",
|
|
330
|
+
".story": "#5B2063",
|
|
331
|
+
".gf": "#ff0000",
|
|
332
|
+
".graphql": "#e10098",
|
|
333
|
+
".gql": "#e10098",
|
|
334
|
+
".graphqls": "#e10098",
|
|
335
|
+
".dot": "#2596be",
|
|
336
|
+
".gv": "#2596be",
|
|
337
|
+
".groovy": "#4298b8",
|
|
338
|
+
".grt": "#4298b8",
|
|
339
|
+
".gtpl": "#4298b8",
|
|
340
|
+
".gvy": "#4298b8",
|
|
341
|
+
".gsp": "#4298b8",
|
|
342
|
+
".hcl": "#844FBA",
|
|
343
|
+
".nomad": "#844FBA",
|
|
344
|
+
".tf": "#844FBA",
|
|
345
|
+
".tfvars": "#844FBA",
|
|
346
|
+
".tofu": "#844FBA",
|
|
347
|
+
".hip": "#4F3A4F",
|
|
348
|
+
".hlsl": "#aace60",
|
|
349
|
+
".cginc": "#aace60",
|
|
350
|
+
".fxh": "#aace60",
|
|
351
|
+
".hlsli": "#aace60",
|
|
352
|
+
".hocon": "#9ff8ee",
|
|
353
|
+
".html": "#e34c26",
|
|
354
|
+
".hta": "#e34c26",
|
|
355
|
+
".htm": "#e34c26",
|
|
356
|
+
".xht": "#e34c26",
|
|
357
|
+
".xhtml": "#e34c26",
|
|
358
|
+
".ecr": "#2e1052",
|
|
359
|
+
".erb": "#701516",
|
|
360
|
+
".rhtml": "#701516",
|
|
361
|
+
".phtml": "#4f5d95",
|
|
362
|
+
".hurl": "#FF0288",
|
|
363
|
+
".hy": "#7790B2",
|
|
364
|
+
".ini": "#d1dbe0",
|
|
365
|
+
".cnf": "#d1dbe0",
|
|
366
|
+
".dof": "#d1dbe0",
|
|
367
|
+
".frm": "#d1dbe0",
|
|
368
|
+
".prefs": "#d1dbe0",
|
|
369
|
+
".properties": "#d1dbe0",
|
|
370
|
+
".idr": "#b30000",
|
|
371
|
+
".lidr": "#b30000",
|
|
372
|
+
".gitignore": "#000000",
|
|
373
|
+
".dockerignore": "#000000",
|
|
374
|
+
".ignore": "#000000",
|
|
375
|
+
".npmignore": "#000000",
|
|
376
|
+
".ijm": "#99AAFF",
|
|
377
|
+
".imba": "#16cec6",
|
|
378
|
+
".iss": "#264b99",
|
|
379
|
+
".isl": "#264b99",
|
|
380
|
+
".io": "#a9188d",
|
|
381
|
+
".ik": "#078193",
|
|
382
|
+
".thy": "#FEFE00",
|
|
383
|
+
".ijs": "#9EEDFF",
|
|
384
|
+
".jcl": "#d90e09",
|
|
385
|
+
".jflex": "#DBCA00",
|
|
386
|
+
".json": "#292929",
|
|
387
|
+
".geojson": "#292929",
|
|
388
|
+
".gltf": "#292929",
|
|
389
|
+
".har": "#292929",
|
|
390
|
+
".jsonl": "#292929",
|
|
391
|
+
".topojson": "#292929",
|
|
392
|
+
".webmanifest": "#292929",
|
|
393
|
+
".jsonc": "#292929",
|
|
394
|
+
".json5": "#267CB9",
|
|
395
|
+
".jsonld": "#0c479c",
|
|
396
|
+
".jq": "#40d47e",
|
|
397
|
+
".jac": "#FC792D",
|
|
398
|
+
".jai": "#ab8b4b",
|
|
399
|
+
".janet": "#0886a5",
|
|
400
|
+
".jav": "#b07219",
|
|
401
|
+
".java": "#b07219",
|
|
402
|
+
".jsh": "#b07219",
|
|
403
|
+
".jte": "#2A6277",
|
|
404
|
+
".js": "#f1e05a",
|
|
405
|
+
"._js": "#f1e05a",
|
|
406
|
+
".bones": "#f1e05a",
|
|
407
|
+
".cjs": "#f1e05a",
|
|
408
|
+
".es6": "#f1e05a",
|
|
409
|
+
".jake": "#f1e05a",
|
|
410
|
+
".jsm": "#f1e05a",
|
|
411
|
+
".jsx": "#f1e05a",
|
|
412
|
+
".mjs": "#f1e05a",
|
|
413
|
+
".njs": "#f1e05a",
|
|
414
|
+
".pac": "#f1e05a",
|
|
415
|
+
".sjs": "#f1e05a",
|
|
416
|
+
".ssjs": "#f1e05a",
|
|
417
|
+
".xsjs": "#f1e05a",
|
|
418
|
+
".jinja": "#a52a22",
|
|
419
|
+
".j2": "#a52a22",
|
|
420
|
+
".jinja2": "#a52a22",
|
|
421
|
+
".jison": "#56b3cb",
|
|
422
|
+
".jisonlex": "#56b3cb",
|
|
423
|
+
".jsonnet": "#0064bd",
|
|
424
|
+
".libsonnet": "#0064bd",
|
|
425
|
+
".jl": "#a270ba",
|
|
426
|
+
".ipynb": "#DA5B0B",
|
|
427
|
+
".k": "#7ABABF",
|
|
428
|
+
".kdl": "#ffb3b3",
|
|
429
|
+
".ksy": "#773b37",
|
|
430
|
+
".kak": "#6f8042",
|
|
431
|
+
".ks": "#41adf0",
|
|
432
|
+
".kicad_pcb": "#2f4aab",
|
|
433
|
+
".kicad_mod": "#2f4aab",
|
|
434
|
+
".kicad_wks": "#2f4aab",
|
|
435
|
+
".kicad_sch": "#2f4aab",
|
|
436
|
+
".kicad_sym": "#2f4aab",
|
|
437
|
+
".kt": "#A97BFF",
|
|
438
|
+
".ktm": "#A97BFF",
|
|
439
|
+
".kts": "#A97BFF",
|
|
440
|
+
".ll": "#185619",
|
|
441
|
+
".lol": "#cc9900",
|
|
442
|
+
".lsl": "#3d9970",
|
|
443
|
+
".lslp": "#3d9970",
|
|
444
|
+
".lvproj": "#fede06",
|
|
445
|
+
".lvclass": "#fede06",
|
|
446
|
+
".lvlib": "#fede06",
|
|
447
|
+
".langium": "#2c8c87",
|
|
448
|
+
".lark": "#2980B9",
|
|
449
|
+
".lasso": "#999999",
|
|
450
|
+
".las": "#999999",
|
|
451
|
+
".latte": "#f2a542",
|
|
452
|
+
".lean": "#555555",
|
|
453
|
+
".less": "#1d365d",
|
|
454
|
+
".lex": "#DBCA00",
|
|
455
|
+
".ligo": "#0e74ff",
|
|
456
|
+
".ly": "#9ccc7c",
|
|
457
|
+
".ily": "#9ccc7c",
|
|
458
|
+
".liquid": "#67b8de",
|
|
459
|
+
".litcoffee": "#244776",
|
|
460
|
+
".lhs": "#5e5086",
|
|
461
|
+
".ls": "#499886",
|
|
462
|
+
"._ls": "#499886",
|
|
463
|
+
".lgt": "#295b9a",
|
|
464
|
+
".logtalk": "#295b9a",
|
|
465
|
+
".lkml": "#652B81",
|
|
466
|
+
".lookml": "#652B81",
|
|
467
|
+
".lua": "#000080",
|
|
468
|
+
".nse": "#000080",
|
|
469
|
+
".p8": "#000080",
|
|
470
|
+
".rockspec": "#000080",
|
|
471
|
+
".wlua": "#000080",
|
|
472
|
+
".luau": "#00A2FF",
|
|
473
|
+
".m3u": "#179C7D",
|
|
474
|
+
".m3u8": "#179C7D",
|
|
475
|
+
".m": "#e16737",
|
|
476
|
+
".matlab": "#e16737",
|
|
477
|
+
".ms": "#00a6a6",
|
|
478
|
+
".mcr": "#00a6a6",
|
|
479
|
+
".mdx": "#fcb32c",
|
|
480
|
+
".mlir": "#5EC8DB",
|
|
481
|
+
".mq4": "#62A8D6",
|
|
482
|
+
".mqh": "#62A8D6",
|
|
483
|
+
".mq5": "#4A76B8",
|
|
484
|
+
".mtml": "#b7e1f4",
|
|
485
|
+
".mak": "#427819",
|
|
486
|
+
".make": "#427819",
|
|
487
|
+
".makefile": "#427819",
|
|
488
|
+
".mk": "#427819",
|
|
489
|
+
".mkfile": "#427819",
|
|
490
|
+
".mako": "#7e858d",
|
|
491
|
+
".mao": "#7e858d",
|
|
492
|
+
".md": "#083fa1",
|
|
493
|
+
".livemd": "#083fa1",
|
|
494
|
+
".markdown": "#083fa1",
|
|
495
|
+
".mdown": "#083fa1",
|
|
496
|
+
".mdwn": "#083fa1",
|
|
497
|
+
".mkd": "#083fa1",
|
|
498
|
+
".mkdn": "#083fa1",
|
|
499
|
+
".mkdown": "#083fa1",
|
|
500
|
+
".ronn": "#083fa1",
|
|
501
|
+
".workbook": "#083fa1",
|
|
502
|
+
".marko": "#42bff2",
|
|
503
|
+
".mask": "#f97732",
|
|
504
|
+
".maxpat": "#c4a79c",
|
|
505
|
+
".maxhelp": "#c4a79c",
|
|
506
|
+
".maxproj": "#c4a79c",
|
|
507
|
+
".mxt": "#c4a79c",
|
|
508
|
+
".metta": "#6a5acd",
|
|
509
|
+
".mmd": "#ff3670",
|
|
510
|
+
".mermaid": "#ff3670",
|
|
511
|
+
".metal": "#8f14e9",
|
|
512
|
+
".mzn": "#06a9e6",
|
|
513
|
+
".mint": "#02b046",
|
|
514
|
+
".mirah": "#c7a938",
|
|
515
|
+
".mo": "#fbb03b",
|
|
516
|
+
".i3": "#223388",
|
|
517
|
+
".ig": "#223388",
|
|
518
|
+
".m3": "#223388",
|
|
519
|
+
".mg": "#223388",
|
|
520
|
+
".mojo": "#ff4c1f",
|
|
521
|
+
".mbt": "#b92381",
|
|
522
|
+
".moon": "#ff4585",
|
|
523
|
+
".mustache": "#724b3b",
|
|
524
|
+
".nasl": "#555555",
|
|
525
|
+
".neon": "#555555",
|
|
526
|
+
".nss": "#111522",
|
|
527
|
+
".ne": "#990000",
|
|
528
|
+
".nearley": "#990000",
|
|
529
|
+
".axs": "#0aa0ff",
|
|
530
|
+
".axi": "#0aa0ff",
|
|
531
|
+
".nlogo": "#ff6375",
|
|
532
|
+
".nf": "#3ac486",
|
|
533
|
+
".nginx": "#009639",
|
|
534
|
+
".nginxconf": "#009639",
|
|
535
|
+
".nim": "#ffc200",
|
|
536
|
+
".nimble": "#ffc200",
|
|
537
|
+
".nims": "#ffc200",
|
|
538
|
+
".nit": "#009917",
|
|
539
|
+
".nix": "#7e7eff",
|
|
540
|
+
".nr": "#2f1f49",
|
|
541
|
+
".numpy": "#9C8AF9",
|
|
542
|
+
".numpyw": "#9C8AF9",
|
|
543
|
+
".numsc": "#9C8AF9",
|
|
544
|
+
".njk": "#3d8137",
|
|
545
|
+
".nu": "#4E9906",
|
|
546
|
+
".scad": "#e5cd45",
|
|
547
|
+
".plist": "#555555",
|
|
548
|
+
".p4": "#7055b5",
|
|
549
|
+
".pddl": "#0d00ff",
|
|
550
|
+
".pegjs": "#234d6b",
|
|
551
|
+
".peggy": "#234d6b",
|
|
552
|
+
".php": "#4F5D95",
|
|
553
|
+
".aw": "#4F5D95",
|
|
554
|
+
".ctp": "#4F5D95",
|
|
555
|
+
".php3": "#4F5D95",
|
|
556
|
+
".php4": "#4F5D95",
|
|
557
|
+
".php5": "#4F5D95",
|
|
558
|
+
".phps": "#4F5D95",
|
|
559
|
+
".phpt": "#4F5D95",
|
|
560
|
+
".pls": "#dad8d8",
|
|
561
|
+
".bdy": "#dad8d8",
|
|
562
|
+
".fnc": "#dad8d8",
|
|
563
|
+
".pck": "#dad8d8",
|
|
564
|
+
".pkb": "#dad8d8",
|
|
565
|
+
".pks": "#dad8d8",
|
|
566
|
+
".plb": "#dad8d8",
|
|
567
|
+
".plsql": "#dad8d8",
|
|
568
|
+
".prc": "#dad8d8",
|
|
569
|
+
".spc": "#dad8d8",
|
|
570
|
+
".tpb": "#dad8d8",
|
|
571
|
+
".tps": "#dad8d8",
|
|
572
|
+
".trg": "#dad8d8",
|
|
573
|
+
".pgsql": "#336790",
|
|
574
|
+
".pov": "#6bac65",
|
|
575
|
+
".pact": "#F7A8B8",
|
|
576
|
+
".pan": "#cc0000",
|
|
577
|
+
".psc": "#6600cc",
|
|
578
|
+
".pas": "#E3F171",
|
|
579
|
+
".dfm": "#E3F171",
|
|
580
|
+
".dpr": "#E3F171",
|
|
581
|
+
".lpr": "#E3F171",
|
|
582
|
+
".pascal": "#E3F171",
|
|
583
|
+
".pp": "#E3F171",
|
|
584
|
+
".pawn": "#dbb284",
|
|
585
|
+
".pwn": "#dbb284",
|
|
586
|
+
".pde": "#cc0000",
|
|
587
|
+
".pea": "#b9a848",
|
|
588
|
+
".org": "#77aa99",
|
|
589
|
+
".oz": "#fab738",
|
|
590
|
+
".rb": "#701516",
|
|
591
|
+
".builder": "#701516",
|
|
592
|
+
".gemspec": "#701516",
|
|
593
|
+
".god": "#701516",
|
|
594
|
+
".jbuilder": "#701516",
|
|
595
|
+
".rabl": "#701516",
|
|
596
|
+
".rake": "#701516",
|
|
597
|
+
".rbw": "#701516",
|
|
598
|
+
".rbx": "#701516",
|
|
599
|
+
".ru": "#701516",
|
|
600
|
+
".rjs": "#701516",
|
|
601
|
+
".rxml": "#701516",
|
|
602
|
+
".re": "#FA5246",
|
|
603
|
+
".rei": "#FA5246",
|
|
604
|
+
".res": "#FA5246",
|
|
605
|
+
".resi": "#FA5246",
|
|
606
|
+
".rego": "#7d9199",
|
|
607
|
+
".R": "#198CE7",
|
|
608
|
+
".r": "#198CE7",
|
|
609
|
+
".rd": "#198CE7",
|
|
610
|
+
".rsx": "#198CE7",
|
|
611
|
+
".rs": "#CE422B",
|
|
612
|
+
".rlib": "#CE422B",
|
|
613
|
+
".ron": "#CE422B",
|
|
614
|
+
".sass": "#c6538c",
|
|
615
|
+
".scss": "#c6538c",
|
|
616
|
+
".sas": "#0b5394",
|
|
617
|
+
".scala": "#c22d40",
|
|
618
|
+
".sbt": "#c22d40",
|
|
619
|
+
".scm": "#1e4782",
|
|
620
|
+
".sld": "#1e4782",
|
|
621
|
+
".ss": "#1e4782",
|
|
622
|
+
".sed": "#64b970",
|
|
623
|
+
".sh": "#89e051",
|
|
624
|
+
".command": "#89e051",
|
|
625
|
+
".bash": "#89e051",
|
|
626
|
+
".bats": "#89e051",
|
|
627
|
+
".ksh": "#89e051",
|
|
628
|
+
".zsh": "#89e051",
|
|
629
|
+
".sml": "#dc566d",
|
|
630
|
+
".fun": "#dc566d",
|
|
631
|
+
".sig": "#dc566d",
|
|
632
|
+
".sql": "#e38c08",
|
|
633
|
+
".styl": "#ff6347",
|
|
634
|
+
".swift": "#FA7343",
|
|
635
|
+
".svelte": "#ff3e00",
|
|
636
|
+
".svg": "#ff9900",
|
|
637
|
+
".tcl": "#e4ccff",
|
|
638
|
+
".adp": "#e4ccff",
|
|
639
|
+
".textile": "#ffe7ac",
|
|
640
|
+
".thrift": "#cc342d",
|
|
641
|
+
".toml": "#772662",
|
|
642
|
+
".ts": "#3178c6",
|
|
643
|
+
".mts": "#3178c6",
|
|
644
|
+
".cts": "#3178c6",
|
|
645
|
+
".tsx": "#3178c6",
|
|
646
|
+
".v": "#1f4e78",
|
|
647
|
+
".vala": "#ee7d06",
|
|
648
|
+
".vapi": "#ee7d06",
|
|
649
|
+
".vb": "#945db8",
|
|
650
|
+
".vba": "#945db8",
|
|
651
|
+
".vbs": "#945db8",
|
|
652
|
+
".sv": "#b2b7f8",
|
|
653
|
+
".svh": "#b2b7f8",
|
|
654
|
+
".vh": "#b2b7f8",
|
|
655
|
+
".vhd": "#adb2cb",
|
|
656
|
+
".vhdl": "#adb2cb",
|
|
657
|
+
".vhdp": "#adb2cb",
|
|
658
|
+
".vim": "#199f4b",
|
|
659
|
+
".vue": "#2c3e50",
|
|
660
|
+
".wast": "#900000",
|
|
661
|
+
".wats": "#900000",
|
|
662
|
+
".wdl": "#42f1f4",
|
|
663
|
+
".ps1": "#012456",
|
|
664
|
+
".psc1": "#012456",
|
|
665
|
+
".psm1": "#012456",
|
|
666
|
+
".pssc": "#012456",
|
|
667
|
+
".psd1": "#012456",
|
|
668
|
+
".whiley": "#203950",
|
|
669
|
+
".wiki": "#004d00",
|
|
670
|
+
".wl": "#dd1100",
|
|
671
|
+
".wlt": "#dd1100",
|
|
672
|
+
".x10": "#4B6BEF",
|
|
673
|
+
".xtend": "#FF6B3D",
|
|
674
|
+
".xojo_code": "#7d105a",
|
|
675
|
+
".xpl": "#1874AD",
|
|
676
|
+
".xquery": "#cbf3f0",
|
|
677
|
+
".xqy": "#cbf3f0",
|
|
678
|
+
".xsl": "#EB8CEB",
|
|
679
|
+
".xslt": "#EB8CEB",
|
|
680
|
+
".xul": "#f0db4f",
|
|
681
|
+
".yacc": "#6A463F",
|
|
682
|
+
".yaml": "#cb171e",
|
|
683
|
+
".yml": "#cb171e",
|
|
684
|
+
".yang": "#555555",
|
|
685
|
+
".yap": "#b21e23",
|
|
686
|
+
".zig": "#ec915c",
|
|
687
|
+
".zil": "#dc75e5",
|
|
688
|
+
".zephir": "#118f9e",
|
|
689
|
+
".zep": "#118f9e",
|
|
690
|
+
".py": "#3572A5",
|
|
691
|
+
".go": "#00ADD8",
|
|
692
|
+
".hs": "#5e5086",
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
|
|
696
|
+
def _hex_to_rgba(hex_color: str) -> RGBAColor:
|
|
697
|
+
h = hex_color.lstrip("#")
|
|
698
|
+
r, g, b = int(h[0:2], 16), int(h[2:4], 16), int(h[4:6], 16)
|
|
699
|
+
return (r / 255.0, g / 255.0, b / 255.0, 1.0)
|
|
700
|
+
|
|
701
|
+
|
|
702
|
+
def assign_colors(extensions: list[str], colormap: str = "tab20") -> dict[str, RGBAColor]:
|
|
703
|
+
"""Map each unique extension to a stable RGBA colour from *colormap*.
|
|
704
|
+
|
|
705
|
+
The mapping is determined by an MD5 hash of the extension name so that
|
|
706
|
+
the same extension always receives the same colour regardless of which
|
|
707
|
+
other extensions are present.
|
|
708
|
+
|
|
709
|
+
When *colormap* is the default ("tab20"), known extensions are coloured
|
|
710
|
+
using the GitHub Linguist palette. When a custom colormap is supplied,
|
|
711
|
+
all extensions are coloured from that colormap so the flag is fully respected.
|
|
712
|
+
|
|
713
|
+
Args:
|
|
714
|
+
extensions: All file extensions found in the tree (may contain duplicates).
|
|
715
|
+
colormap: Matplotlib colormap name.
|
|
716
|
+
|
|
717
|
+
Returns:
|
|
718
|
+
Mapping from extension string to RGBA tuple.
|
|
719
|
+
"""
|
|
720
|
+
import hashlib
|
|
721
|
+
|
|
722
|
+
use_linguist = colormap == "tab20"
|
|
723
|
+
cmap: Any = plt.get_cmap(colormap)
|
|
724
|
+
n: int = int(cmap.N) if hasattr(cmap, "N") else 256
|
|
725
|
+
result: dict[str, RGBAColor] = {}
|
|
726
|
+
for ext in set(extensions):
|
|
727
|
+
if use_linguist and ext.lower() in _LINGUIST:
|
|
728
|
+
result[ext] = _hex_to_rgba(_LINGUIST[ext.lower()])
|
|
729
|
+
else:
|
|
730
|
+
result[ext] = tuple(cmap((int(hashlib.md5(ext.encode()).hexdigest(), 16) % n) / n))
|
|
731
|
+
return result
|