pyiter.shuffling
1from typing import Iterable, Iterator, Union 2from random import Random 3from .transform import Transform, T 4 5 6class ShufflingTransform(Transform[T, T]): 7 """ 8 A transform that shuffles the elements of an iterable. 9 """ 10 11 def __init__( 12 self, 13 iter: Iterable[T], 14 random: Union["Random", int, float, str, bytes, bytearray, None] = None, 15 ): 16 super().__init__(iter) 17 if isinstance(random, Random): 18 self.random = random 19 elif random is None: 20 self.random = Random() 21 else: 22 self.random = Random(random) 23 24 def __do_iter__(self) -> Iterator[T]: 25 lst = list(self.iter) 26 self.random.shuffle(lst) 27 yield from lst
7class ShufflingTransform(Transform[T, T]): 8 """ 9 A transform that shuffles the elements of an iterable. 10 """ 11 12 def __init__( 13 self, 14 iter: Iterable[T], 15 random: Union["Random", int, float, str, bytes, bytearray, None] = None, 16 ): 17 super().__init__(iter) 18 if isinstance(random, Random): 19 self.random = random 20 elif random is None: 21 self.random = Random() 22 else: 23 self.random = Random(random) 24 25 def __do_iter__(self) -> Iterator[T]: 26 lst = list(self.iter) 27 self.random.shuffle(lst) 28 yield from lst
A transform that shuffles the elements of an iterable.