o
    w!g                     @  s   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r0d dlmZmZmZmZmZ d(ddZd)ddZd*ddZd+ddZd,ddZd-dd Zd-d!d"Zd.d%d&Zd'S )/    )annotations)suppress)TYPE_CHECKING)AliasResolutionErrorCyclicAliasError)logger)	AttributeClassFunctionModuleObjectmoduler   stubsreturnNonec                 C  "   t | | t| | t| | d S N_merge_stubs_docstring_merge_stubs_overloads_merge_stubs_members)r   r    r   P/mnt/skqttb/ctump_chatbot/chatbot/lib/python3.10/site-packages/_griffe/merger.py_merge_module_stubs      

r   class_r	   c                 C  r   r   r   )r   r   r   r   r   _merge_class_stubs   r   r   functionr
   c              	   C  sZ   t | | |jD ]}tt |j| j|j _W d    n1 s!w   Y  q|j| _d S r   )r   
parametersr   KeyError
annotationnamereturns)r   r   	parameterr   r   r   _merge_function_stubs   s   


r$   	attributer   c                 C  s   t | | |j| _d S r   )r   r    )r%   r   r   r   r   _merge_attribute_stubs#   s   
r&   objr   c                 C  s    | j s|j r|j | _ d S d S d S r   )	docstring)r'   r   r   r   r   r   (   s   r   Module | Classc              	   C  s\   t |j D ]$\}}|r'tt || |_W d    n1 s"w   Y  |j|= qd S r   )list	overloadsitemsr   r   
get_member)r'   r   function_namer+   r   r   r   r   -   s   

r   c              	   C  s   | j |j  |j D ]h\}}|| jv rk|jrq| |}ttt? |j	|j	ur8t
d|j|j	j|j	j n#|jrAt|| n|jrJt|| n|jrSt|| n|jr[t|| W d    n1 sew   Y  qd|_| || qd S )Nz(Cannot merge stubs for %s: kind %s != %sF)importsupdatemembersr,   is_aliasr-   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_memberr   r   r   r   5   s8   


r   mod1mod2c                 C  sT   t 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   r4   filepathsuffix
ValueErrorr   )r@   rA   r   r   r   r   r   merge_stubsZ   s   
rE   N)r   r   r   r   r   r   )r   r	   r   r	   r   r   )r   r
   r   r
   r   r   )r%   r   r   r   r   r   )r'   r   r   r   r   r   )r'   r)   r   r)   r   r   )r@   r   rA   r   r   r   )
__future__r   
contextlibr   typingr   _griffe.exceptionsr   r   _griffe.loggerr   _griffe.modelsr   r	   r
   r   r   r   r   r$   r&   r   r   r   rE   r   r   r   r   <module>   s   






%