U
    /e                     @   sd   d dl Zd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ dZeedgd	dddZdS )    N)	is_scalar)Array)Series)delayed)derived_from)
to_numericZdowncast)Zua_argsraisec                 C   s   |dkrt dt| t}t| t}t| }t|||gsBtd|dk	rX|rltdn|s`|rlt	| j
}|r| jtj	| jd |d|dS |r| jtj	| jd ||d	S |rttj	d
d| |dS dS )z
    Return type depends on input. Delayed if scalar, otherwise same as input.
    For errors, only "raise" and "coerce" are allowed.
    )r   Zcoercezinvalid error value specifiedzEarg must be a list, tuple, dask.array.Array, or dask.dataframe.SeriesNz/``meta`` is not allowed when input is a scalar.z-to_numericF)tokenmetaZenforce_metadataerrors)namer
   r   T)Zpure)r   )
ValueError
isinstancer   r   pd_is_scalarany	TypeErrorKeyErrorpdr   Z_metaZmap_partitions_nameZ
map_blocksr   )argr   r
   Z	is_seriesZis_arrayr    r   :/tmp/pip-unpacked-wheel-dbjnr7gq/dask/dataframe/numeric.pyr      s>    


r   )r   N)Zpandasr   Zpandas.api.typesr   r   Z
dask.arrayr   Zdask.dataframe.corer   Zdask.delayedr   Z
dask.utilsr   __all__r   r   r   r   r   <module>   s   