code: def spherical_uniforms(
      draw, batch_shape=None, event_dim=None, validate_args=True
  ):
      """Strategy for drawing `SphericalUniform` distributions.
  
      Args:
        draw: Hypothesis strategy sampler supplied by `@hps.composite`.
        batch_shape: An optional `TensorShape`.  The batch shape of the resulting
          `SphericalUniform` distribution.
        event_dim: Optional Python int giving the size of the
          distribution's event dimension.
        validate_args: Python `bool`; whether to enable runtime assertions.
  
      Returns:
        dists: A strategy for drawing `SphericalUniform` distributions with the
          specified `batch_shape` (or an arbitrary one if omitted).
      """
      if batch_shape is None:
          batch_shape = draw(tfp_hps.shapes(min_ndims=0, max_side=4))
      if event_dim is None:
          event_dim = draw(hps.integers(min_value=1, max_value=10))
  
      result_dist = tfd.SphericalUniform(
          dimension=event_dim,
          batch_shape=batch_shape,
          validate_args=validate_args,
      )
      return result_dist
  
imports: import collections
  import functools
  import inspect
  from absl import logging
  import hypothesis
  from hypothesis import strategies
  import numpy
  import six
  import tensorflow.compat.v2
  from tensorflow_probability.python import distributions
  from tensorflow_probability.python import util
  from tensorflow_probability.python.bijectors import ascending
  from tensorflow_probability.python.bijectors import hypothesis_testlib
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.experimental import distributions
  from tensorflow_probability.python.internal import hypothesis_testlib
  from tensorflow_probability.python.internal import tensorshape_util
label_desc: Use image node_id 24 for calling a global function with example usage: spherical_uniforms(draw, batch_shape, event_dim, validate_args) and returns: result_dist