
    i                        S SK Jr  S SKJr  S SKJr  S SKJrJr  S SK	J
r
  \(       a  S SKJrJrJrJrJrJr  SS jrSS jrSS	 jrSS
 jrSS jrSS jrSS jrSS jrSS jrSS jrg)    )annotations)suppress)TYPE_CHECKING)AliasResolutionErrorCyclicAliasError)logger)	AttributeClassFunctionModuleObject	TypeAliasc                F    [        X5        [        X5        [        X5        g N)_merge_stubs_docstring_merge_stubs_overloads_merge_stubs_members)modulestubss     Q/home/james-whalen/.local/lib/python3.13/site-packages/griffe/_internal/merger.py_merge_module_stubsr      s    6)6)'    c                \    [        X5        [        X5        [        X5        [        X5        g r   )r   r   _merge_stubs_type_parametersr   )class_r   s     r   _merge_class_stubsr      s"    6)6) /'r   c                   [        X5        UR                   HC  n[        [        5         UR                  U R                  UR
                     l        S S S 5        ME     UR                  U l        [        X5        g ! , (       d  f       Ms  = fr   )r   
parametersr   KeyError
annotationnamereturnsr   )functionr   	parameters      r   _merge_function_stubsr%      sf    8+%%	h=F=Q=QH	/:   & }}H 1  s   )A<<
B	c                    [        X5        UR                  U l        UR                  S;  a  UR                  U l        g g )N)Nz...)r   r    value)	attributer   s     r   _merge_attribute_stubsr)   %   s4    9, ++I{{-'++	 (r   c                0    [        X5        [        X5        g r   )r   r   )
type_aliasr   s     r   _merge_type_alias_stubsr,   ,   s    :- 3r   c                n    U R                   (       d$  UR                   (       a  UR                   U l         g g g r   )	docstringobjr   s     r   r   r   1   s!    ==U__ -=r   c                n    U R                   (       d$  UR                   (       a  UR                   U l         g g g r   )type_parametersr/   s     r   r   r   6   s)    5#8#8#33 $9r   c                    [        UR                  R                  5       5       HF  u  p#U(       a-  [        [        5         X0R                  U5      l        S S S 5        UR                  U	 MH     g ! , (       d  f       N = fr   )list	overloadsitemsr   r   
get_member)r0   r   function_namer5   s       r   r   r   ;   sT    $()>)>)@$A (#:C}-7 $OOM*	 %B##s   A//
A=	c                   U R                   R                  UR                   5        UR                  b  UR                  U l        UR                  R	                  5        GHY  u  p#X R                  ;   Ga+  UR
                  (       a  M)  U R                  U5      n[        [        [        5         UR                  UR                  La>  [        R                  " SUR                  5        U R                  UR                  U5        OUR                   (       a  [#        XC5        OsUR$                  (       a  ['        XC5        OVUR(                  (       a  [+        XC5        O9UR,                  (       a  [/        XC5        OUR0                  (       a  [3        XC5        S S S 5        GMA  SUl        U R                  X#5        GM\     g ! , (       d  f       GMo  = f)Nz6Source object `%s` will be overwritten by stub object.F)importsupdateexportsmembersr6   is_aliasr7   r   r   r   kindr   debugpath
set_memberr!   	is_moduler   is_classr   is_functionr%   is_attributer)   is_type_aliasr,   runtime)r0   r   member_namestub_member
obj_members        r   r   r   C   s<   KKu}}% }} mm$)MM$7$7$9 ++% ##4J.0@A
 ??+*:*:: LLP" NN;#3#3[A))'
@((&z?++)*B,,*:C--+JD- BA0 #(KNN;4C %: BAs   ,C(F==
G	c                   [         R                  " SU R                  UR                  5        U R                  R                  S:X  a  U nUnO*UR                  R                  S:X  a  UnU nO[	        S5      e[        X25        U$ )zMerge 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_stubsrR   o   sn     LL,dmmT]]K}}v%				'LMM&Mr   N)r   r   r   r   returnNone)r   r
   r   r
   rS   rT   )r#   r   r   r   rS   rT   )r(   r	   r   r	   rS   rT   )r+   r   r   r   rS   rT   )r0   r   r   r   rS   rT   )r0   Class | Function | TypeAliasr   rU   rS   rT   )r0   Module | Classr   rV   rS   rT   )rP   r   rQ   r   rS   r   )
__future__r   
contextlibr   typingr   griffe._internal.exceptionsr   r   griffe._internal.loggerr   griffe._internal.modelsr	   r
   r   r   r   r   r   r   r%   r)   r,   r   r   r   r   rR    r   r   <module>r^      sR    #    N *]]((2&4
(
4
+)5Xr   