1# -*- coding: utf-8 -*-
2"""
3Python wrapper for beautiful terminal spinner library.
4
5Spinners are from:
6* cli-spinners:
7    MIT License
8
9    Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
10
11    Permission is hereby granted, free of charge, to any person obtaining a copy
12    of this software and associated documentation files (the "Software"), to deal
13    in the Software without restriction, including without limitation the rights to
14    use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
15    the Software, and to permit persons to whom the Software is furnished to do so,
16    subject to the following conditions:
17
18    The above copyright notice and this permission notice shall be included
19    in all copies or substantial portions of the Software.
20
21    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
22    INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
23    PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
24    FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
25    ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
26    IN THE SOFTWARE.
27"""
28from __future__ import unicode_literals
29
30from enum import Enum
31
32Spinners = Enum('Spinners', {
33    "dots": {
34        "interval": 80,
35        "frames": [
36            "⠋",
37            "⠙",
38            "⠹",
39            "⠸",
40            "⠼",
41            "⠴",
42            "⠦",
43            "⠧",
44            "⠇",
45            "⠏"
46        ]
47    },
48    "dots2": {
49        "interval": 80,
50        "frames": [
51            "⣾",
52            "⣽",
53            "⣻",
54            "⢿",
55            "⡿",
56            "⣟",
57            "⣯",
58            "⣷"
59        ]
60    },
61    "dots3": {
62        "interval": 80,
63        "frames": [
64            "⠋",
65            "⠙",
66            "⠚",
67            "⠞",
68            "⠖",
69            "⠦",
70            "⠴",
71            "⠲",
72            "⠳",
73            "⠓"
74        ]
75    },
76    "dots4": {
77        "interval": 80,
78        "frames": [
79            "⠄",
80            "⠆",
81            "⠇",
82            "⠋",
83            "⠙",
84            "⠸",
85            "⠰",
86            "⠠",
87            "⠰",
88            "⠸",
89            "⠙",
90            "⠋",
91            "⠇",
92            "⠆"
93        ]
94    },
95    "dots5": {
96        "interval": 80,
97        "frames": [
98            "⠋",
99            "⠙",
100            "⠚",
101            "⠒",
102            "⠂",
103            "⠂",
104            "⠒",
105            "⠲",
106            "⠴",
107            "⠦",
108            "⠖",
109            "⠒",
110            "⠐",
111            "⠐",
112            "⠒",
113            "⠓",
114            "⠋"
115        ]
116    },
117    "dots6": {
118        "interval": 80,
119        "frames": [
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    "dots7": {
147        "interval": 80,
148        "frames": [
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    "dots8": {
176        "interval": 80,
177        "frames": [
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    "dots9": {
210        "interval": 80,
211        "frames": [
212            "⢹",
213            "⢺",
214            "⢼",
215            "⣸",
216            "⣇",
217            "⡧",
218            "⡗",
219            "⡏"
220        ]
221    },
222    "dots10": {
223        "interval": 80,
224        "frames": [
225            "⢄",
226            "⢂",
227            "⢁",
228            "⡁",
229            "⡈",
230            "⡐",
231            "⡠"
232        ]
233    },
234    "dots11": {
235        "interval": 100,
236        "frames": [
237            "⠁",
238            "⠂",
239            "⠄",
240            "⡀",
241            "⢀",
242            "⠠",
243            "⠐",
244            "⠈"
245        ]
246    },
247    "dots12": {
248        "interval": 80,
249        "frames": [
250            "⢀⠀",
251            "⡀⠀",
252            "⠄⠀",
253            "⢂⠀",
254            "⡂⠀",
255            "⠅⠀",
256            "⢃⠀",
257            "⡃⠀",
258            "⠍⠀",
259            "⢋⠀",
260            "⡋⠀",
261            "⠍⠁",
262            "⢋⠁",
263            "⡋⠁",
264            "⠍⠉",
265            "⠋⠉",
266            "⠋⠉",
267            "⠉⠙",
268            "⠉⠙",
269            "⠉⠩",
270            "⠈⢙",
271            "⠈⡙",
272            "⢈⠩",
273            "⡀⢙",
274            "⠄⡙",
275            "⢂⠩",
276            "⡂⢘",
277            "⠅⡘",
278            "⢃⠨",
279            "⡃⢐",
280            "⠍⡐",
281            "⢋⠠",
282            "⡋⢀",
283            "⠍⡁",
284            "⢋⠁",
285            "⡋⠁",
286            "⠍⠉",
287            "⠋⠉",
288            "⠋⠉",
289            "⠉⠙",
290            "⠉⠙",
291            "⠉⠩",
292            "⠈⢙",
293            "⠈⡙",
294            "⠈⠩",
295            "⠀⢙",
296            "⠀⡙",
297            "⠀⠩",
298            "⠀⢘",
299            "⠀⡘",
300            "⠀⠨",
301            "⠀⢐",
302            "⠀⡐",
303            "⠀⠠",
304            "⠀⢀",
305            "⠀⡀"
306        ]
307    },
308    "line": {
309        "interval": 130,
310        "frames": [
311            "-",
312            "\\",
313            "|",
314            "/"
315        ]
316    },
317    "line2": {
318        "interval": 100,
319        "frames": [
320            "⠂",
321            "-",
322            "–",
323            "—",
324            "–",
325            "-"
326        ]
327    },
328    "pipe": {
329        "interval": 100,
330        "frames": [
331            "┤",
332            "┘",
333            "┴",
334            "└",
335            "├",
336            "┌",
337            "┬",
338            "┐"
339        ]
340    },
341    "simpleDots": {
342        "interval": 400,
343        "frames": [
344            ".  ",
345            ".. ",
346            "...",
347            "   "
348        ]
349    },
350    "simpleDotsScrolling": {
351        "interval": 200,
352        "frames": [
353            ".  ",
354            ".. ",
355            "...",
356            " ..",
357            "  .",
358            "   "
359        ]
360    },
361    "star": {
362        "interval": 70,
363        "frames": [
364            "✶",
365            "✸",
366            "✹",
367            "✺",
368            "✹",
369            "✷"
370        ]
371    },
372    "star2": {
373        "interval": 80,
374        "frames": [
375            "+",
376            "x",
377            "*"
378        ]
379    },
380    "flip": {
381        "interval": 70,
382        "frames": [
383            "_",
384            "_",
385            "_",
386            "-",
387            "`",
388            "`",
389            "'",
390            "´",
391            "-",
392            "_",
393            "_",
394            "_"
395        ]
396    },
397    "hamburger": {
398        "interval": 100,
399        "frames": [
400            "☱",
401            "☲",
402            "☴"
403        ]
404    },
405    "growVertical": {
406        "interval": 120,
407        "frames": [
408            "▁",
409            "▃",
410            "▄",
411            "▅",
412            "▆",
413            "▇",
414            "▆",
415            "▅",
416            "▄",
417            "▃"
418        ]
419    },
420    "growHorizontal": {
421        "interval": 120,
422        "frames": [
423            "▏",
424            "▎",
425            "▍",
426            "▌",
427            "▋",
428            "▊",
429            "▉",
430            "▊",
431            "▋",
432            "▌",
433            "▍",
434            "▎"
435        ]
436    },
437    "balloon": {
438        "interval": 140,
439        "frames": [
440            " ",
441            ".",
442            "o",
443            "O",
444            "@",
445            "*",
446            " "
447        ]
448    },
449    "balloon2": {
450        "interval": 120,
451        "frames": [
452            ".",
453            "o",
454            "O",
455            "°",
456            "O",
457            "o",
458            "."
459        ]
460    },
461    "noise": {
462        "interval": 100,
463        "frames": [
464            "▓",
465            "▒",
466            "░"
467        ]
468    },
469    "bounce": {
470        "interval": 120,
471        "frames": [
472            "⠁",
473            "⠂",
474            "⠄",
475            "⠂"
476        ]
477    },
478    "boxBounce": {
479        "interval": 120,
480        "frames": [
481            "▖",
482            "▘",
483            "▝",
484            "▗"
485        ]
486    },
487    "boxBounce2": {
488        "interval": 100,
489        "frames": [
490            "▌",
491            "▀",
492            "▐",
493            "▄"
494        ]
495    },
496    "triangle": {
497        "interval": 50,
498        "frames": [
499            "◢",
500            "◣",
501            "◤",
502            "◥"
503        ]
504    },
505    "arc": {
506        "interval": 100,
507        "frames": [
508            "◜",
509            "◠",
510            "◝",
511            "◞",
512            "◡",
513            "◟"
514        ]
515    },
516    "circle": {
517        "interval": 120,
518        "frames": [
519            "◡",
520            "⊙",
521            "◠"
522        ]
523    },
524    "squareCorners": {
525        "interval": 180,
526        "frames": [
527            "◰",
528            "◳",
529            "◲",
530            "◱"
531        ]
532    },
533    "circleQuarters": {
534        "interval": 120,
535        "frames": [
536            "◴",
537            "◷",
538            "◶",
539            "◵"
540        ]
541    },
542    "circleHalves": {
543        "interval": 50,
544        "frames": [
545            "◐",
546            "◓",
547            "◑",
548            "◒"
549        ]
550    },
551    "squish": {
552        "interval": 100,
553        "frames": [
554            "╫",
555            "╪"
556        ]
557    },
558    "toggle": {
559        "interval": 250,
560        "frames": [
561            "⊶",
562            "⊷"
563        ]
564    },
565    "toggle2": {
566        "interval": 80,
567        "frames": [
568            "▫",
569            "▪"
570        ]
571    },
572    "toggle3": {
573        "interval": 120,
574        "frames": [
575            "□",
576            "■"
577        ]
578    },
579    "toggle4": {
580        "interval": 100,
581        "frames": [
582            "■",
583            "□",
584            "▪",
585            "▫"
586        ]
587    },
588    "toggle5": {
589        "interval": 100,
590        "frames": [
591            "▮",
592            "▯"
593        ]
594    },
595    "toggle6": {
596        "interval": 300,
597        "frames": [
598            "ဝ",
599            "၀"
600        ]
601    },
602    "toggle7": {
603        "interval": 80,
604        "frames": [
605            "⦾",
606            "⦿"
607        ]
608    },
609    "toggle8": {
610        "interval": 100,
611        "frames": [
612            "◍",
613            "◌"
614        ]
615    },
616    "toggle9": {
617        "interval": 100,
618        "frames": [
619            "◉",
620            "◎"
621        ]
622    },
623    "toggle10": {
624        "interval": 100,
625        "frames": [
626            "㊂",
627            "㊀",
628            "㊁"
629        ]
630    },
631    "toggle11": {
632        "interval": 50,
633        "frames": [
634            "⧇",
635            "⧆"
636        ]
637    },
638    "toggle12": {
639        "interval": 120,
640        "frames": [
641            "☗",
642            "☖"
643        ]
644    },
645    "toggle13": {
646        "interval": 80,
647        "frames": [
648            "=",
649            "*",
650            "-"
651        ]
652    },
653    "arrow": {
654        "interval": 100,
655        "frames": [
656            "←",
657            "↖",
658            "↑",
659            "↗",
660            "→",
661            "↘",
662            "↓",
663            "↙"
664        ]
665    },
666    "arrow2": {
667        "interval": 80,
668        "frames": [
669            "⬆️ ",
670            "↗️ ",
671            "➡️ ",
672            "↘️ ",
673            "⬇️ ",
674            "↙️ ",
675            "⬅️ ",
676            "↖️ "
677        ]
678    },
679    "arrow3": {
680        "interval": 120,
681        "frames": [
682            "▹▹▹▹▹",
683            "▸▹▹▹▹",
684            "▹▸▹▹▹",
685            "▹▹▸▹▹",
686            "▹▹▹▸▹",
687            "▹▹▹▹▸"
688        ]
689    },
690    "bouncingBar": {
691        "interval": 80,
692        "frames": [
693            "[    ]",
694            "[=   ]",
695            "[==  ]",
696            "[=== ]",
697            "[ ===]",
698            "[  ==]",
699            "[   =]",
700            "[    ]",
701            "[   =]",
702            "[  ==]",
703            "[ ===]",
704            "[====]",
705            "[=== ]",
706            "[==  ]",
707            "[=   ]"
708        ]
709    },
710    "bouncingBall": {
711        "interval": 80,
712        "frames": [
713            "( ●    )",
714            "(  ●   )",
715            "(   ●  )",
716            "(    ● )",
717            "(     ●)",
718            "(    ● )",
719            "(   ●  )",
720            "(  ●   )",
721            "( ●    )",
722            "(●     )"
723        ]
724    },
725    "smiley": {
726        "interval": 200,
727        "frames": [
728            "�� ",
729            "�� "
730        ]
731    },
732    "monkey": {
733        "interval": 300,
734        "frames": [
735            "�� ",
736            "�� ",
737            "�� ",
738            "�� "
739        ]
740    },
741    "hearts": {
742        "interval": 100,
743        "frames": [
744            "�� ",
745            "�� ",
746            "�� ",
747            "�� ",
748            "❤️ "
749        ]
750    },
751    "clock": {
752        "interval": 100,
753        "frames": [
754            "�� ",
755            "�� ",
756            "�� ",
757            "�� ",
758            "�� ",
759            "�� ",
760            "�� ",
761            "�� ",
762            "�� ",
763            "�� ",
764            "�� ",
765            "�� "
766        ]
767    },
768    "earth": {
769        "interval": 180,
770        "frames": [
771            "�� ",
772            "�� ",
773            "�� "
774        ]
775    },
776    "moon": {
777        "interval": 80,
778        "frames": [
779            "�� ",
780            "�� ",
781            "�� ",
782            "�� ",
783            "�� ",
784            "�� ",
785            "�� ",
786            "�� "
787        ]
788    },
789    "runner": {
790        "interval": 140,
791        "frames": [
792            "�� ",
793            "�� "
794        ]
795    },
796    "pong": {
797        "interval": 80,
798        "frames": [
799            "▐⠂       ▌",
800            "▐⠈       ▌",
801            "▐ ⠂      ▌",
802            "▐ ⠠      ▌",
803            "▐  ⡀     ▌",
804            "▐  ⠠     ▌",
805            "▐   ⠂    ▌",
806            "▐   ⠈    ▌",
807            "▐    ⠂   ▌",
808            "▐    ⠠   ▌",
809            "▐     ⡀  ▌",
810            "▐     ⠠  ▌",
811            "▐      ⠂ ▌",
812            "▐      ⠈ ▌",
813            "▐       ⠂▌",
814            "▐       ⠠▌",
815            "▐       ⡀▌",
816            "▐      ⠠ ▌",
817            "▐      ⠂ ▌",
818            "▐     ⠈  ▌",
819            "▐     ⠂  ▌",
820            "▐    ⠠   ▌",
821            "▐    ⡀   ▌",
822            "▐   ⠠    ▌",
823            "▐   ⠂    ▌",
824            "▐  ⠈     ▌",
825            "▐  ⠂     ▌",
826            "▐ ⠠      ▌",
827            "▐ ⡀      ▌",
828            "▐⠠       ▌"
829        ]
830    },
831    "shark": {
832        "interval": 120,
833        "frames": [
834            "▐|\\____________▌",
835            "▐_|\\___________▌",
836            "▐__|\\__________▌",
837            "▐___|\\_________▌",
838            "▐____|\\________▌",
839            "▐_____|\\_______▌",
840            "▐______|\\______▌",
841            "▐_______|\\_____▌",
842            "▐________|\\____▌",
843            "▐_________|\\___▌",
844            "▐__________|\\__▌",
845            "▐___________|\\_▌",
846            "▐____________|\\▌",
847            "▐____________/|▌",
848            "▐___________/|_▌",
849            "▐__________/|__▌",
850            "▐_________/|___▌",
851            "▐________/|____▌",
852            "▐_______/|_____▌",
853            "▐______/|______▌",
854            "▐_____/|_______▌",
855            "▐____/|________▌",
856            "▐___/|_________▌",
857            "▐__/|__________▌",
858            "▐_/|___________▌",
859            "▐/|____________▌"
860        ]
861    },
862    "dqpb": {
863        "interval": 100,
864        "frames": [
865            "d",
866            "q",
867            "p",
868            "b"
869        ]
870    },
871    "weather": {
872        "interval": 100,
873        "frames": [
874            "☀️ ",
875            "☀️ ",
876            "☀️ ",
877            "�� ",
878            "⛅️ ",
879            "�� ",
880            "☁️ ",
881            "�� ",
882            "�� ",
883            "�� ",
884            "�� ",
885            "�� ",
886            "�� ",
887            "⛈ ",
888            "�� ",
889            "�� ",
890            "�� ",
891            "☁️ ",
892            "�� ",
893            "⛅️ ",
894            "�� ",
895            "☀️ ",
896            "☀️ "
897        ]
898    },
899    "christmas": {
900        "interval": 400,
901        "frames": [
902            "��",
903            "��"
904        ]
905    },
906    "grenade": {
907        "interval": 80,
908        "frames": [
909            "،   ",
910            "′   ",
911            " ´ ",
912            " ‾ ",
913            "  ⸌",
914            "  ⸊",
915            "  |",
916            "  ⁎",
917            "  ⁕",
918            " ෴ ",
919            "  ⁓",
920            "   ",
921            "   ",
922            "   "
923        ]
924    },
925    "point": {
926        "interval": 125,
927        "frames": [
928            "∙∙∙",
929            "●∙∙",
930            "∙●∙",
931            "∙∙●",
932            "∙∙∙"
933        ]
934    },
935    "layer": {
936        "interval": 150,
937        "frames": [
938            "-",
939            "=",
940            "≡"
941        ]
942    }
943})
944