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