esztermarton
03/19/2021, 7:08 PMalex
03/19/2021, 8:38 PMesztermarton
03/19/2021, 8:39 PMalex
03/19/2021, 8:40 PMModeDefinition
is just a namedtuple
with some top level list
and dicts
as long as you copy those over shouldn’t have to worry about going any deeperesztermarton
03/19/2021, 8:40 PMdef _copy_mode_definition(mode: ModeDefinition):
"""
Creates a copy of the mode definition.
"""
return ModeDefinition(
name=mode.name,
resource_defs=copy(mode.resource_defs),
executor_defs=copy(mode.executor_defs),
logger_defs=copy(mode.loggers),
intermediate_storage_defs=copy(mode.intermediate_storage_defs),
description=mode.description,
)
alex
03/19/2021, 8:45 PMdef adjust_resources(
mode: ModeDefinition,
new_resources: Dict[str, ResourceDefinition],
):
resource_defs = dict(mode.resource_defs)
for key, resource in new_resources.items():
resource_defs[key] = resource
# _replace is a tuple method that copies over all other properties
return mode._replace(resource_defs=resource_defs)
esztermarton
03/19/2021, 8:47 PMalex
03/19/2021, 8:47 PMesztermarton
03/19/2021, 8:51 PM