code: def _apply_single_step(
      batch_object,
      slices,
      params_overrides,
      bijector_x_event_ndims=None,
  ):
      """Applies a single slicing step to `batch_object`, returning a new instance."""
      if len(slices) == 1 and slices[0] is Ellipsis:
          # The path used by Distribution.copy: batch_slice(...args..., Ellipsis)
          override_dict = {}
      else:
          override_dict = _slice_params_to_dict(
              batch_object,
              slices,
              bijector_x_event_ndims=bijector_x_event_ndims,
          )
      override_dict.update(params_overrides)
      parameters = dict(batch_object.parameters, **override_dict)
      return type(batch_object)(**parameters)
  
file_path: probability/tensorflow_probability/python/internal/slicing.py
imports: import collections
  import functools
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import batch_shape_lib
  from tensorflow_probability.python.internal import prefer_static
label_desc: Use image node_id 4 for calling a global function with example usage: _apply_single_step(batch_object, slices, params_overrides, bijector_x_event_ndims) and returns: type