code: def _logical_op(
      np_op: Callable[..., Any], bitwise_op: UnOp | BinOp
  ) -> UnOp | BinOp:
      @_wraps(np_op, update_doc=False, module="numpy")
      @partial(jit, inline=True)
      def op(*args):
          zero = lambda x: lax.full_like(x, shape=(), fill_value=0)
          args = (
              x
              if dtypes.issubdtype(dtypes.dtype(x), np.bool_)
              else lax.ne(x, zero(x))
              for x in args
          )
          return bitwise_op(*promote_args(np_op.__name__, *args))
  
      return op
  
imports: from __future__ import annotations
  from functools import partial
  import operator
  from textwrap import dedent
  from typing import Any, Callable, overload
  import numpy
  from jax._src import core
  from jax._src import dtypes
  from jax._src.api import jit
  from jax._src.custom_derivatives import custom_jvp
  from jax._src.lax import lax
  from jax._src.typing import Array, ArrayLike
  from jax._src.numpy.util import check_arraylike, promote_args, promote_args_inexact, promote_args_numeric, promote_dtypes_inexact, promote_dtypes_numeric, promote_shapes, _where, _wraps, check_no_float0s
label_desc: Use image node_id 10 for calling a global function with example usage: _logical_op(np_op, bitwise_op) and returns: op, bitwise_op