code: def _align(terms):
      """Align a set of terms"""
      try:
          # flatten the parse tree (a nested list, really)
          terms = list(com.flatten(terms))
      except TypeError:
          # can't iterate so it must just be a constant or single variable
          if isinstance(terms.value, pd.core.generic.NDFrame):
              typ = type(terms.value)
              return typ, _zip_axes_from_type(typ, terms.value.axes)
          return np.result_type(terms.type), None
  
      # if all resolved variables are numeric scalars
      if all(term.is_scalar for term in terms):
          return (
              _result_type_many(*(term.value for term in terms)).type,
              None,
          )
  
      # perform the main alignment
      typ, axes = _align_core(terms)
      return typ, axes
  
file_path: catboost/contrib/python/pandas/py2/pandas/core/computation/align.py
imports: from functools import partial, wraps
  import warnings
  import numpy
  from pandas.compat import range, zip
  from pandas.errors import PerformanceWarning
  import pandas
  from pandas import compat
  import pandas.core.common
  from pandas.core.computation.common import _result_type_many
label_desc: Use image node_id 6 for calling a global function with example usage: _align(terms) and returns: typ,  axes, _result_type_many,  None, np,  None, typ,  _zip_axes_from_type