code: def _get_size(size,
                size_max,
                size_min,
                default_max,
                default_min):
      
      if len(default_max) != len(default_min):
          raise ValueError('default_max = {} and default_min = {}'
                           .format(str(default_max), str(default_min)) +
                           ' have different lengths')
      if size is not None:
          if (size_max is not None) or (size_min is not None):
              raise ValueError('size = {} overrides size_max = {}, size_min = {}'
                               .format(size, size_max, size_min))
      else:
          if size_max is None:
              size_max = default_max
          if size_min is None:
              size_min = default_min
          size = np.array([np.random.uniform(size_min[i], size_max[i])
                           for i in range(len(default_max))])
      return size
docs: Helper method for providing a size,
          or a range to randomize from