use Python generator for source job