3
���h� � @ s d Z ddlmZmZ ddlmZmZmZmZm Z m
Z
ddlZddlZ
ddlmZ ddlmZ ddlmZmZ ddlmZ ddljjZdd lmZ ee
ee e f eeeef f d
�dd�Ze e ee eeef d
�dd�Z e!d
�dd�Z"dd� Z#e#dd� �Z$dd� Z%dd� Z&dS )z!
Core eval alignment algorithms.
� )�partial�wraps)�Dict�Optional�Sequence�Tuple�Type�UnionN)�
FrameOrSeries)�PerformanceWarning)�ABCDataFrame� ABCSeries)�PandasObject)�result_type_many)�returnc C sR d }t | jtj�r&ttj| jjd�}n$t| j�}t| jd�rJt || jj
�}||fS )N)�dtype�axes)�
isinstance�value�np�ndarrayr Z
asanyarrayr �type�hasattr�_zip_axes_from_typer )�termr �typ� r �?/tmp/pip-build-5_djhm0z/pandas/pandas/core/computation/align.py�_align_core_single_unary_op s
r )r �new_axesr c s � fdd�t | j�D �}|S )Nc s i | ]\}}� | |�qS r r )�.0�i�name)r r r �
<dictcomp>) s z'_zip_axes_from_type.<locals>.<dictcomp>)� enumerateZ_AXIS_ORDERS)r r r r )r r r & |