code: def __init__(
      self,
      decomposed_shape: List[str],
      composed_shape: List[List[str]],
  ):
      flat_shape = []
      for x in composed_shape:
          flat_shape.extend(x)
  
      self.compose_transposition: Tuple[int, ...] = tuple(
          [decomposed_shape.index(x) for x in flat_shape]
      )
      self.decompose_transposition: Tuple[int, ...] = tuple(
          [flat_shape.index(x) for x in decomposed_shape]
      )
      self.composed_shape = composed_shape
      self.decomposed_shape = decomposed_shape
  
file_path: einops/einops/experimental/indexing.py
imports: from typing import List, Union, TypeVar, Tuple
  from einops import EinopsError
label_desc: Use image node_id 1 to create a new CompositionDecomposition object  with example: obj = CompositionDecomposition(decomposed_shape, composed_shape)