code: def _one_to_one_binop(
      numpy_fn: Callable[..., Any],
      lax_fn: BinOp,
      promote_to_inexact: bool = False,
      lax_doc: bool = False,
      promote_to_numeric: bool = False,
  ) -> BinOp:
      if promote_to_inexact:
          fn = lambda x1, x2, /: lax_fn(
              *promote_args_inexact(numpy_fn.__name__, x1, x2)
          )
      elif promote_to_numeric:
          fn = lambda x1, x2, /: lax_fn(
              *promote_args_numeric(numpy_fn.__name__, x1, x2)
          )
      else:
          fn = lambda x1, x2, /: lax_fn(
              *promote_args(numpy_fn.__name__, x1, x2)
          )
      fn.__qualname__ = f"jax.numpy.{numpy_fn.__name__}"
      fn = jit(fn, inline=True)
      if lax_doc:
          doc = dedent("\n\n".join(lax_fn.__doc__.split("\n\n")[1:])).strip()  # type: ignore[union-attr]
          return _wraps(numpy_fn, lax_description=doc, module="numpy")(
              fn
          )
      else:
          return _wraps(numpy_fn, module="numpy")(fn)
  
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 4 for calling a global function with example usage: _one_to_one_binop(numpy_fn, lax_fn, promote_to_inexact, lax_doc, promote_to_numeric) and returns: _wraps, _wraps