
    Ji1d                    Z   d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ erd d	lmZmZ d d
lmZmZmZmZmZ  eej8                  ej:                  f      Z eej>                  ej:                  f      Z  eej8                  ej>                  f      Z! eejD                  ejF                  f      Z$ G d d      Z% G d d      Z& G d de&      Z' G d de&      Z( G d de&      Z) G d de&      Z* G d de&      Z+ G d de&      Z, G d de&      Z- G d de&      Z. G d d e&      Z/ G d! d"e&      Z0 G d# d$e&      Z1 G d% d&e&      Z2	 	 	 	 	 	 	 	 d0d'Z3d1d(Z4d2d)Z5	 	 	 	 	 	 	 	 d3d*Z6dd+	 	 	 	 	 	 	 d4d,Z7	 	 	 	 	 	 	 	 d5d-Z8d6d.Z9 e:       Z;	 	 	 	 	 	 d7d/Z<y)8    )annotationsN)Path)TYPE_CHECKINGAny)BreakageKindExplanationStyleParameterKind)AliasResolutionError)_WORKTREE_PREFIX)logger)IterableIterator)Alias	AttributeClassFunctionObjectc                      e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(y')(_ANSIz[30mz[31mz[32mz[33mz[34mz[35mz[36mz[37mz[39mz[90mz[91mz[92mz[93mz[94mz[95mz[96mz[97mz[40mz[41mz[42mz[43mz[44mz[45mz[46mz[47mz[49mz[100mz[101mz[102mz[103mz[104mz[105mz[106mz[107mz[1mz[2mz[22mz[0mN))__name__
__module____qualname__FG_BLACKFG_REDFG_GREEN	FG_YELLOWFG_BLUE
FG_MAGENTAFG_CYANFG_WHITEFG_RESETFG_LIGHTBLACK_EXFG_LIGHTRED_EXFG_LIGHTGREEN_EXFG_LIGHTYELLOW_EXFG_LIGHTBLUE_EXFG_LIGHTMAGENTA_EXFG_LIGHTCYAN_EXFG_LIGHTWHITE_EXBG_BLACKBG_REDBG_GREEN	BG_YELLOWBG_BLUE
BG_MAGENTABG_CYANBG_WHITEBG_RESETBG_LIGHTBLACK_EXBG_LIGHTRED_EXBG_LIGHTGREEN_EXBG_LIGHTYELLOW_EXBG_LIGHTBLUE_EXBG_LIGHTMAGENTA_EXBG_LIGHTCYAN_EXBG_LIGHTWHITE_EXBRIGHTDIMNORMAL	RESET_ALL     g/var/www/html/BankruptcyAI-uat/bankruptcy-ai/venv/lib/python3.12/site-packages/griffe/_internal/diff.pyr   r       s    HFHIGJGHH!N!" O# O!HFHIGJGHH" N"#!O$!O"F
CFIr@   r   c                  \   e Zd ZU dZded<   	 dd dZd!dZd!dZddd"d	Ze	j                  fd#d
Zed$d       Zed$d       Zed$d       Zed$d       Zed!d       Zed!d       Zed!d       Zed%d       Zddd&dZddd&dZddd&dZddd&dZddd&dZd!dZd!dZd!dZd!dZy)'Breakagez;Breakages can explain what broke from a version to another.r   kindc                B    || _         	 || _        	 || _        	 || _        y)zInitialize the breakage.

        Parameters:
            obj: The object related to the breakage.
            old_value: The old value.
            new_value: The new, incompatible value.
            details: Some details about the breakage.
        N)obj	old_value	new_valuedetails)selfrF   rG   rH   rI   s        rA   __init__zBreakage.__init__O   s,     1""*.r@   c                .    | j                   j                  S N)rD   valuerJ   s    rA   __str__zBreakage.__str__a   s    yyr@   c                .    | j                   j                  S rM   )rD   namerO   s    rA   __repr__zBreakage.__repr__d   s    yy~~r@   F)fullc               t    | j                   | j                  j                  | j                  | j                  dS )zReturn this object's data as a dictionary.

        Parameters:
            full: Whether to return full info, or just base info.
            **kwargs: Additional serialization options.

        Returns:
            A dictionary.
        )rD   object_pathrG   rH   )rD   rF   pathrG   rH   )rJ   rT   kwargss      rA   as_dictzBreakage.as_dictg   s.     II88==	
 	
r@   c                >     t        | d|j                                S )zExplain the breakage by showing old and new value.

        Parameters:
            style: The explanation style to use.

        Returns:
            An explanation.
        	_explain_)getattrrN   )rJ   styles     rA   explainzBreakage.explainx   s!     8wty6799r@   c                    | j                   j                  r | j                   j                  j                  S | j                   j                  S rM   )rF   is_aliasparentfilepathrO   s    rA   	_filepathzBreakage._filepath   s3    8888??+++xx   r@   c                    | j                   j                  r | j                   j                  j                  S | j                   j                  S rM   )rF   r`   ra   relative_filepathrO   s    rA   _relative_filepathzBreakage._relative_filepath   s3    8888??444xx)))r@   c                    | j                   j                  r | j                   j                  j                  S | j                   j                  S rM   )rF   r`   ra   relative_package_filepathrO   s    rA   _relative_package_filepathz#Breakage._relative_package_filepath   s3    8888??<<<xx111r@   c                    | j                   j                         rN| j                   j                  }t        |      D ]*  \  }}|j	                  t
              st        ||dz   d   c S  | j                   S )N   )rf   is_absoluteparts	enumerate
startswithr   r   )rJ   rm   indexparts       rA   	_locationzBreakage._location   sp    
 ""..0++11E(/ 5t??#34uqy{!3445 &&&r@   c                    | j                   j                  r| j                   j                  S | j                   j                  S rM   )rF   r`   rW   canonical_pathrO   s    rA   _canonical_pathzBreakage._canonical_path   s-    8888== xx&&&r@   c                    | j                   j                  r*| j                   j                  j                  j                  S | j                   j                  j                  S rM   )rF   r`   ra   modulerW   rO   s    rA   _module_pathzBreakage._module_path   s=    8888??))...xx###r@   c                T    | j                   t        | j                        dz   d  xs dS )N   z<module>)ru   lenrx   rO   s    rA   _relative_pathzBreakage._relative_path   s+    ##C(9(9$:Q$>$@AOZOr@   c                   | j                   t        j                  u r| j                  | j                  k7  ry| j
                  j                  r| j
                  j                  xs dS | j
                  j                  xs dS )Nr   )	rD   r   OBJECT_REMOVEDrf   rr   rF   r`   alias_linenolinenorO   s    rA   _linenozBreakage._lineno   sb    
 993338O8OSWSaSa8a8888((-A-xx#!#r@   Tcolorsc                   |rt         j                  nd}|rt         j                  nd}| | j                   | d| j                   S )N :)r   r;   r>   rr   r   )rJ   r   brightresets       rA   _format_locationzBreakage._format_location   s>    !'R#)r$..)%$,,@@r@   c                   | j                   S rM   )r|   rJ   r   s     rA   _format_titlezBreakage._format_title   s    """r@   c                   |rt         j                  nd}|rt         j                  nd}| | j                  j                   | S Nr   )r   r   r!   rD   rN   )rJ   r   yellowr   s       rA   _format_kindzBreakage._format_kind   s8    $*"(b$))//*5'22r@   c               ,    t        | j                        S rM   )strrG   r   s     rA   _format_old_valuezBreakage._format_old_value       4>>""r@   c               ,    t        | j                        S rM   )r   rH   r   s     rA   _format_new_valuezBreakage._format_new_value   r   r@   c                    | j                          d| j                          d| j                          }| j                         }| j	                         }|r
|r| d| }n|r|}n|r|}nd}|r| d| S |S )N:  -> r   )r   r   r   r   r   rJ   explanationoldnewchanges        rA   _explain_onelinezBreakage._explain_oneline   s    ..01D4F4F4H3IDL]L]L_K`a$$&$$&3uD&FFFF!]"VH--r@   c                   | j                          d| j                          dg}| j                         }| j                         }| j	                         }|s|r|j                  | d       n|j                  |       |r|j                  d|        |r|j                  d|        | j                  r|j                  d| j                          |j                  d       dj                  |      S )Nr   r   z  Old: z  New: z  Details: r   
)r   r   r   r   r   appendrI   join)rJ   linesrD   r   r   s        rA   _explain_verbosezBreakage._explain_verbose   s    ))+,Bt/A/A/C.DAFG  "$$&$$&#LLD6$LLLL73%)LL73%)<<LL;t||n56Ryyr@   c                   d| j                    d| j                  j                   d}| j                  d      }|r|dk7  rd| d}| j	                  d      }|r|dk7  rd| d}|r
|r| d| }n|r|}n|r|}nd	}|r| d
| S |S )Nz- `z`: **Fr   unset`r   r   r   )r|   rD   rN   r   r   r   s        rA   _explain_markdownzBreakage._explain_markdown   s    D//0TYY__4EQG$$E$23'>cU!*C$$E$23'>cU!*C3uD&FFFF!]"VH--r@   c                d   d| j                    d| j                   }d| j                  d       }d| d| d| j                  j                   }| j                  d      }|r|d	k7  rd
| d
}| j                  d      }|r|d	k7  rd
| d
}|r
|r| d| }n|r|}n|r|}nd}|r| d| S |S )Nzfile=z,line=ztitle=Fr   z
::warning ,z::r   r   r   r   r   )rr   r   r   rD   rN   r   r   )rJ   locationtitler   r   r   r   s          rA   _explain_githubzBreakage._explain_github  s    4>>*&?++5+9:;"8*AeWBtyy6GH$$E$23'>cU!*C$$E$23'>cU!*C3uD&FFFF!]"VH--r@   N)r   )
rF   r   rG   r   rH   r   rI   r   returnNoner   r   )rT   boolrX   r   r   zdict[str, Any])r]   r   r   r   )r   r   )r   intr   r   r   r   )r   r   r   __doc____annotations__rK   rP   rS   rY   r   ONE_LINEr^   propertyrc   rf   ri   rr   ru   rx   r|   r   r   r   r   r   r   r   r   r   r   r?   r@   rA   rC   rC   I   s!   E
/$ ', 
" 1A0I0I 	: ! !
 * *
 2 2
 	' 	' ' '
 $ $
 P P $ $ 26 A
 /3 # .2 3
 37 # 37 #  $(r@   rC   c                       e Zd ZU dZej
                  Zded<   ed
 fd       Z	ddd fdZ
ddddZdddd	Z xZS )ParameterMovedBreakagez-Specific breakage class for moved parameters.r   rD   c                L    t         |    d| j                  j                   dS N()superr|   rG   rR   rJ   	__class__s    rA   r|   z%ParameterMovedBreakage._relative_path!  '    '()4>>+>+>*?qAAr@   Tr   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS Nr   r   r   r   r   r!   r   r|   rG   rR   rJ   r   bluer   r   s       rA   r   z$ParameterMovedBreakage._format_title%  I     &u}}B"(b'()4&1D1D0EeWANNr@   c                    yr   r?   r   s     rA   r   z(ParameterMovedBreakage._format_old_value*      r@   c                    yr   r?   r   s     rA   r   z(ParameterMovedBreakage._format_new_value-  r   r@   r   r   )r   r   r   r   r   PARAMETER_MOVEDrD   r   r   r|   r   r   r   __classcell__r   s   @rA   r   r     sN    7%55D,5B B /3 O
 37  37  r@   r   c                       e Zd ZU dZej
                  Zded<   ed
 fd       Z	ddd fdZ
ddddZdddd	Z xZS )ParameterRemovedBreakagez/Specific breakage class for removed parameters.r   rD   c                L    t         |    d| j                  j                   dS r   r   r   s    rA   r|   z'ParameterRemovedBreakage._relative_path6  r   r@   Tr   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS r   r   r   s       rA   r   z&ParameterRemovedBreakage._format_title:  r   r@   c                    yr   r?   r   s     rA   r   z*ParameterRemovedBreakage._format_old_value?  r   r@   c                    yr   r?   r   s     rA   r   z*ParameterRemovedBreakage._format_new_valueB  r   r@   r   r   )r   r   r   r   r   PARAMETER_REMOVEDrD   r   r   r|   r   r   r   r   r   s   @rA   r   r   1  sN    9%77D,7B B /3 O
 37  37  r@   r   c                       e Zd ZU dZej
                  Zded<   ed
 fd       Z	ddd fdZ
ddddZdddd	Z xZS )ParameterChangedKindBreakagez:Specific breakage class for parameters whose kind changed.r   rD   c                L    t         |    d| j                  j                   dS r   r   r   s    rA   r|   z+ParameterChangedKindBreakage._relative_pathK  r   r@   Tr   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS r   r   r   s       rA   r   z*ParameterChangedKindBreakage._format_titleO  r   r@   c               T    t        | j                  j                  j                        S rM   )r   rG   rD   rN   r   s     rA   r   z.ParameterChangedKindBreakage._format_old_valueT      4>>&&,,--r@   c               T    t        | j                  j                  j                        S rM   )r   rH   rD   rN   r   s     rA   r   z.ParameterChangedKindBreakage._format_new_valueW  r   r@   r   r   )r   r   r   r   r   PARAMETER_CHANGED_KINDrD   r   r   r|   r   r   r   r   r   s   @rA   r   r   F  sN    D%<<D,<B B /3 O
 37 . 37 . .r@   r   c                       e Zd ZU dZej
                  Zded<   ed
 fd       Z	ddd fdZ
ddddZdddd	Z xZS )ParameterChangedDefaultBreakagezCSpecific breakage class for parameters whose default value changed.r   rD   c                L    t         |    d| j                  j                   dS r   r   r   s    rA   r|   z.ParameterChangedDefaultBreakage._relative_path`  r   r@   Tr   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS r   r   r   s       rA   r   z-ParameterChangedDefaultBreakage._format_titled  r   r@   c               @    t        | j                  j                        S rM   )r   rG   defaultr   s     rA   r   z1ParameterChangedDefaultBreakage._format_old_valuei      4>>))**r@   c               @    t        | j                  j                        S rM   )r   rH   r   r   s     rA   r   z1ParameterChangedDefaultBreakage._format_new_valuel  r   r@   r   r   )r   r   r   r   r   PARAMETER_CHANGED_DEFAULTrD   r   r   r|   r   r   r   r   r   s   @rA   r   r   [  sN    M%??D,?B B /3 O
 37 + 37 + +r@   r   c                       e Zd ZU dZej
                  Zded<   ed
 fd       Z	ddd fdZ
ddddZdddd	Z xZS ) ParameterChangedRequiredBreakagez=Specific breakage class for parameters which became required.r   rD   c                L    t         |    d| j                  j                   dS r   r   r   s    rA   r|   z/ParameterChangedRequiredBreakage._relative_pathu  r   r@   Tr   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS r   r   r   s       rA   r   z.ParameterChangedRequiredBreakage._format_titley  r   r@   c                    yr   r?   r   s     rA   r   z2ParameterChangedRequiredBreakage._format_old_value~  r   r@   c                    yr   r?   r   s     rA   r   z2ParameterChangedRequiredBreakage._format_new_value  r   r@   r   r   )r   r   r   r   r   PARAMETER_CHANGED_REQUIREDrD   r   r   r|   r   r   r   r   r   s   @rA   r   r   p  sN    G%@@D,@B B /3 O
 37  37  r@   r   c                       e Zd ZU dZej
                  Zded<   ed
 fd       Z	ddd fdZ
ddddZdddd	Z xZS )ParameterAddedRequiredBreakagez=Specific breakage class for new parameters added as required.r   rD   c                L    t         |    d| j                  j                   dS r   )r   r|   rH   rR   r   s    rA   r|   z-ParameterAddedRequiredBreakage._relative_path  r   r@   Tr   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS r   )r   r   r!   r   r|   rH   rR   r   s       rA   r   z,ParameterAddedRequiredBreakage._format_title  r   r@   c                    yr   r?   r   s     rA   r   z0ParameterAddedRequiredBreakage._format_old_value  r   r@   c                    yr   r?   r   s     rA   r   z0ParameterAddedRequiredBreakage._format_new_value  r   r@   r   r   )r   r   r   r   r   PARAMETER_ADDED_REQUIREDrD   r   r   r|   r   r   r   r   r   s   @rA   r   r     sN    G%>>D,>B B /3 O
 37  37  r@   r   c                  4    e Zd ZU dZej
                  Zded<   y)ReturnChangedTypeBreakagez=Specific breakage class for return values which changed type.r   rD   N)r   r   r   r   r   RETURN_CHANGED_TYPErD   r   r?   r@   rA   r   r     s    G%99D,9r@   r   c                  P    e Zd ZU dZej
                  Zded<   ddd	dZddd	dZ	y)
ObjectRemovedBreakagez,Specific breakage class for removed objects.r   rD   Tr   c                    yr   r?   r   s     rA   r   z'ObjectRemovedBreakage._format_old_value  r   r@   c                    yr   r?   r   s     rA   r   z'ObjectRemovedBreakage._format_new_value  r   r@   Nr   )
r   r   r   r   r   r~   rD   r   r   r   r?   r@   rA   r   r     s'    6%44D,426  37 r@   r   c                  P    e Zd ZU dZej
                  Zded<   ddd	dZddd	dZ	y)
ObjectChangedKindBreakagez7Specific breakage class for objects whose kind changed.r   rD   Tr   c               .    | j                   j                  S rM   )rG   rN   r   s     rA   r   z+ObjectChangedKindBreakage._format_old_value      ~~###r@   c               .    | j                   j                  S rM   )rH   rN   r   s     rA   r   z+ObjectChangedKindBreakage._format_new_value  r  r@   Nr   )
r   r   r   r   r   OBJECT_CHANGED_KINDrD   r   r   r   r?   r@   rA   r   r     s'    A%99D,926 $ 37 $r@   r   c                  4    e Zd ZU dZej
                  Zded<   y)AttributeChangedTypeBreakagez:Specific breakage class for attributes whose type changed.r   rD   N)r   r   r   r   r   ATTRIBUTE_CHANGED_TYPErD   r   r?   r@   rA   r  r    s    D%<<D,<r@   r  c                  4    e Zd ZU dZej
                  Zded<   y)AttributeChangedValueBreakagez;Specific breakage class for attributes whose value changed.r   rD   N)r   r   r   r   r   ATTRIBUTE_CHANGED_VALUErD   r   r?   r@   rA   r  r    s    E%==D,=r@   r  c                  P    e Zd ZU dZej
                  Zded<   ddd	dZddd	dZ	y)
ClassRemovedBaseBreakagez1Specific breakage class for removed base classes.r   rD   Tr   c               R    ddj                  d | j                  D              z   dz   S )N[, c              3  4   K   | ]  }|j                     y wrM   rt   .0bases     rA   	<genexpr>z=ClassRemovedBaseBreakage._format_old_value.<locals>.<genexpr>       Ntt22N   ])r   rG   r   s     rA   r   z*ClassRemovedBaseBreakage._format_old_value  &    TYYNt~~NNNQTTTr@   c               R    ddj                  d | j                  D              z   dz   S )Nr  r  c              3  4   K   | ]  }|j                     y wrM   r  r  s     rA   r  z=ClassRemovedBaseBreakage._format_new_value.<locals>.<genexpr>  r  r  r  )r   rH   r   s     rA   r   z*ClassRemovedBaseBreakage._format_new_value  r  r@   Nr   )
r   r   r   r   r   CLASS_REMOVED_BASErD   r   r   r   r?   r@   rA   r  r    s)    ;%88D,826 U 37 Ur@   r  c             #  "  K   dE d {    |j                   | j                   k7  rNt        |j                         t        | j                         k  r#t        || j                   |j                          t        | ||      E d {    y 7 7 w)Nr?   
seen_paths)basesr{   r  _member_incompatibilities)	old_class	new_classr  s      rA   _class_incompatibilitiesr#    sm      MM)//)c)//.BSEY.Y&y)//9??SS(I*UUU  Vs"   BBA<BBBBc           	   #  B  K   |j                   D cg c]  }|j                   }}|j                   D ch c]  }|j                   }}t        j                  |v }t        j
                  |v }t        | j                         D ]  \  }}|j                  |j                   vrz|j                  t        j                  u xr |xsF |j                  t        j                  u xr |xs$ |j                  t        j                  u xr |xr |}	|	st        ||d        |j                   |j                     }
|
j                  r|j                  st        |||
       |j                  t        v rS|
j                  t        v rA|j                  |j                        }||k7  r!d| d| d||z
  dd}t        |||
|       |j                  |
j                  ur9t!        |j                  t        j                  u xr |
j                  t        j                  u |j                  t        j                  u xr |
j                  t        j                  u |j                  t        j                  u xr |
j                  t"        v |
j                  t        j
                  u xr! |j                  t        j                  uxr | |
j                  t        j                  u xr! |j                  t        j                  uxr | f      }|rt%        |||
       t'        |||
      }|j                   xr |
j                   }|j                  t(        vxr |
j                  t(        v}|s|s	 |j*                  |
j*                  k7  r|  |j                   D ]7  }
|
j                  | j                   vs|
j                  s)t/        |d |
       9 t1        | |      s$t3        || j4                  |j4                         y y c c}w c c}w # t,        $ r | Y w xY ww)Nzposition: from z to z (+r   )rI   )
parametersrR   rD   r	   var_positionalvar_keywordrn   keyword_onlypositional_onlypositional_or_keywordr   requiredr   _POSITIONALrp   r   any_POSITIONAL_KEYWORD_ONLYr   r   	_VARIADICr   	Exceptionr   _returns_are_compatibler   returns)old_functionnew_functionparamnew_param_namesparam_kindshas_variadic_argshas_variadic_kwargs	old_index	old_param	swallowed	new_param	new_indexrI   incompatible_kindbreakagenon_requirednon_variadics                    rA   _function_incompatibilitiesrD    s    /;/F/FGeuzzGOG+7+B+BC%5::CKC%44C'33{B ),*A*A B :	9>>!8!88=#=#==UBU yNNm&C&CCYHYyNNm&I&IIwN_wdw 
 .|YMM !++INN;	i&8&82<IVV >>[(Y^^{-J'--inn=II%+I;d9+R	T]H]^_G``ab,\9iY`aa >>/ # NNm&C&CCt	ZgZtZtHtNNm&@&@@tY^^WdWtWtEtNNm&I&II C!*BBNNm&?&?? .!m.H.HH.--NNm&B&BB 0!m.K.KK0//!& !2<IVV 3<IV$---Hi6H6H2H ~~Y6Z9>>QZ;ZL$$	(9(99"No:z ",, P	>>!8!88Y=O=O0tYOOP #<>'l6J6JLL`L`aa ?M HCx  sR   PPPPLP%P*P*P2P?APPPPPc              #     K   | j                   |j                   k7  rJ|j                   t        || j                   d       y t        || j                   |j                          y y w)Nr   )rN   r  )old_attributenew_attributes     rA   _attribute_incompatibilitiesrH  )  s]     m111&/}?R?RT[\\/}?R?RTaTgTghh	 2s   A%A'c             #    K   	 | j                   r| j                  n| }|j                   r|j                  n|}t        |||      E d {    y # t        $ r. t        j                  d| j
                  |j
                         Y y w xY w7 ?w)Nz2API check: %s | %s: skip alias with unknown targetr  )r`   targetr
   r   debugrW   _type_based_yield)old_objnew_objr  
old_member
new_members        rA   _alias_incompatibilitiesrQ  2  s{     '.'7'7W^^W
'.'7'7W^^W

 !ZJOOO	   I7<<Y`YeYef Ps3   B4A B	B	
B4BBBBr  c             #    K   |
t               n|}| j                  j                         D ]z  \  }}|j                  s"t	        j
                  d| j                  |       4t	        j
                  d| j                  |       	 |j                  |   }t        |||      E d {    | y 7 # t        $ r6 |j                  s|j                  s|j                  rt        ||d        Y w xY ww)Nz(API check: %s.%s: skip non-public objectzAPI check: %s.%sr  )setall_membersitems	is_publicr   rK  rW   rL  KeyErrorr`   	is_moduler   )rM  rN  r  rR   rO  rP  s         rA   r   r   B  s      %,*J#//557 Xj##LLCW\\SWX't<	X ,,T2J
 )ZJWWWX X	  	J''J,@,@ZEYEY+J
DII	Js6   A>C-B+C-!B)"C-+<C*'C-)C**C-c             #  \  K   | j                   |v ry |j                  | j                          | j                  s|j                  rt        | ||      E d {    y |j                  | j                  k7  r$t        || j                  |j                         y | j                  rt        | ||      E d {    y | j                  rt        | ||      E d {    y | j                  rt        | |      E d {    y | j                  rt        | |      E d {    y y 7 7 m7 L7 -7 w)Nr  )rW   addr`   rQ  rD   r   rX  r   is_classr#  is_functionrD  is_attributerH  )rO  rP  r  s      rA   rL  rL  W  s     *$NN:??#j11 ,!
 	
 	

 
JOO	+'
JOOZ__UU			,!
 	
 	

 
		+!
 	
 	

 
		.z:FFF		 	 /
JGGG 
!+	
	
	
 	GGs[   AD,D"AD,6D$7"D,D& D,:D(; D,D*D,$D,&D,(D,*D,c                    | j                   y|j                   yt        j                  t              5  |j                   | j                   k(  r
	 d d d        y	 d d d        y# 1 sw Y   yxY w)NTF)r3  
contextlibsuppressAttributeError)r4  r5  s     rA   r2  r2  |  sn     ##			^	, <#7#77 7
 
 s   A""A+c              #  8   K   t        | |      E d{    y7 w)aX  Find breaking changes between two versions of the same API.

    The function will iterate recursively on all objects
    and yield breaking changes with detailed information.

    Parameters:
        old_obj: The old version of an object.
        new_obj: The new version of an object.

    Yields:
        Breaking changes.

    Examples:
        >>> import sys, griffe
        >>> new = griffe.load("pkg")
        >>> old = griffe.load_git("pkg", "1.2.3")
        >>> for breakage in griffe.find_breaking_changes(old, new)
        ...     print(breakage.explain(style=style), file=sys.stderr)
    N)r   )rM  rN  s     rA   find_breaking_changesrc    s     . )':::s   )r!  r   r"  r   r  set[str]r   Iterable[Breakage])r4  r   r5  r   r   Iterator[Breakage])rF  r   rG  r   r   re  )rM  Object | AliasrN  rg  r  rd  r   re  )rM  rg  rN  rg  r  zset[str] | Noner   rf  )rO  rg  rP  rg  r  rd  r   rf  )r4  r   r5  r   r   r   )rM  rg  rN  rg  r   rf  )=
__future__r   r_  pathlibr   typingr   r   griffe._internal.enumerationsr   r   r	   griffe._internal.exceptionsr
   griffe._internal.gitr   griffe._internal.loggerr   collections.abcr   r   griffe._internal.modelsr   r   r   r   r   	frozensetr*  r+  r-  r)  _KEYWORDr/  r'  r(  r0  r   rC   r   r   r   r   r   r   r   r   r   r  r  r  r#  rD  rH  rQ  r   rL  r2  object	_sentinelrc  r?   r@   rA   <module>ru     s>   #   % W W < 1 *2QQ668[8[\]m00-2U2UVW$m&C&C]E_E_%`a }33]5N5NOP	& &RP PfX *x *.8 .*+h +*x *X *: :	H 		$ 	$=8 =>H >	Ux 	U	V	V	V 		V
 	VHbViPPP 	P
 P( #'	XXX  	X
 X*"H"H"H 	"H
 "HJ* H	;;; ;r@   