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()
Maybe I'm missing something but something like this should be builtin:
eg:
mixer.blend(MyModel, field=COMPOSE(mixer.RANDOM, str.upper))