code: def where(condition, x=None, y=None, *, size=None, fill_value=0):
      if x is None and y is None:
          return nonzero(condition, size=size, fill_value=fill_value)
      if x is not None and y is not None:
          return ivy.where(condition, x, y)
      else:
          raise ValueError("Both x and y should be given.")
  
imports: import logging
  import ivy
  from ivy.functional.frontends.jax.func_wrapper import to_ivy_arrays_and_back
  from ivy.functional.frontends.numpy.func_wrapper import from_zero_dim_arrays_to_scalar
  from ivy.func_wrapper import with_supported_device_and_dtypes, with_unsupported_dtypes
label_desc: Use image node_id 17 for calling a global function with example usage: where(condition, x, y) and returns: nonzero, ivy