def sets(): strategies = easy_street.strings(), easy_street.ints( ), easy_street.floats(), easy_street.bools() strategies = list( gen.chain(product(strategies, repeat=len(strategies)))) lengths = cycle(list(range(0, 21))) for _ in gen.loop(): for length in lengths: for strat in strategies: yield {i for i in islice(strat, length)}
def dicts(): strategies = easy_street.strings(), easy_street.ints( ), easy_street.floats(), easy_street.bools() strategies = list( gen.chain(product(strategies, repeat=len(strategies)))) lengths = cycle(list(range(1, 21))) for _ in gen.loop(): for length in lengths: for strat in strategies: yield { k: v for k, v in gen.chunks(islice(strat, length * 2), 2) }
def strings(): test_strings = [ '', 'exit("######## WARNING this code is executing strings blindly ########")' ] # this snippet rips out every word from doc strings test_strings += list( set( findall(r'[a-zA-Z\_]{1,}', [ v.__doc__ for v in globals().values() if hasattr(v, '__doc__') ].__repr__()))) for _ in gen.loop(): for combination in product(test_strings, repeat=4): for i in combination: yield i
def ints(): numbers = tuple(range(-33, 65)) for _ in gen.loop(): for combination in product(numbers, repeat=3): for i in combination: yield i
def bools(): booleans = (True, False) for _ in gen.loop(): for combination in product(booleans, repeat=4): for i in combination: yield i
def chars(): test_chars = ascii_letters + digits for _ in gen.loop(): for combination in product(test_chars, repeat=4): for i in combination: yield i