
    gM                        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
 erd dl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y)    )annotations)suppress)TYPE_CHECKING)AliasResolutionErrorCyclicAliasError)logger)	AttributeClassFunctionModuleObjectc                L    t        | |       t        | |       t        | |       y N_merge_stubs_docstring_merge_stubs_overloads_merge_stubs_members)modulestubss     C/var/www/openai/venv/lib/python3.12/site-packages/_griffe/merger.py_merge_module_stubsr           65)65)'    c                L    t        | |       t        | |       t        | |       y r   r   )class_r   s     r   _merge_class_stubsr      r   r   c                    t        | |       |j                  D ]B  }t        t              5  |j                  | j                  |j
                     _        d d d        D |j                  | _        y # 1 sw Y   `xY wr   )r   
parametersr   KeyError
annotationnamereturns)functionr   	parameters      r   _merge_function_stubsr%      s`    8U+%%	h=F=Q=QH	/:   & }}H  s   )A00A9	c                >    t        | |       |j                  | _        y r   )r   r    )	attributer   s     r   _merge_attribute_stubsr(   #   s    9e, ++Ir   c                Z    | j                   s|j                   r|j                   | _         y y y r   )	docstring)objr   s     r   r   r   (   s!    ==U__ -=r   c                    t        |j                  j                               D ]B  \  }}|r.t        t              5  || j                  |      _        d d d        |j                  |= D y # 1 sw Y   xY wr   )list	overloadsitemsr   r   
get_member)r+   r   function_namer.   s       r   r   r   -   sX    $()>)>)@$A y(#:C}-7 $OOM*	 %B##s   A**A3	c                   |j                   j                         D ]1  \  }}|| j                   v r|j                  r#| j                  |      }t	        t
        t              5  |j                  |j                  urKt        j                  d|j                  |j                  j                  |j                  j                         nc|j                  rt        ||       nJ|j                  rt        ||       n1|j                   rt#        ||       n|j$                  rt'        ||       d d d        d|_        | j+                  ||       4 y # 1 sw Y   @xY w)Nz(Cannot merge stubs for %s: kind %s != %sF)membersr/   is_aliasr0   r   r   r   kindr   debugpathvalue	is_moduler   is_classr   is_functionr%   is_attributer(   runtime
set_member)r+   r   member_namestub_member
obj_members        r   r   r   5   s   $)MM$7$7$9 [#++% ##4J.0@A
 ??+*:*::LLB"#((.."--	  ))'
K@((&z;?++)*kB,,*:{C' BA* #(KNN;4= %: BAs   #CEE	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   r6   filepathsuffix
ValueErrorr   )mod1mod2r   r   s       r   merge_stubsrH   W   sp     LL,dmmT]]K}}v%				'LMM&Mr   N)r   r   r   r   returnNone)r   r
   r   r
   rI   rJ   )r#   r   r   r   rI   rJ   )r'   r	   r   r	   rI   rJ   )r+   r   r   r   rI   rJ   )r+   Module | Classr   rK   rI   rJ   )rF   r   rG   r   rI   r   )
__future__r   
contextlibr   typingr   _griffe.exceptionsr   r   _griffe.loggerr   _griffe.modelsr	   r
   r   r   r   r   r   r%   r(   r   r   r   rH    r   r   <module>rS      sH    #    E !II((%,
(
+5Dr   