o
    h[                     @  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r2d dlmZmZmZmZmZmZ d/ddZd0ddZd1ddZd2ddZd3ddZd4d d!Zd5d#d$Zd6d&d'Zd6d(d)Zd7d,d-Zd.S )8    )annotations)suppress)TYPE_CHECKING)AliasResolutionErrorCyclicAliasError)logger)	AttributeClassFunctionModuleObject	TypeAliasmoduler   stubsreturnNonec                 C  s"   t | | t| | t| | d S N)_merge_stubs_docstring_merge_stubs_overloads_merge_stubs_members)r   r    r   X/var/www/html/openai_agents/venv/lib/python3.10/site-packages/griffe/_internal/merger.py_merge_module_stubs   s   

r   class_r	   c                 C  s,   t | | t| | t| | t| | d S r   )r   r   _merge_stubs_type_parametersr   )r   r   r   r   r   _merge_class_stubs   s   


r   functionr
   c              	   C  sd   t | | |jD ]}tt |j| j|j _W d    n1 s!w   Y  q|j| _t| | d S r   )r   
parametersr   KeyError
annotationnamereturnsr   )r   r   	parameterr   r   r   _merge_function_stubs   s   


r#   	attributer   c                 C  s,   t | | |j| _|jdvr|j| _d S d S )N)Nz...)r   r   value)r$   r   r   r   r   _merge_attribute_stubs%   s
   

r&   
type_aliasr   c                 C  s   t | | t| | d S r   )r   r   )r'   r   r   r   r   _merge_type_alias_stubs,   s   
r(   objr   c                 C      | j s|j r|j | _ d S d S d S r   )	docstringr)   r   r   r   r   r   1      r   Class | Function | TypeAliasc                 C  r*   r   )type_parametersr,   r   r   r   r   6   r-   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_namer2   r   r   r   r   ;   s   

r   c              	   C  s  | j |j  |jd ur|j| _|j D ]q\}}|| jv r}|jr"q| |}ttt	H |j
|j
urAtd|j|j
j|j
j n,|jrJt|| n#|jrSt|| n|jr\t|| n|jret|| n|jrmt|| W d    n1 sww   Y  qd|_| || qd S )Nz(Cannot merge stubs for %s: kind %s != %sF)importsupdateexportsmembersr3   is_aliasr4   r   r   r   kindr   debugpathr%   	is_moduler   is_classr   is_functionr#   is_attributer&   is_type_aliasr(   runtime
set_member)r)   r   member_namestub_member
obj_memberr   r   r   r   C   s@   



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   r<   filepathsuffix
ValueErrorr   )rH   rI   r   r   r   r   r   merge_stubsn   s   
rM   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.   r   r.   r   r   )r)   r0   r   r0   r   r   )rH   r   rI   r   r   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   rM   r   r   r   r   <module>   s"    



	




+