code: def __init__(
      self,
      num_shapes,
      signature=None,
      base_shape=(),
      min_dims=0,
      max_dims=None,
      min_side=1,
      max_side=None,
  ):
      super().__init__()
      self.base_shape = base_shape
      self.side_strat = st.integers(min_side, max_side)
      self.num_shapes = num_shapes
      self.signature = signature
      self.min_dims = min_dims
      self.max_dims = max_dims
      self.min_side = min_side
      self.max_side = max_side
  
      self.size_one_allowed = self.min_side <= 1 <= self.max_side
  
imports: import re
  from typing import NamedTuple, Optional, Tuple, Union
  from hypothesis import assume, strategies
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.conjecture.utils import _calc_p_continue
  from hypothesis.internal.coverage import check_function
  from hypothesis.internal.validation import check_type, check_valid_interval
  from hypothesis.strategies._internal.utils import defines_strategy
  from hypothesis.utils.conventions import UniqueIdentifier, not_set
label_desc: Use image node_id 1 to create a new MutuallyBroadcastableShapesStrategy object from inherited base classes: st with example: obj = MutuallyBroadcastableShapesStrategy(num_shapes, signature, base_shape, min_dims, max_dims, min_side, max_side)