source: framspy/evolalg_steps/utils/name_propagation.py @ 1185

Last change on this file since 1185 was 1185, checked in by Maciej Komosinski, 18 months ago

Renamed a module; new name is "evolalg_steps"

File size: 447 bytes
Line 
1from typing import Iterable, Union, List
2
3from evolalg_steps.base.step import Step
4import copy
5
6def propagate_names(step: Step, prefix=""):
7
8    if isinstance(step, Iterable):
9        for s in step:
10            if hasattr(step, "name"):
11                propagate_names(s, prefix=prefix + "." + step.name)
12            else:
13                propagate_names(s, prefix=prefix)
14    if hasattr(step, "name"):
15        step.name = f"{prefix}.{step.name}"
Note: See TracBrowser for help on using the repository browser.