o
    g7
                     @   s   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
mZmZmZmZmZmZmZ eeefZdd Zdd	d
Zdd Ze eeee dS )    N)helpers)UseInferenceDefault)inference_tip)AstroidManager)	AttributeCallConstEvaluatedObjectListNameSetTuplec           	         s   t  tr j  j} j} j}| j|d} fdd|D }|r/| fdd|D  |di |}t drE|rE|j	di | |S )Nlineno
col_offsetparentc                       i | ]}|t  |qS  getattr.0paramnoder   X/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/astroid/brain/brain_random.py
<dictcomp>       z+_clone_node_with_lineno.<locals>.<dictcomp>c                    r   r   r   r   r   r   r   r       r   postinitr   )

isinstancer	   original	__class___other_fields_astroid_fieldsr   updatehasattrr   )	r   r   r   clsother_fieldsr#   init_paramspostinit_paramsnew_noder   r   r   _clone_node_with_lineno   s   
r+   c              
      s   t | jdkr	t| jd }t|tstt|jtsttj| jd |d}|s+tt|t	s2t|jt |j
kr<tz
t|j
|j}W n tyU } zt|d }~ww t| j| j|  d  fdd|D } | t fS )N      r   )contextr   c                    s   g | ]
}t |  jd qS ))r   r   )r+   r   )r   eltr*   r   r   
<listcomp>B   s    z'infer_random_sample.<locals>.<listcomp>)lenargsr   r   r   valueintr   
safe_inferACCEPTED_ITERABLES_FOR_SAMPLEeltsrandomsample
ValueErrorr
   r   r   scoper   iter)r   r.   lengthinferred_sequencer8   excnew_eltsr   r0   r   infer_random_sample'   s4   





rB   c                 C   s2   | j }t|tr|jdkS t|tr|jdkS dS )Nr:   F)funcr   r   attrnamer   name)r   rC   r   r   r   _looks_like_random_sampleJ   s   



rF   )N)r9   astroidr   astroid.exceptionsr   astroid.inference_tipr   astroid.managerr   astroid.nodes.node_classesr   r   r   r	   r
   r   r   r   r7   r+   rB   rF   register_transformr   r   r   r   <module>   s   (

#	
