klen / mixer

Mixer -- Is a fixtures replacement. Supported Django, Flask, SqlAlchemy and custom python objects.
Other
939 stars 96 forks source link

There should be a way to compose generators with filters #138

Open ionelmc opened 3 years ago

ionelmc commented 3 years ago

Maybe I'm missing something but something like this should be builtin:


def COMPOSE(generator: ServiceValue, *callables):
    class Generator(ServiceValue):
        def gen_value(self, type_mixer, name, field):
            field, value = generator.gen_value(type_mixer, name, field)
            for func in callables:
                value = func(value)
            return field, value
    return Generator()

eg: mixer.blend(MyModel, field=COMPOSE(mixer.RANDOM, str.upper))