def get_op_by_name(module, op_name): # get the op by its name relative to the module for name, m in module.named_modules(): if name == op_name: return m raise ValueError(f"Cannot find op {op_name} in module {module}") def get_op_name(module, op): # get the name of the op relative to the module for name, m in module.named_modules(): if m is op: return name raise ValueError(f"Cannot find op {op} in module {module}") def append_str_prefix(x, prefix): if isinstance(x, str): return prefix + x elif isinstance(x, tuple): return tuple([append_str_prefix(y, prefix) for y in x]) elif isinstance(x, list): return [append_str_prefix(y, prefix) for y in x] else: return x