
    cJ                        d dl mZ 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 dlmZmZmZmZmZmZmZmZ eeefZd	 ZdddZddZ e                                e e
e          e           dS )    )annotationsN)helpers)InferenceContext)UseInferenceDefault)inference_tip)AstroidManager)	AttributeCallConstEvaluatedObjectListNameSetTuplec                0    t           t                    r j          j        } j        } j        }| j        |d} fd|D             }|r!|                     fd|D                         |di |}t           d          r|r |j	        di | |S )Nlineno
col_offsetparentc                2    i | ]}|t          |          S  getattr.0paramnodes     :lib/python3.11/site-packages/astroid/brain/brain_random.py
<dictcomp>z+_clone_node_with_lineno.<locals>.<dictcomp>#   s%    PPPuugdE22PPP    c                2    i | ]}|t          |          S r   r   r   s     r   r   z+_clone_node_with_lineno.<locals>.<dictcomp>%   s%    RRREE74#7#7RRRr    postinitr   )

isinstancer   original	__class___other_fields_astroid_fieldsr   updatehasattrr"   )	r   r   r   clsother_fieldsr'   init_paramspostinit_paramsnew_nodes	   `        r   _clone_node_with_linenor/      s    $(( }
.C%L*O#4?fUUKPPPPPPPO TRRRR\RRRSSSs!![!!HtZ   -_ -,,O,,,Or    contextInferenceContext | Nonec                
   t          | j                  dk    rt          t          j        | j        d         |          }t          |t                    st          t          |j        t                    st          t          j        | j        d         |          }|st          t          |t                    st          |j        t          |j
                  k    rt          	 t          j        |j
        |j                  }n# t          $ r}t          |d }~ww xY wt          | j        | j        |                                           fd|D             }                    |           t'          f          S )N      )r0   r   r   c                >    g | ]}t          |j                   S ))r   r   )r/   r   )r   eltr.   s     r   
<listcomp>z'infer_random_sample.<locals>.<listcomp>G   s:        	 HX_MMM  r    )lenargsr   r   
safe_inferr#   r   valueintACCEPTED_ITERABLES_FOR_SAMPLEeltsrandomsample
ValueErrorr   r   r   scoper"   iter)r   r0   inferred_lengthinferred_sequencer>   excnew_eltsr.   s          @r   infer_random_samplerH   ,   s   
49~~ "!!(1wGGGOou-- "!!o+S11 "!!*49Q<III "!!')FGG "!!s#4#9::: "!!+}.3_5JKK + + +!s*+ 4;4?4::<<XXXH     H hs   *D
 

D!DD!returnboolc                    | j         }t          |t                    r|j        dk    S t          |t                    r|j        dk    S dS )Nr@   F)funcr#   r	   attrnamer   name)r   rL   s     r   _looks_like_random_samplerO   O   sL    9D$	"" )}(($ %yH$$5r    )N)r0   r1   )rI   rJ   )
__future__r   r?   astroidr   astroid.contextr   astroid.exceptionsr   astroid.inference_tipr   astroid.managerr   astroid.nodes.node_classesr	   r
   r   r   r   r   r   r   r=   r/   rH   rO   register_transformr   r    r   <module>rX      sk  
 # " " " " "        , , , , , , 2 2 2 2 2 2 / / / / / / * * * * * *	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 "&sE 2             F       # #--+
,
,.G    r    