def list_of(*generators):
    """
    Generates a list consisting solely of the specified generators.
    This is a class factory, it makes a class which is a closure around the
    specified generators.
    """

    class ListOfGenerators(ArbitraryInterface):
        """
        A closure class around the generators specified above, which
        generates a list of the generators.
        """

        @classmethod
        def arbitrary(cls):
            """
            Generate a list of the enclosed generators.
            """
            arbitrary_list = []
            for generator in generators:
                arbitrary_list += [
                    arbitrary(generator)
                    # max_length / len(generators):
                    for _ in range(arbitrary(int) % 100)
                ]
            return arbitrary_list

    ListOfGenerators.__name__ = ''.join([
        'list_of(', ', '.join(generator.__name__ for generator in generators),
        ')'
    ])
    return ListOfGenerators
def list_of ( * generators ) : class ListOfGenerators ( ArbitraryInterface ) : @ classmethod def arbitrary ( cls ) : arbitrary_list = [ ] for generator in generators : arbitrary_list += [ arbitrary ( generator ) for _ in range ( arbitrary ( int ) % 100 ) ] return arbitrary_list ListOfGenerators . __name__ = '' . join ( [ 'list_of(' , ', ' . join ( generator . __name__ for generator in generators ) , ')' ] ) return ListOfGenerators
Generates a list consisting solely of the specified generators.
    This is a class factory, it makes a class which is a closure around the
    specified generators.