code: def __init__(
      self,
      num_shapes,
      signature=None,
      base_shape=(),
      min_dims=0,
      max_dims=None,
      min_side=1,
      max_side=None,
  ):
      assert 0 <= min_side <= max_side
      assert 0 <= min_dims <= max_dims <= 32
      SearchStrategy.__init__(self)
      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: from __future__ import absolute_import, division, print_function
  import math
  import re
  from collections import namedtuple
  import numpy
  import hypothesis.internal.conjecture.utils
  import hypothesis.strategies._internal.core
  from hypothesis import Verbosity, assume
  from hypothesis._settings import note_deprecation
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.compat import PY2, hrange, integer_types, quiet_raise, string_types
  from hypothesis.internal.coverage import check_function
  from hypothesis.internal.reflection import proxies, reserved_means_kwonly_star
  from hypothesis.internal.validation import check_type, check_valid_interval
  from hypothesis.reporting import current_verbosity
  from hypothesis.strategies._internal import SearchStrategy
  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: SearchStrategy with example: obj = MutuallyBroadcastableShapesStrategy(num_shapes, signature, base_shape, min_dims, max_dims, min_side, max_side)