code: def _align_core_single_unary_op(
      term,
  ) -> tuple[partial | type[NDFrame], dict[str, Index] | None]:
      typ: partial | type[NDFrame]
      axes: dict[str, Index] | None = None
  
      if isinstance(term.value, np.ndarray):
          typ = partial(np.asanyarray, dtype=term.value.dtype)
      else:
          typ = type(term.value)
          if hasattr(term.value, "axes"):
              axes = _zip_axes_from_type(typ, term.value.axes)
  
      return typ, axes
  
file_path: catboost/contrib/python/pandas/py3/pandas/core/computation/align.py
imports: from __future__ import annotations
  from functools import partial, wraps
  from typing import TYPE_CHECKING, Callable, Sequence
  import warnings
  import numpy
  from pandas.errors import PerformanceWarning
  from pandas.util._exceptions import find_stack_level
  from pandas.core.dtypes.generic import ABCDataFrame, ABCSeries
  from pandas.core.base import PandasObject
  import pandas.core.common
  from pandas.core.computation.common import result_type_many
label_desc: Use image node_id 1 for calling a global function with example usage: _align_core_single_unary_op(term) and returns: typ,  axes