# Copyright Kevin Deldycke <kevin@deldycke.com> and contributors.
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
"""The bundled catalog of terminal spinner presets.
Ported from `cli-spinners <https://github.com/sindresorhus/cli-spinners>`_,
with frame intervals converted from milliseconds to seconds.
"""
from __future__ import annotations
from typing import NamedTuple
TYPE_CHECKING = False
if TYPE_CHECKING:
from typing import Final
ASCII_SPINNER_FRAMES: Final = ("-", "\\", "|", "/")
"""Plain ASCII animation frames, for terminals or fonts lacking Unicode glyphs."""
SPINNER_FRAMES: Final = ("โ ", "โ ", "โ น", "โ ธ", "โ ผ", "โ ด", "โ ฆ", "โ ง", "โ ", "โ ")
"""Default animation frames: the ubiquitous Braille-dots spinner.
Ten frames give a smooth rotation in any UTF-8 terminal. Fall back to
:data:`ASCII_SPINNER_FRAMES` where Braille glyphs are unavailable.
"""
[docs]
class SpinnerPreset(NamedTuple):
"""A named spinner animation: its frames and the interval they look best at.
The :data:`~click_extra.spinner_presets.SPINNERS` catalog is ported from
`cli-spinners <https://github.com/sindresorhus/cli-spinners>`_, with intervals
converted from milliseconds to seconds. Pass one to
:class:`~click_extra.spinner.Spinner` via its ``spinner`` argument.
"""
frames: tuple[str, ...]
"""The animation frames, cycled in order."""
interval: float
"""Seconds between two frames, tuned per spinner upstream."""
# Single-code-point animations are packed as ``tuple("frames")`` to stay
# one-liners; animations with multi-character frames keep an explicit tuple.
SPINNERS: Final = {
"dots": SpinnerPreset(SPINNER_FRAMES, 0.08),
"dots2": SpinnerPreset(tuple("โฃพโฃฝโฃปโขฟโกฟโฃโฃฏโฃท"), 0.08),
"dots3": SpinnerPreset(tuple("โ โ โ โ โ โ ฆโ ดโ ฒโ ณโ "), 0.08),
"dots4": SpinnerPreset(tuple("โ โ โ โ โ โ ธโ ฐโ โ ฐโ ธโ โ โ โ "), 0.08),
"dots5": SpinnerPreset(tuple("โ โ โ โ โ โ โ โ ฒโ ดโ ฆโ โ โ โ โ โ โ "), 0.08),
"dots6": SpinnerPreset(tuple("โ โ โ โ โ โ โ โ โ ฒโ ดโ คโ โ โ คโ ดโ ฒโ โ โ โ โ โ โ โ "), 0.08),
"dots7": SpinnerPreset(tuple("โ โ โ โ โ โ โ โ โ โ ฆโ คโ โ โ คโ ฆโ โ โ โ โ โ โ โ โ "), 0.08),
"dots8": SpinnerPreset(tuple("โ โ โ โ โ โ โ โ โ โ ฒโ ดโ คโ โ โ คโ โ โ คโ ฆโ โ โ โ โ โ โ โ โ โ "), 0.08),
"dots9": SpinnerPreset(tuple("โขนโขบโขผโฃธโฃโกงโกโก"), 0.08),
"dots10": SpinnerPreset(tuple("โขโขโขโกโกโกโก "), 0.08),
"dots11": SpinnerPreset(tuple("โ โ โ โกโขโ โ โ "), 0.1),
"dots12": SpinnerPreset(
(
"โขโ ",
"โกโ ",
"โ โ ",
"โขโ ",
"โกโ ",
"โ
โ ",
"โขโ ",
"โกโ ",
"โ โ ",
"โขโ ",
"โกโ ",
"โ โ ",
"โขโ ",
"โกโ ",
"โ โ ",
"โ โ ",
"โ โ ",
"โ โ ",
"โ โ ",
"โ โ ฉ",
"โ โข",
"โ โก",
"โขโ ฉ",
"โกโข",
"โ โก",
"โขโ ฉ",
"โกโข",
"โ
โก",
"โขโ จ",
"โกโข",
"โ โก",
"โขโ ",
"โกโข",
"โ โก",
"โขโ ",
"โกโ ",
"โ โ ",
"โ โ ",
"โ โ ",
"โ โ ",
"โ โ ",
"โ โ ฉ",
"โ โข",
"โ โก",
"โ โ ฉ",
"โ โข",
"โ โก",
"โ โ ฉ",
"โ โข",
"โ โก",
"โ โ จ",
"โ โข",
"โ โก",
"โ โ ",
"โ โข",
"โ โก",
),
0.08,
),
"dots13": SpinnerPreset(tuple("โฃผโฃนโขปโ ฟโกโฃโฃงโฃถ"), 0.08),
"dots14": SpinnerPreset(
("โ โ ", "โ โ ", "โ โ น", "โ โขธ", "โ โฃฐ", "โขโฃ ", "โฃโฃ", "โฃโก", "โฃโ ", "โกโ ", "โ โ ", "โ โ "), 0.08
),
"dots8Bit": SpinnerPreset(
tuple(
"โ โ โ โ โ โ
โ โ โกโกโกโกโกโก
โกโกโ โ โ โ โ โ โ โ โกโกโกโกโกโกโกโกโ โ โ โ โ โ โ โ โกโกโกโกโกโกโกโกโ โ โ โ โ โ โ โ โกโกโกโกโกโกโกโกโ โ กโ ขโ ฃโ คโ ฅโ ฆโ งโก โกกโกขโกฃโกคโกฅโกฆโกงโ จโ ฉโ ชโ ซโ ฌโ ญโ ฎโ ฏโกจโกฉโกชโกซโกฌโกญโกฎโกฏโ ฐโ ฑโ ฒโ ณโ ดโ ตโ ถโ ทโกฐโกฑโกฒโกณโกดโกตโกถโกทโ ธโ นโ บโ ปโ ผโ ฝโ พโ ฟโกธโกนโกบโกปโกผโกฝโกพโกฟโขโขโขโขโขโข
โขโขโฃโฃโฃโฃโฃโฃ
โฃโฃโขโขโขโขโขโขโขโขโฃโฃโฃโฃโฃโฃโฃโฃโขโขโขโขโขโขโขโขโฃโฃโฃโฃโฃโฃโฃโฃโขโขโขโขโขโขโขโขโฃโฃโฃโฃโฃโฃโฃโฃโข โขกโขขโขฃโขคโขฅโขฆโขงโฃ โฃกโฃขโฃฃโฃคโฃฅโฃฆโฃงโขจโขฉโขชโขซโขฌโขญโขฎโขฏโฃจโฃฉโฃชโฃซโฃฌโฃญโฃฎโฃฏโขฐโขฑโขฒโขณโขดโขตโขถโขทโฃฐโฃฑโฃฒโฃณโฃดโฃตโฃถโฃทโขธโขนโขบโขปโขผโขฝโขพโขฟโฃธโฃนโฃบโฃปโฃผโฃฝโฃพโฃฟ"
),
0.08,
),
"dotsCircle": SpinnerPreset(("โข ", "โ โ ", "โ โ ", "โ โ ฑ", " โกฑ", "โขโกฐ", "โขโก ", "โขโก"), 0.08),
"sand": SpinnerPreset(tuple("โ โ โ โกโกโกโก โฃโฃโฃโฃโฃโฃโฃคโฃฅโฃฆโฃฎโฃถโฃทโฃฟโกฟโ ฟโขโ โกโ โ ซโขโ โ โกโ โ โ กโข"), 0.08),
"line": SpinnerPreset(ASCII_SPINNER_FRAMES, 0.13),
"line2": SpinnerPreset(tuple("โ -โโโ-"), 0.1),
"rollingLine": SpinnerPreset(
("/ ", " - ", " \\ ", " |", " |", " \\ ", " - ", "/ "), 0.08
),
"pipe": SpinnerPreset(tuple("โคโโดโโโโฌโ"), 0.1),
"simpleDots": SpinnerPreset((". ", ".. ", "...", " "), 0.4),
"simpleDotsScrolling": SpinnerPreset(
(". ", ".. ", "...", " ..", " .", " "), 0.2
),
"star": SpinnerPreset(tuple("โถโธโนโบโนโท"), 0.07),
"star2": SpinnerPreset(tuple("+x*"), 0.08),
"flip": SpinnerPreset(tuple("___-``'ยด-___"), 0.07),
"hamburger": SpinnerPreset(tuple("โฑโฒโด"), 0.1),
"growVertical": SpinnerPreset(tuple("โโโโ
โโโโ
โโ"), 0.12),
"growHorizontal": SpinnerPreset(tuple("โโโโโโโโโโโโ"), 0.12),
"balloon": SpinnerPreset(tuple(" .oO@* "), 0.14),
"balloon2": SpinnerPreset(tuple(".oOยฐOo."), 0.12),
"noise": SpinnerPreset(tuple("โโโ"), 0.1),
"bounce": SpinnerPreset(tuple("โ โ โ โ "), 0.12),
"boxBounce": SpinnerPreset(tuple("โโโโ"), 0.12),
"boxBounce2": SpinnerPreset(tuple("โโโโ"), 0.1),
"triangle": SpinnerPreset(tuple("โขโฃโคโฅ"), 0.05),
"binary": SpinnerPreset(
(
"010010",
"001100",
"100101",
"111010",
"111101",
"010111",
"101011",
"111000",
"110011",
"110101",
),
0.08,
),
"arc": SpinnerPreset(tuple("โโ โโโกโ"), 0.1),
"circle": SpinnerPreset(tuple("โกโโ "), 0.12),
"squareCorners": SpinnerPreset(tuple("โฐโณโฒโฑ"), 0.18),
"circleQuarters": SpinnerPreset(tuple("โดโทโถโต"), 0.12),
"circleHalves": SpinnerPreset(tuple("โโโโ"), 0.05),
"squish": SpinnerPreset(tuple("โซโช"), 0.1),
"toggle": SpinnerPreset(tuple("โถโท"), 0.25),
"toggle2": SpinnerPreset(tuple("โซโช"), 0.08),
"toggle3": SpinnerPreset(tuple("โกโ "), 0.12),
"toggle4": SpinnerPreset(tuple("โ โกโชโซ"), 0.1),
"toggle5": SpinnerPreset(tuple("โฎโฏ"), 0.1),
"toggle6": SpinnerPreset(tuple("แแ"), 0.3),
"toggle7": SpinnerPreset(tuple("โฆพโฆฟ"), 0.08),
"toggle8": SpinnerPreset(tuple("โโ"), 0.1),
"toggle9": SpinnerPreset(tuple("โโ"), 0.1),
"toggle10": SpinnerPreset(tuple("ใใใ"), 0.1),
"toggle11": SpinnerPreset(tuple("โงโง"), 0.05),
"toggle12": SpinnerPreset(tuple("โโ"), 0.12),
"toggle13": SpinnerPreset(tuple("=*-"), 0.08),
"arrow": SpinnerPreset(tuple("โโโโโโโโ"), 0.1),
"arrow2": SpinnerPreset(("โฌ๏ธ ", "โ๏ธ ", "โก๏ธ ", "โ๏ธ ", "โฌ๏ธ ", "โ๏ธ ", "โฌ
๏ธ ", "โ๏ธ "), 0.08),
"arrow3": SpinnerPreset(
("โนโนโนโนโน", "โธโนโนโนโน", "โนโธโนโนโน", "โนโนโธโนโน", "โนโนโนโธโน", "โนโนโนโนโธ"), 0.12
),
"bouncingBar": SpinnerPreset(
(
"[ ]",
"[= ]",
"[== ]",
"[=== ]",
"[====]",
"[ ===]",
"[ ==]",
"[ =]",
"[ ]",
"[ =]",
"[ ==]",
"[ ===]",
"[====]",
"[=== ]",
"[== ]",
"[= ]",
),
0.08,
),
"bouncingBall": SpinnerPreset(
(
"( โ )",
"( โ )",
"( โ )",
"( โ )",
"( โ)",
"( โ )",
"( โ )",
"( โ )",
"( โ )",
"(โ )",
),
0.08,
),
"smiley": SpinnerPreset(("๐ ", "๐ "), 0.2),
"monkey": SpinnerPreset(("๐ ", "๐ ", "๐ ", "๐ "), 0.3),
"hearts": SpinnerPreset(("๐ ", "๐ ", "๐ ", "๐ ", "๐ "), 0.1),
"clock": SpinnerPreset(
(
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
),
0.1,
),
"earth": SpinnerPreset(("๐ ", "๐ ", "๐ "), 0.18),
"material": SpinnerPreset(
(
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
"โโโโโโโโโโโโโโโโโโโโ",
),
0.017,
),
"moon": SpinnerPreset(
("๐ ", "๐ ", "๐ ", "๐ ", "๐ ", "๐ ", "๐ ", "๐ "), 0.08
),
"runner": SpinnerPreset(("๐ถ ", "๐ "), 0.14),
"pong": SpinnerPreset(
(
"โโ โ",
"โโ โ",
"โ โ โ",
"โ โ โ",
"โ โก โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โก โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โกโ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โก โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โ โ",
"โ โก โ",
"โโ โ",
),
0.08,
),
"shark": SpinnerPreset(
(
"โ|\\____________โ",
"โ_|\\___________โ",
"โ__|\\__________โ",
"โ___|\\_________โ",
"โ____|\\________โ",
"โ_____|\\_______โ",
"โ______|\\______โ",
"โ_______|\\_____โ",
"โ________|\\____โ",
"โ_________|\\___โ",
"โ__________|\\__โ",
"โ___________|\\_โ",
"โ____________|\\โ",
"โ____________/|โ",
"โ___________/|_โ",
"โ__________/|__โ",
"โ_________/|___โ",
"โ________/|____โ",
"โ_______/|_____โ",
"โ______/|______โ",
"โ_____/|_______โ",
"โ____/|________โ",
"โ___/|_________โ",
"โ__/|__________โ",
"โ_/|___________โ",
"โ/|____________โ",
),
0.12,
),
"dqpb": SpinnerPreset(tuple("dqpb"), 0.1),
"weather": SpinnerPreset(
(
"โ๏ธ ",
"โ๏ธ ",
"โ๏ธ ",
"๐ค ",
"โ
๏ธ ",
"๐ฅ ",
"โ๏ธ ",
"๐ง ",
"๐จ ",
"๐ง ",
"๐จ ",
"๐ง ",
"๐จ ",
"โ ",
"๐จ ",
"๐ง ",
"๐จ ",
"โ๏ธ ",
"๐ฅ ",
"โ
๏ธ ",
"๐ค ",
"โ๏ธ ",
"โ๏ธ ",
),
0.1,
),
"christmas": SpinnerPreset(tuple("๐ฒ๐"), 0.4),
"grenade": SpinnerPreset(
(
"ุ ",
"โฒ ",
" ยด ",
" โพ ",
" โธ",
" โธ",
" |",
" โ",
" โ",
" เทด ",
" โ",
" ",
" ",
" ",
),
0.08,
),
"point": SpinnerPreset(("โโโ", "โโโ", "โโโ", "โโโ", "โโโ"), 0.125),
"layer": SpinnerPreset(tuple("-=โก"), 0.15),
"betaWave": SpinnerPreset(
("ฯฮฒฮฒฮฒฮฒฮฒฮฒ", "ฮฒฯฮฒฮฒฮฒฮฒฮฒ", "ฮฒฮฒฯฮฒฮฒฮฒฮฒ", "ฮฒฮฒฮฒฯฮฒฮฒฮฒ", "ฮฒฮฒฮฒฮฒฯฮฒฮฒ", "ฮฒฮฒฮฒฮฒฮฒฯฮฒ", "ฮฒฮฒฮฒฮฒฮฒฮฒฯ"),
0.08,
),
"fingerDance": SpinnerPreset(("๐ค ", "๐ค ", "๐ ", "โ ", "๐ค ", "๐ "), 0.16),
"fistBump": SpinnerPreset(
(
"๐ค\u3000\u3000\u3000\u3000๐ค ",
"๐ค\u3000\u3000\u3000\u3000๐ค ",
"๐ค\u3000\u3000\u3000\u3000๐ค ",
"\u3000๐ค\u3000\u3000๐ค\u3000 ",
"\u3000\u3000๐ค๐ค\u3000\u3000 ",
"\u3000๐คโจ๐ค\u3000\u3000 ",
"๐ค\u3000โจ\u3000๐ค\u3000 ",
),
0.08,
),
"soccerHeader": SpinnerPreset(
(
" ๐งโฝ๏ธ ๐ง ",
"๐ง โฝ๏ธ ๐ง ",
"๐ง โฝ๏ธ ๐ง ",
"๐ง โฝ๏ธ ๐ง ",
"๐ง โฝ๏ธ ๐ง ",
"๐ง โฝ๏ธ ๐ง ",
"๐ง โฝ๏ธ๐ง ",
"๐ง โฝ๏ธ ๐ง ",
"๐ง โฝ๏ธ ๐ง ",
"๐ง โฝ๏ธ ๐ง ",
"๐ง โฝ๏ธ ๐ง ",
"๐ง โฝ๏ธ ๐ง ",
),
0.08,
),
"mindblown": SpinnerPreset(
(
"๐ ",
"๐ ",
"๐ฎ ",
"๐ฎ ",
"๐ฆ ",
"๐ฆ ",
"๐ง ",
"๐ง ",
"๐คฏ ",
"๐ฅ ",
"โจ ",
"\u3000 ",
"\u3000 ",
"\u3000 ",
),
0.16,
),
"speaker": SpinnerPreset(("๐ ", "๐ ", "๐ ", "๐ "), 0.16),
"orangePulse": SpinnerPreset(("๐ธ ", "๐ถ ", "๐ ", "๐ ", "๐ถ "), 0.1),
"bluePulse": SpinnerPreset(("๐น ", "๐ท ", "๐ต ", "๐ต ", "๐ท "), 0.1),
"orangeBluePulse": SpinnerPreset(
("๐ธ ", "๐ถ ", "๐ ", "๐ ", "๐ถ ", "๐น ", "๐ท ", "๐ต ", "๐ต ", "๐ท "), 0.1
),
"timeTravel": SpinnerPreset(
(
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
"๐ ",
),
0.1,
),
"aesthetic": SpinnerPreset(
(
"โฐโฑโฑโฑโฑโฑโฑ",
"โฐโฐโฑโฑโฑโฑโฑ",
"โฐโฐโฐโฑโฑโฑโฑ",
"โฐโฐโฐโฐโฑโฑโฑ",
"โฐโฐโฐโฐโฐโฑโฑ",
"โฐโฐโฐโฐโฐโฐโฑ",
"โฐโฐโฐโฐโฐโฐโฐ",
"โฐโฑโฑโฑโฑโฑโฑ",
),
0.08,
),
"dwarfFortress": SpinnerPreset(
(
" โโโโโโยฃยฃยฃ ",
"โบโโโโโโยฃยฃยฃ ",
"โบโโโโโโยฃยฃยฃ ",
"โบโโโโโโยฃยฃยฃ ",
"โบโโโโโโยฃยฃยฃ ",
"โบโโโโโโยฃยฃยฃ ",
"โบโโโโโโยฃยฃยฃ ",
"โบโโโโโโยฃยฃยฃ ",
"โบโโโโโโยฃยฃยฃ ",
"โบ โโโโโยฃยฃยฃ ",
" โบโโโโโยฃยฃยฃ ",
" โบโโโโโยฃยฃยฃ ",
" โบโโโโโยฃยฃยฃ ",
" โบโโโโโยฃยฃยฃ ",
" โบโโโโโยฃยฃยฃ ",
" โบโโโโโยฃยฃยฃ ",
" โบโโโโโยฃยฃยฃ ",
" โบโโโโโยฃยฃยฃ ",
" โบ โโโโยฃยฃยฃ ",
" โบโโโโยฃยฃยฃ ",
" โบโโโโยฃยฃยฃ ",
" โบโโโโยฃยฃยฃ ",
" โบโโโโยฃยฃยฃ ",
" โบโโโโยฃยฃยฃ ",
" โบโโโโยฃยฃยฃ ",
" โบโโโโยฃยฃยฃ ",
" โบโโโโยฃยฃยฃ ",
" โบ โโโยฃยฃยฃ ",
" โบโโโยฃยฃยฃ ",
" โบโโโยฃยฃยฃ ",
" โบโโโยฃยฃยฃ ",
" โบโโโยฃยฃยฃ ",
" โบโโโยฃยฃยฃ ",
" โบโโโยฃยฃยฃ ",
" โบโโโยฃยฃยฃ ",
" โบโโโยฃยฃยฃ ",
" โบ โโยฃยฃยฃ ",
" โบโโยฃยฃยฃ ",
" โบโโยฃยฃยฃ ",
" โบโโยฃยฃยฃ ",
" โบโโยฃยฃยฃ ",
" โบโโยฃยฃยฃ ",
" โบโโยฃยฃยฃ ",
" โบโโยฃยฃยฃ ",
" โบโโยฃยฃยฃ ",
" โบ โยฃยฃยฃ ",
" โบโยฃยฃยฃ ",
" โบโยฃยฃยฃ ",
" โบโยฃยฃยฃ ",
" โบโยฃยฃยฃ ",
" โบโยฃยฃยฃ ",
" โบโยฃยฃยฃ ",
" โบโยฃยฃยฃ ",
" โบโยฃยฃยฃ ",
" โบ ยฃยฃยฃ ",
" โบยฃยฃยฃ ",
" โบยฃยฃยฃ ",
" โบโยฃยฃ ",
" โบโยฃยฃ ",
" โบโยฃยฃ ",
" โบโยฃยฃ ",
" โบโยฃยฃ ",
" โบโยฃยฃ ",
" โบ ยฃยฃ ",
" โบยฃยฃ ",
" โบยฃยฃ ",
" โบโยฃ ",
" โบโยฃ ",
" โบโยฃ ",
" โบโยฃ ",
" โบโยฃ ",
" โบโยฃ ",
" โบ ยฃ ",
" โบยฃ ",
" โบยฃ ",
" โบโ ",
" โบโ ",
" โบโ ",
" โบโ ",
" โบโ ",
" โบโ ",
" โบ ",
" โบ &",
" โบ โผ&",
" โบ โผ &",
" โบโผ &",
" โบโผ & ",
" โผ & ",
" โบ & ",
" โผ & ",
" โบ & ",
" โผ & ",
" โบ & ",
"โผ & ",
" & ",
" & ",
" & โ ",
" & โ ",
" & โ ",
" & ยฃ ",
" & โยฃ ",
" & โยฃ ",
" & โยฃ ",
" & ยฃยฃ ",
" & โยฃยฃ ",
" & โยฃยฃ ",
"& โยฃยฃ ",
"& ยฃยฃยฃ ",
" โยฃยฃยฃ ",
" โยฃยฃยฃ ",
" โยฃยฃยฃ ",
" โยฃยฃยฃ ",
" โโยฃยฃยฃ ",
" โโยฃยฃยฃ ",
" โโยฃยฃยฃ ",
" โโยฃยฃยฃ ",
" โโโยฃยฃยฃ ",
" โโโยฃยฃยฃ ",
" โโโยฃยฃยฃ ",
" โโโยฃยฃยฃ ",
" โโโโยฃยฃยฃ ",
" โโโโยฃยฃยฃ ",
" โโโโยฃยฃยฃ ",
" โโโโยฃยฃยฃ ",
" โโโโโยฃยฃยฃ ",
" โโโโโยฃยฃยฃ ",
" โโโโโยฃยฃยฃ ",
" โโโโโยฃยฃยฃ ",
" โโโโโโยฃยฃยฃ ",
" โโโโโโยฃยฃยฃ ",
" โโโโโโยฃยฃยฃ ",
" โโโโโโยฃยฃยฃ ",
" โโโโโโยฃยฃยฃ ",
),
0.08,
),
"fish": SpinnerPreset(
(
"~~~~~~~~~~~~~~~~~~~~",
"> ~~~~~~~~~~~~~~~~~~",
"ยบ> ~~~~~~~~~~~~~~~~~",
"(ยบ> ~~~~~~~~~~~~~~~~",
"((ยบ> ~~~~~~~~~~~~~~~",
"<((ยบ> ~~~~~~~~~~~~~~",
"><((ยบ> ~~~~~~~~~~~~~",
" ><((ยบ> ~~~~~~~~~~~~",
"~ ><((ยบ> ~~~~~~~~~~~",
"~~ <>((ยบ> ~~~~~~~~~~",
"~~~ ><((ยบ> ~~~~~~~~~",
"~~~~ <>((ยบ> ~~~~~~~~",
"~~~~~ ><((ยบ> ~~~~~~~",
"~~~~~~ <>((ยบ> ~~~~~~",
"~~~~~~~ ><((ยบ> ~~~~~",
"~~~~~~~~ <>((ยบ> ~~~~",
"~~~~~~~~~ ><((ยบ> ~~~",
"~~~~~~~~~~ <>((ยบ> ~~",
"~~~~~~~~~~~ ><((ยบ> ~",
"~~~~~~~~~~~~ <>((ยบ> ",
"~~~~~~~~~~~~~ ><((ยบ>",
"~~~~~~~~~~~~~~ <>((ยบ",
"~~~~~~~~~~~~~~~ ><((",
"~~~~~~~~~~~~~~~~ <>(",
"~~~~~~~~~~~~~~~~~ ><",
"~~~~~~~~~~~~~~~~~~ <",
"~~~~~~~~~~~~~~~~~~~~",
),
0.08,
),
}
"""Named spinner animations ported from cli-spinners, keyed by name.
Each value is a :class:`SpinnerPreset` bundling frames and a tuned interval.
Select one with :class:`~click_extra.spinner.Spinner`'s ``spinner`` argument::
from click_extra import Spinner, SPINNERS
with Spinner("Brewing tea", spinner=SPINNERS["moon"]):
...
Unlike the upstream ``\\b``-based renderers, :class:`~click_extra.spinner.Spinner` redraws the whole
line, so the multi-character animations (``bouncingBar``, ``pong``, ``shark``, โฆ)
render correctly here.
"""