This also seems strange to me. If the __init__ really just wants these to be in id form, why not just pass the task_ids instead of doing all these data transformations on them? As it is, the __init__ is going to take this dictionary, and essentially build a new copy of it as well, and then store it on spawned_tasks. You really just seem to need the task_ids, so why not just pass those as a list?