random

shuffle_together

satella.random.shuffle_together(*args: Sequence) List[List]

args, being sequences of equal length, will be permuted in such a way that their indices will still correspond to each other.

So given:

>>> a = [1, 2, 3]
>>> b = ['a', 'b', 'c']
>>> c = shuffle_together(a, b)

Might equal

>>> c == [[3, 1, 2], ['c', 'a', 'b']]

random_binary

satella.random.random_binary(length: int) bytes

Return a random bytes string of given length.

An attempt will be made to utilize /dev/random, if exists

Parameters:

length – length of string to generate

random_word

satella.random.random_word(length: int, choice: ~typing.Sequence[~satella.coding.typing.T] = 'abcdefghijklmnopqrstuvwxyz', join_fun: ~typing.Callable[[~typing.List[~satella.coding.typing.T]], ~satella.coding.typing.T] = <function <lambda>>) Sequence[T]

Build and return a random word of provided length.

The word will be built by calling join_fun with length of arguments picked at random from choice.

Best used with strings. Provide a word length, a string to choose from as choice (defaults to string.ascii_lowercase). Will return by default a string (which coincidentally happens to be a sequence of strings, albeit one-character ones).

Parameters:
  • length – length of the word

  • choice – a range of characters to use. By default is string.ascii_lowercase

  • join_fun – an argument to be called with a list of randomly picked values. Defaults to ‘’.join(args), so your T must be a string. If you’re passing a different type, remember to alter this function because the default one expects strings!

Returns:

a random word