
    iKj                        d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ erd dlmZ d dlmZmZmZmZmZmZ dd	Zdd
ZddZddZddZddZddZddZddZddZddZ d dZ!y)!    annotations)suppress)TYPE_CHECKING)AliasResolutionErrorCyclicAliasError)Expr)logger)Sequence)	AttributeClassFunctionModuleObject	TypeAliasc                L    t        | |       t        | |       t        | |       y N)_merge_stubs_docstring_merge_stubs_overloads_merge_stubs_members)modulestubss     h/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/griffe/_internal/merger.py_merge_module_stubsr      s     65)65)'    c                d    t        | |       t        | |       t        | |       t        | |       y r   )r   r   _merge_stubs_type_parametersr   )class_r   s     r   _merge_class_stubsr      s*    65)65) /'r   c                   t        | |       |j                  D ]B  }t        t              5  |j                  | j                  |j
                     _        d d d        D |j                  | _        t        | |       y # 1 sw Y   lxY wr   )r   
parametersr   KeyError
annotationnamereturnsr   )functionr   	parameters      r   _merge_function_stubsr(      sj    8U+%%	h=F=Q=QH	/:   & }}H 51  s   )A<<B	c                ~    t        | |       |j                  | _        |j                  dvr|j                  | _        y y )N)Nz...)r   r#   value)	attributer   s     r   _merge_attribute_stubsr,   (   s6    9e, ++I{{-'++	 (r   c                4    t        | |       t        | |       y r   )r   r   )
type_aliasr   s     r   _merge_type_alias_stubsr/   /   s    :u- U3r   c                Z    | j                   s|j                   r|j                   | _         y y y r   )	docstringobjr   s     r   r   r   4   s!    ==U__ -=r   c                Z    | j                   s|j                   r|j                   | _         y y y r   )type_parametersr2   s     r   r   r   9   s)    5#8#8#33 $9r   c                   t        |j                  j                               D ]  \  }}|rt        t              5  | j                  |      x}j                  rt        ||       nCt        j                  d|j                  j                  j                         |j                         d d d        |j                  |=  y # 1 sw Y   xY w)Nz;Cannot merge overload annotations into (non-function) %s %r)list	overloadsitemsr   r"   
get_memberis_function_merge_overload_annotationsr
   debugkindr*   lowerpath)r3   r   function_namer8   funcs        r   r   r   >   s    $()>)>)@$A y(#NN=99DFF/i@LLU		--/			 $ OOM* %B##s   A.CC
	c                \    t        |       dk(  r| d   S | rt        j                  | d      S y )N   r   |)op)lenr	   	_to_binopr   s    r   _merge_annotationsrI   M   s0    
;11~~~kc22r   c                   || _         | j                  D ]  }|j                  t               }g }|D ]  }t	        t
              5  |j                  |j                     j                  }t        |      }t        |t              r'||vr# |j                  |       |j                  |       d d d         t        |      |_         | j                  t               }g }|D ]c  }t        |j                        }t        |j                  t              s3||vs8|j                  |j                         |j                  |       e t        |      | _        y y # 1 sw Y   0xY wr   )r8   r!   r#   setr   r"   r$   str
isinstancer	   appendaddrI   r%   )	r&   r8   r'   seenr   overloadr#   str_annotationreturn_annotationss	            r   r<   r<   U   s5   "H((	'5DK%h'!)!4!4Y^^!D!O!OJ%(_N!*d3d8R***:60 (' & $6k#BI  ) u!H !1!12N(**D1nD6P"))(*:*:;(	 "
 ..@A   ('s   A&EE"c                V   | j                   j                  |j                          |j                  |j                  | _        |j                  j	                         D ]<  \  }}|| j                  v r|j
                  r#| j                  |      }t        t        t              5  |j                  |j                  ur=t        j                  d|j                         | j                  |j                  |       n||j                   rt#        ||       nc|j$                  rt'        ||       nJ|j(                  rt+        ||       n1|j,                  rt/        ||       n|j0                  rt3        ||       d d d        $d|_        | j                  ||       ? y # 1 sw Y   KxY w)Nz6Source object `%s` will be overwritten by stub object.F)importsupdateexportsmembersr9   is_aliasr:   r   r   r   r>   r
   r=   r@   
set_memberr$   	is_moduler   is_classr   r;   r(   is_attributer,   is_type_aliasr/   runtime)r3   r   member_namestub_member
obj_members        r   r   r   n   sL   KKu}}% }} mm$)MM$7$7$9 [#++% ##4J.0@A
 ??+*:*:: LLP" NN;#3#3[A))'
K@((&z;?++)*kB,,*:{C--+JD- BA0 #(KNN;4C %: BAs   %CFF(	c                   t        j                  d| j                  |j                         | j                  j                  dk(  r| }|}n)|j                  j                  dk(  r|}| }nt	        d      t        ||       |S )a  Merge stubs into a module.

    Parameters:
        mod1: A regular module or stubs module.
        mod2: A regular module or stubs module.

    Raises:
        ValueError: When both modules are regular modules (no stubs is passed).

    Returns:
        The regular module.
    zTrying to merge %s and %sz.pyiz1cannot merge regular (non-stubs) modules together)r
   r=   filepathsuffix
ValueErrorr   )mod1mod2r   r   s       r   merge_stubsri      sp     LL,dmmT]]K}}v%				'LMM&Mr   N)r   r   r   r   returnNone)r   r   r   r   rj   rk   )r&   r   r   r   rj   rk   )r+   r   r   r   rj   rk   )r.   r   r   r   rj   rk   )r3   r   r   r   rj   rk   )r3   Class | Function | TypeAliasr   rl   rj   rk   )r3   Module | Classr   rm   rj   rk   )r   zSequence[Expr]rj   zExpr | None)r&   r   r8   zlist[Function]rj   rk   )rg   r   rh   r   rj   r   )"
__future__r   
contextlibr   typingr   griffe._internal.exceptionsr   r   griffe._internal.expressionsr	   griffe._internal.loggerr
   collections.abcr   griffe._internal.modelsr   r   r   r   r   r   r   r   r(   r,   r/   r   r   r   rI   r<   r   ri    r   r   <module>rw      sc    #    N - *(]]((2&4
(
4
+B2)5Xr   