def dict_of(**kwargs):
    """
    Generates a homogeneous dict of the specified generators using kwargs.
    You can generate non-homogeneous dicts using `dict`.
    This is a class factory, it makes a class which is a closure around the
    specified keys and generators.
    """

    class DictOfKeyGenerators(ArbitraryInterface):
        """
        A closure class around the keys and generators specified above, which
        generates a dict of the keys and generators.
        """

        @classmethod
        def arbitrary(cls):
            """
            Generate a dict of the enclosed keys and generators.
            """
            return {
                key: arbitrary(generator)
                for key, generator in kwargs.iteritems()
            }

    DictOfKeyGenerators.__name__ = ''.join([
        'dict_of(', ', '.join([
            key + '=' + generator.__name__
            for key, generator in kwargs.iteritems()
        ]), ')'
    ])
    return DictOfKeyGenerators
def dict_of ( ** kwargs ) : class DictOfKeyGenerators ( ArbitraryInterface ) : @ classmethod def arbitrary ( cls ) : return { key : arbitrary ( generator ) for key , generator in kwargs . iteritems ( ) } DictOfKeyGenerators . __name__ = '' . join ( [ 'dict_of(' , ', ' . join ( [ key + '=' + generator . __name__ for key , generator in kwargs . iteritems ( ) ] ) , ')' ] ) return DictOfKeyGenerators
Generates a homogeneous dict of the specified generators using kwargs.
    You can generate non-homogeneous dicts using `dict`.
    This is a class factory, it makes a class which is a closure around the
    specified keys and generators.