U
    MZßf¢  ã                   @  sF   d dl mZ d dlmZ d dlZd dlmZ ddœdd„Zd	d
„ Z	dS )é    )Úannotations)ÚreduceN)Ú
get_optionÚstr)Úreturnc                 C  s"   t | tjtfƒr|  tdƒ¡} | S )z3
    If we have bytes, decode them to unicode.
    zdisplay.encoding)Ú
isinstanceÚnpZbytes_ÚbytesÚdecoder   )Ús© r   úB/tmp/pip-unpacked-wheel-nbcvw55c/pandas/core/computation/common.pyÚensure_decoded
   s    r   c                  G  sä   zt j| Ž W S  tk
r,   tt j| ƒ Y S  tk
rÞ   ddlm} ddlm} t	| ƒ}g g  }}|D ]"}||ƒr€| 
|¡ qh| 
|¡ qh|rÒzt j|Ž }W n  tk
r¾   tt j| ƒ}Y nX |||g ƒ Y S ||ƒ Y S X dS )zc
    Wrapper around numpy.result_type which overcomes the NPY_MAXARGS (32)
    argument limit.
    r   )Úfind_common_type)Úis_extension_array_dtypeN)r   Zresult_typeÚ
ValueErrorr   Ú	TypeErrorZpandas.core.dtypes.castr   Zpandas.core.dtypes.commonr   ÚlistÚappend)Zarrays_and_dtypesr   r   Zarr_and_dtypesZ	ea_dtypesZnon_ea_dtypesZarr_or_dtypeZnp_dtyper   r   r   Úresult_type_many   s(    
r   )
Ú
__future__r   Ú	functoolsr   Znumpyr   Zpandas._configr   r   r   r   r   r   r   Ú<module>   s
   	