B
    S\	                 @   sl   d dl Z d dlZd dlmZ d dlmZ ejejejfZdd Zd
ddZ	dd	 Z
eejee	e
 dS )    N)helpers)MANAGERc       	         sv    j } j} j}| j|d} fdd|D }|rN| fdd|D  |f |}t drr|rr|jf | |S )N)lineno
col_offsetparentc                s   i | ]}t  ||qS  )getattr).0param)noder   9lib/python3.7/site-packages/astroid/brain/brain_random.py
<dictcomp>   s    z+_clone_node_with_lineno.<locals>.<dictcomp>c                s   i | ]}t  ||qS r   )r   )r	   r
   )r   r   r   r      s    postinit)	__class__Z_other_fields_astroid_fieldsr   updatehasattrr   )	r   r   r   clsZother_fieldsr   Zinit_paramsZpostinit_paramsnew_noder   )r   r   _clone_node_with_lineno   s    
r   c                s   t | jdkrtj| jd }t|tjs0tjt|jtsBtjtj	| jd |d}|s`tjt|t
sptj|jt |jkrtjyt|j|j}W n tk
r   tjY nX tj| j| j|  d  fdd|D } | t fS )N      r   )context)r   r   r   c                s   g | ]}t |  jd qS ))r   r   )r   r   )r	   Zelt)r   r   r   
<listcomp>9   s   z'infer_random_sample.<locals>.<listcomp>)lenargsastroidZUseInferenceDefault
isinstanceZConstvalueintr   Z
safe_inferACCEPTED_ITERABLES_FOR_SAMPLEeltsrandomsample
ValueErrorListr   r   Zscoper   iter)r   r   lengthZinferred_sequencer!   Znew_eltsr   )r   r   infer_random_sample   s0    



r(   c             C   s6   | j }t|tjr|jdkS t|tjr2|jdkS dS )Nr#   F)funcr   r   Z	AttributeZattrnameNamename)r   r)   r   r   r   _looks_like_random_sample@   s    

r,   )N)r"   r   r   r   r%   SetZTupler    r   r(   r,   Zregister_transformZCallZinference_tipr   r   r   r   <module>   s   
%	