Swarm
Quick Start
from terminaltexteffects.effects.effect_swarm import Swarm
effect = Swarm("YourTextHere")
with effect.terminal_output() as terminal:
for frame in effect:
terminal.print(frame)
Characters are grouped into swarms and move around the terminal before settling into position.
Classes:
Name | Description |
---|---|
Swarm |
Characters are grouped into swarms and move around the terminal before settling into position. |
SwarmConfig |
Configuration for the Swarm effect. |
SwarmIterator |
Effect iterator for the Swarm effect. Does not normally need to be called directly. |
Swarm
Bases: BaseEffect[SwarmConfig]
Characters are grouped into swarms and move around the terminal before settling into position.
Attributes:
Name | Type | Description |
---|---|---|
effect_config |
SwarmConfig
|
Configuration for the effect. |
terminal_config |
TerminalConfig
|
Configuration for the terminal. |
Source code in terminaltexteffects/effects/effect_swarm.py
__init__(input_data)
Initialize the effect with the provided input data.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
input_data |
str
|
The input data to use for the effect. |
required |
SwarmConfig
dataclass
Bases: ArgsDataClass
Configuration for the Swarm effect.
Attributes:
Name | Type | Description |
---|---|---|
base_color |
tuple[Color, ...]
|
Tuple of colors for the swarms. |
flash_color |
Color
|
Color for the character flash. Characters flash when moving. |
final_gradient_stops |
tuple[Color, ...]
|
Tuple of colors for the final color gradient. If only one color is provided, the characters will be displayed in that color. |
final_gradient_steps |
tuple[int, ...] | int
|
Tuple of the number of gradient steps to use. More steps will create a smoother and longer gradient animation. Valid values are n > 0. |
final_gradient_direction |
Direction
|
Direction of the final gradient. |
swarm_size |
float
|
Percent of total characters in each swarm. Valid values are 0 < n <= 1. |
swarm_coordination |
float
|
Percent of characters in a swarm that move as a group. Valid values are 0 < n <= 1. |
swarm_area_count |
tuple[int, int]
|
Range of the number of areas where characters will swarm. Valid values are n > 0. |
Source code in terminaltexteffects/effects/effect_swarm.py
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
|
base_color: tuple[Color, ...] = ArgField(cmd_name=['--base-color'], type_parser=argvalidators.ColorArg.type_parser, nargs='+', default=(Color('31a0d4')), metavar=argvalidators.ColorArg.METAVAR, help='Space separated, unquoted, list of colors for the swarms')
class-attribute
instance-attribute
tuple[Color, ...] : Tuple of colors for the swarms
final_gradient_direction: Gradient.Direction = ArgField(cmd_name='--final-gradient-direction', type_parser=argvalidators.GradientDirection.type_parser, default=Gradient.Direction.HORIZONTAL, metavar=argvalidators.GradientDirection.METAVAR, help='Direction of the final gradient.')
class-attribute
instance-attribute
Gradient.Direction : Direction of the final gradient.
final_gradient_steps: tuple[int, ...] | int = ArgField(cmd_name=['--final-gradient-steps'], type_parser=argvalidators.PositiveInt.type_parser, nargs='+', default=12, metavar=argvalidators.PositiveInt.METAVAR, help='Space separated, unquoted, list of the number of gradient steps to use. More steps will create a smoother and longer gradient animation.')
class-attribute
instance-attribute
tuple[int, ...] | int : Int or Tuple of ints for the number of gradient steps to use. More steps will create a smoother and longer gradient animation.
final_gradient_stops: tuple[Color, ...] = ArgField(cmd_name=['--final-gradient-stops'], type_parser=argvalidators.ColorArg.type_parser, nargs='+', default=(Color('31b900'), Color('f0ff65')), metavar=argvalidators.ColorArg.METAVAR, help='Space separated, unquoted, list of colors for the character gradient (applied from bottom to top). If only one color is provided, the characters will be displayed in that color.')
class-attribute
instance-attribute
tuple[Color, ...] : Tuple of colors for the final color gradient. If only one color is provided, the characters will be displayed in that color.
flash_color: Color = ArgField(cmd_name=['--flash-color'], type_parser=argvalidators.ColorArg.type_parser, default=Color('f2ea79'), metavar=argvalidators.ColorArg.METAVAR, help='Color for the character flash. Characters flash when moving.')
class-attribute
instance-attribute
Color : Color for the character flash. Characters flash when moving.
swarm_area_count: tuple[int, int] = ArgField(cmd_name='--swarm-area-count', type_parser=argvalidators.IntRange.type_parser, metavar=argvalidators.IntRange.METAVAR, default=(2, 4), help='Range of the number of areas where characters will swarm.')
class-attribute
instance-attribute
tuple[int, int] : Range of the number of areas where characters will swarm.
swarm_coordination: float = ArgField(cmd_name='--swarm-coordination', type_parser=argvalidators.Ratio.type_parser, metavar=argvalidators.Ratio.METAVAR, default=0.8, help='Percent of characters in a swarm that move as a group.')
class-attribute
instance-attribute
float : Percent of characters in a swarm that move as a group.
swarm_size: float = ArgField(cmd_name='--swarm-size', type_parser=argvalidators.Ratio.type_parser, metavar=argvalidators.Ratio.METAVAR, default=0.1, help='Percent of total characters in each swarm.')
class-attribute
instance-attribute
float : Percent of total characters in each swarm.