
    5'hl_                    V   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
 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j>                  ej@                  f      Z! eejD                  ej@                  f      Z# eej>                  ejD                  f      Z$ eejJ                  ejL                  f      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(      Z0 G d de(      Z1 G d  d!e(      Z2 G d" d#e(      Z3 G d$ d%e(      Z4	 	 	 	 	 	 	 	 d/d&Z5d0d'Z6d1d(Z7	 	 	 	 	 	 	 	 d2d)Z8dd*	 	 	 	 	 	 	 d3d+Z9	 	 	 	 	 	 	 	 d4d,Z:d5d-Z; e<       Z=	 	 	 	 	 	 d6d.Z>y)7    )annotationsN)Path)TYPE_CHECKINGAny)ForeStyle)BreakageKindExplanationStyleParameterKind)AliasResolutionError)_WORKTREE_PREFIX)logger)IterableIterator)Alias	AttributeClassFunctionObjectc                  \   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)selfr   r   r   r   s        S/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/site-packages/_griffe/diff.py__init__zBreakage.__init__'   s,     1""*.    c                .    | j                   j                  S N)r   valuer   s    r   __str__zBreakage.__str__9   s    yyr!   c                .    | j                   j                  S r#   )r   namer%   s    r   __repr__zBreakage.__repr__<   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.
        )r   object_pathr   r   )r   r   pathr   r   )r   r*   kwargss      r   as_dictzBreakage.as_dict?   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_)getattrr$   )r   styles     r   explainzBreakage.explainP   s!     8wty6799r!   c                    | j                   j                  r | j                   j                  j                  S | j                   j                  S r#   )r   is_aliasparentfilepathr%   s    r   	_filepathzBreakage._filepath[   s3    8888??+++xx   r!   c                    | j                   j                  r | j                   j                  j                  S | j                   j                  S r#   )r   r6   r7   relative_filepathr%   s    r   _relative_filepathzBreakage._relative_filepatha   s3    8888??444xx)))r!   c                    | j                   j                  r | j                   j                  j                  S | j                   j                  S r#   )r   r6   r7   relative_package_filepathr%   s    r   _relative_package_filepathz#Breakage._relative_package_filepathg   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   )r<   is_absoluteparts	enumerate
startswithr   r   )r   rC   indexparts       r   	_locationzBreakage._locationm   sp    
 ""..0++11E(/ 5t??#34uqy{!3445 &&&r!   c                    | j                   j                  r| j                   j                  S | j                   j                  S r#   )r   r6   r-   canonical_pathr%   s    r   _canonical_pathzBreakage._canonical_pathy   s-    8888== xx&&&r!   c                    | j                   j                  r*| j                   j                  j                  j                  S | j                   j                  j                  S r#   )r   r6   r7   moduler-   r%   s    r   _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>)rK   lenrN   r%   s    r   _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   )	r   r	   OBJECT_REMOVEDr<   rH   r   r6   alias_linenolinenor%   s    r   _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   BRIGHT	RESET_ALLrH   rW   )r   rY   brightresets       r   _format_locationzBreakage._format_location   s>    !'R#)r$..)%$,,@@r!   c                   | j                   S r#   )rR   r   rY   s     r   _format_titlezBreakage._format_title   s    """r!   c                   |rt         j                  nd}|rt         j                  nd}| | j                  j                   | S Nr[   )r   YELLOWRESETr   r$   )r   rY   yellowr`   s       r   _format_kindzBreakage._format_kind   s8     &B$

"$))//*5'22r!   c               ,    t        | j                        S r#   )strr   rc   s     r   _format_old_valuezBreakage._format_old_value       4>>""r!   c               ,    t        | j                        S r#   )rl   r   rc   s     r   _format_new_valuezBreakage._format_new_value   rn   r!   c                    | j                          d| j                          d| j                          }| j                         }| j	                         }|r
|r| d| }n|r|}n|r|}nd}|r| d| S |S )N:  -> r[   )ra   rd   rj   rm   rp   r   explanationoldnewchanges        r   _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 )Nrr   r\   z  Old: z  New: z  Details: r[   
)ra   rd   rj   rm   rp   appendr   join)r   linesr   rv   rw   s        r   _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`: **FrX   unset`rs   r[   rr   )rR   r   r$   rm   rp   rt   s        r   _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=FrX   z
::warning ,z::r   r   rs   r[   rr   )rH   rW   rd   r   r$   rm   rp   )r   locationtitleru   rv   rw   rx   s          r   _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[   )
r   r   r   r   r   r   r   rl   returnNoner   rl   )r*   boolr.   r   r   zdict[str, Any])r3   r
   r   rl   )r   r   )r   intrY   r   r   rl   )__name__
__module____qualname____doc____annotations__r    r&   r)   r/   r
   ONE_LINEr4   propertyr9   r<   r?   rH   rK   rN   rR   rW   ra   rd   rj   rm   rp   ry   r   r   r    r!   r   r   r   !   s!   E
/$ ', 
" 1A0I0I 	: ! !
 * *
 2 2
 	' 	' ' '
 $ $
 P P $ $ 26 A
 /3 # .2 3
 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 )ParameterMovedBreakagez-Specific breakage class for moved parameters.r	   r   c                L    t         |    d| j                  j                   dS N()superrR   r   r(   r   	__class__s    r   rR   z%ParameterMovedBreakage._relative_path   '    '()4>>+>+>*?qAAr!   TrX   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS Nr[   r   r   r   BLUErh   r   rR   r   r(   r   rY   bluer`   r   s       r   rd   z$ParameterMovedBreakage._format_title   I    "tyy$

"'()4&1D1D0EeWANNr!   c                    yrf   r   rc   s     r   rm   z(ParameterMovedBreakage._format_old_value      r!   c                    yrf   r   rc   s     r   rp   z(ParameterMovedBreakage._format_new_value  r   r!   r   r   )r   r   r   r   r	   PARAMETER_MOVEDr   r   r   rR   rd   rm   rp   __classcell__r   s   @r   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	   r   c                L    t         |    d| j                  j                   dS r   r   r   s    r   rR   z'ParameterRemovedBreakage._relative_path  r   r!   TrX   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS r   r   r   s       r   rd   z&ParameterRemovedBreakage._format_title  r   r!   c                    yrf   r   rc   s     r   rm   z*ParameterRemovedBreakage._format_old_value  r   r!   c                    yrf   r   rc   s     r   rp   z*ParameterRemovedBreakage._format_new_value  r   r!   r   r   )r   r   r   r   r	   PARAMETER_REMOVEDr   r   r   rR   rd   rm   rp   r   r   s   @r   r   r   	  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	   r   c                L    t         |    d| j                  j                   dS r   r   r   s    r   rR   z+ParameterChangedKindBreakage._relative_path#  r   r!   TrX   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS r   r   r   s       r   rd   z*ParameterChangedKindBreakage._format_title'  r   r!   c               T    t        | j                  j                  j                        S r#   )rl   r   r   r$   rc   s     r   rm   z.ParameterChangedKindBreakage._format_old_value,      4>>&&,,--r!   c               T    t        | j                  j                  j                        S r#   )rl   r   r   r$   rc   s     r   rp   z.ParameterChangedKindBreakage._format_new_value/  r   r!   r   r   )r   r   r   r   r	   PARAMETER_CHANGED_KINDr   r   r   rR   rd   rm   rp   r   r   s   @r   r   r     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	   r   c                L    t         |    d| j                  j                   dS r   r   r   s    r   rR   z.ParameterChangedDefaultBreakage._relative_path8  r   r!   TrX   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS r   r   r   s       r   rd   z-ParameterChangedDefaultBreakage._format_title<  r   r!   c               @    t        | j                  j                        S r#   )rl   r   defaultrc   s     r   rm   z1ParameterChangedDefaultBreakage._format_old_valueA      4>>))**r!   c               @    t        | j                  j                        S r#   )rl   r   r   rc   s     r   rp   z1ParameterChangedDefaultBreakage._format_new_valueD  r   r!   r   r   )r   r   r   r   r	   PARAMETER_CHANGED_DEFAULTr   r   r   rR   rd   rm   rp   r   r   s   @r   r   r   3  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	   r   c                L    t         |    d| j                  j                   dS r   r   r   s    r   rR   z/ParameterChangedRequiredBreakage._relative_pathM  r   r!   TrX   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS r   r   r   s       r   rd   z.ParameterChangedRequiredBreakage._format_titleQ  r   r!   c                    yrf   r   rc   s     r   rm   z2ParameterChangedRequiredBreakage._format_old_valueV  r   r!   c                    yrf   r   rc   s     r   rp   z2ParameterChangedRequiredBreakage._format_new_valueY  r   r!   r   r   )r   r   r   r   r	   PARAMETER_CHANGED_REQUIREDr   r   r   rR   rd   rm   rp   r   r   s   @r   r   r   H  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	   r   c                L    t         |    d| j                  j                   dS r   )r   rR   r   r(   r   s    r   rR   z-ParameterAddedRequiredBreakage._relative_pathb  r   r!   TrX   c                   |rt         j                  nd}|rt         j                  nd}t        |    d| | j
                  j                   | dS r   )r   r   rh   r   rR   r   r(   r   s       r   rd   z,ParameterAddedRequiredBreakage._format_titlef  r   r!   c                    yrf   r   rc   s     r   rm   z0ParameterAddedRequiredBreakage._format_old_valuek  r   r!   c                    yrf   r   rc   s     r   rp   z0ParameterAddedRequiredBreakage._format_new_valuen  r   r!   r   r   )r   r   r   r   r	   PARAMETER_ADDED_REQUIREDr   r   r   rR   rd   rm   rp   r   r   s   @r   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	   r   N)r   r   r   r   r	   RETURN_CHANGED_TYPEr   r   r   r!   r   r   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	   r   TrX   c                    yrf   r   rc   s     r   rm   z'ObjectRemovedBreakage._format_old_value}  r   r!   c                    yrf   r   rc   s     r   rp   z'ObjectRemovedBreakage._format_new_value  r   r!   Nr   )
r   r   r   r   r	   rT   r   r   rm   rp   r   r!   r   r   r   x  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	   r   TrX   c               .    | j                   j                  S r#   )r   r$   rc   s     r   rm   z+ObjectChangedKindBreakage._format_old_value      ~~###r!   c               .    | j                   j                  S r#   )r   r$   rc   s     r   rp   z+ObjectChangedKindBreakage._format_new_value  r   r!   Nr   )
r   r   r   r   r	   OBJECT_CHANGED_KINDr   r   rm   rp   r   r!   r   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	   r   N)r   r   r   r   r	   ATTRIBUTE_CHANGED_TYPEr   r   r   r!   r   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	   r   N)r   r   r   r   r	   ATTRIBUTE_CHANGED_VALUEr   r   r   r!   r   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	   r   TrX   c               R    ddj                  d | j                  D              z   dz   S )N[, c              3  4   K   | ]  }|j                     y wr#   rJ   .0bases     r   	<genexpr>z=ClassRemovedBaseBreakage._format_old_value.<locals>.<genexpr>       Ntt22N   ])r}   r   rc   s     r   rm   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r#   r   r   s     r   r   z=ClassRemovedBaseBreakage._format_new_value.<locals>.<genexpr>  r   r   r   )r}   r   rc   s     r   rp   z*ClassRemovedBaseBreakage._format_new_value  r   r!   Nr   )
r   r   r   r   r	   CLASS_REMOVED_BASEr   r   rm   rp   r   r!   r   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)basesrQ   r   _member_incompatibilities)	old_class	new_classr   s      r   _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   )r   )
parametersr(   r   r   var_positionalvar_keywordrD   keyword_onlypositional_onlypositional_or_keywordr   requiredr   _POSITIONALrF   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_indexr   incompatible_kindbreakagenon_requirednon_variadics                    r   _function_incompatibilitiesr#    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   )r$   r   )old_attributenew_attributes     r   _attribute_incompatibilitiesr'    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   )r6   targetr   r   debugr-   _type_based_yield)old_objnew_objr   
old_member
new_members        r   _alias_incompatibilitiesr0  
  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   r*  r-   r+  KeyErrorr6   	is_moduler   )r,  r-  r   r(   r.  r/  s         r   r   r     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   )r-   addr6   r0  r   r   r7  r   is_classr  is_functionr#  is_attributer'  )r.  r/  r   s      r   r+  r+  /  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)r  
contextlibsuppressAttributeError)r  r  s     r   r  r  T  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   )r,  r-  s     r   find_breaking_changesrB  l  s     . )':::s   )r   r   r  r   r   set[str]r   Iterable[Breakage])r  r   r  r   r   Iterator[Breakage])r%  r   r&  r   r   rD  )r,  Object | Aliasr-  rF  r   rC  r   rD  )r,  rF  r-  rF  r   zset[str] | Noner   rE  )r.  rF  r/  rF  r   rC  r   rE  )r  r   r  r   r   r   )r,  rF  r-  rF  r   rE  )?
__future__r   r>  pathlibr   typingr   r   coloramar   r   _griffe.enumerationsr	   r
   r   _griffe.exceptionsr   _griffe.gitr   _griffe.loggerr   collections.abcr   r   _griffe.modelsr   r   r   r   r   	frozensetr	  r
  r  r  _KEYWORDr  r  r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r#  r'  r0  r   r+  r  object	_sentinelrB  r   r!   r   <module>rU     s6   #   %   N N 3 ( !2HH668[8[\]m00-2U2UVW$m&C&C]E_E_%`a }33]5N5NOP	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!   