
    -h                        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dS )'    )annotations)suppress)TYPE_CHECKING)AliasResolutionErrorCyclicAliasError)logger)	AttributeClassFunctionModuleObjectmoduler   stubsreturnNonec                f    t          | |           t          | |           t          | |           d S N_merge_stubs_docstring_merge_stubs_overloads_merge_stubs_members)r   r   s     K/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/_griffe/merger.py_merge_module_stubsr      8    65)))65)))'''''    class_r
   c                f    t          | |           t          | |           t          | |           d S r   r   )r   r   s     r   _merge_class_stubsr      r   r   functionr   c                    t          | |           |j        D ]J}t          t                    5  |j        | j        |j                 _        d d d            n# 1 swxY w Y   K|j        | _        d S r   )r   
parametersr   KeyError
annotationnamereturns)r   r   	parameters      r   _merge_function_stubsr'      s    8U+++% R R	h 	R 	R=F=QH	/:	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R}Hs   AA	A		attributer	   c                l    t          | |           |j        | _        |j        dvr|j        | _        d S d S )N)Nz...)r   r#   value)r(   r   s     r   _merge_attribute_stubsr+   #   s?    9e,,, +I{-''+	 ('r   objr   c                B    | j         s|j         r|j         | _         d S d S d S r   )	docstring)r,   r   s     r   r   r   *   s6    = (U_ (( ( ( (r   Module | Classc                    t          |j                                                  D ]U\  }}|rFt          t                    5  ||                     |          _        d d d            n# 1 swxY w Y   |j        |= Vd S r   )list	overloadsitemsr   r"   
get_member)r,   r   function_namer2   s       r   r   r   /   s    $()>)>)@)@$A$A + + y 	D(## D D:C}--7D D D D D D D D D D D D D D DOM**	+ +s   A))A-	0A-	c                   | j                             |j                    |j        |j        | _        |j                                        D ]\  }}|| j        v r|j        r|                     |          }t          t          t                    5  |j
        |j
        ur1t          j        d|j        |j
        j        |j
        j                   n_|j        rt!          ||           nG|j        rt%          ||           n/|j        rt)          ||           n|j        rt-          ||           d d d            n# 1 swxY w Y   d|_        |                     ||           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+   runtime
set_member)r,   r   member_namestub_member
obj_members        r   r   r   7   s   Ku}%%% } m$)M$7$7$9$9 5 5 [#+%% # 44J.0@AA D D
 ?+*:::LB"#(."-	     ) D'
K@@@@( D&z;????+ D)*kBBBB, D*:{CCC'D D D D D D D D D D D D D D D* #(KNN;4444=5 5s   BD==E	E	mod1mod2c                    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   )rH   rI   r   r   s       r   merge_stubsrN   `   sy     L,dmT]KKK}v%%			'	'LMMM&&&Mr   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   )rH   r   rI   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   rN    r   r   <module>rV      sE   # " " " " "                   E E E E E E E E ! ! ! ! ! ! JIIIIIIIIIIIIII( ( ( (( ( ( (% % % %& & & &( ( ( (
+ + + +&5 &5 &5 &5R     r   