
    i1d                    v   S SK Jr  S SKrS SKJr  S SKJrJr  S SKJ	r	J
r
Jr  S SKJr  S SKJr  S SKJr  \(       a  S S	KJrJr  S S
KJrJrJrJrJr  \" \R8                  \R:                  45      r\" \R>                  \R:                  45      r \" \R8                  \R>                  45      r!\" \RD                  \RF                  45      r$ " S S5      r% " S S5      r& " S S\&5      r' " S S\&5      r( " S S\&5      r) " S S\&5      r* " S S\&5      r+ " S S\&5      r, " S S\&5      r- " S S\&5      r. " S S \&5      r/ " S! S"\&5      r0 " S# S$\&5      r1 " S% S&\&5      r2        S0S' jr3S1S( jr4S2S) jr5        S3S* jr6SS+.       S4S, jjr7        S5S- jr8S6S. jr9\:" 5       r;      S7S/ jr<g)8    )annotationsN)Path)TYPE_CHECKINGAny)BreakageKindExplanationStyleParameterKind)AliasResolutionError)_WORKTREE_PREFIX)logger)IterableIterator)Alias	AttributeClassFunctionObjectc                      \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*g))*_ANSI    z[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[0m N)+__name__
__module____qualname____firstlineno__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__static_attributes__r       O/home/james-whalen/.local/lib/python3.13/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IrC   r   c                     \ rS rSr% SrS\S'    S!S"S jjrS#S jrS#S jrSS	.S$S
 jjr	\
R                  4S%S jjr\S&S j5       r\S&S j5       r\S&S j5       r\S&S j5       r\S#S j5       r\S#S j5       r\S#S j5       r\S'S j5       rSS.S(S jjrSS.S(S jjrSS.S(S jjrSS.S(S jjrSS.S(S jjrS#S jrS#S jrS#S jrS#S jrSrg ))BreakageI   z;Breakages can explain what broke from a version to another.r   kindc                :    Xl          X l         X0l         X@l        g)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)selfrJ   rK   rL   rM   s        rD   __init__Breakage.__init__O   s$     1""*.rC   c                .    U R                   R                  $ N)rH   valuerN   s    rD   __str__Breakage.__str__a   s    yyrC   c                .    U R                   R                  $ rR   )rH   namerT   s    rD   __repr__Breakage.__repr__d   s    yy~~rC   F)fullc               t    U R                   U R                  R                  U R                  U R                  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.
)rH   object_pathrK   rL   )rH   rJ   pathrK   rL   )rN   r[   kwargss      rD   as_dictBreakage.as_dictg   s.     II88==	
 	
rC   c                >    [        U SUR                   35      " 5       $ )zExplain the breakage by showing old and new value.

Parameters:
    style: The explanation style to use.

Returns:
    An explanation.
	_explain_)getattrrS   )rN   styles     rD   explainBreakage.explainx   s     ty6799rC   c                    U R                   R                  (       a   U R                   R                  R                  $ U R                   R                  $ rR   )rJ   is_aliasparentfilepathrT   s    rD   	_filepathBreakage._filepath   s3    8888??+++xx   rC   c                    U R                   R                  (       a   U R                   R                  R                  $ U R                   R                  $ rR   )rJ   ri   rj   relative_filepathrT   s    rD   _relative_filepathBreakage._relative_filepath   s3    8888??444xx)))rC   c                    U R                   R                  (       a   U R                   R                  R                  $ U R                   R                  $ rR   )rJ   ri   rj   relative_package_filepathrT   s    rD   _relative_package_filepath#Breakage._relative_package_filepath   s3    8888??<<<xx111rC   c                    U R                   R                  5       (       aS  U R                   R                  n[        U5       H.  u  p#UR	                  [
        5      (       d  M!  [        XS-   S  6 s  $    U R                   $ )N   )rp   is_absoluteparts	enumerate
startswithr   r   )rN   ry   indexparts       rD   	_locationBreakage._location   sm    
 ""..00++11E(/??#344qy{!344  0 &&&rC   c                    U R                   R                  (       a  U R                   R                  $ U R                   R                  $ rR   )rJ   ri   r^   canonical_pathrT   s    rD   _canonical_pathBreakage._canonical_path   s-    8888== xx&&&rC   c                    U R                   R                  (       a*  U R                   R                  R                  R                  $ U R                   R                  R                  $ rR   )rJ   ri   rj   moduler^   rT   s    rD   _module_pathBreakage._module_path   s=    8888??))...xx###rC   c                ^    U R                   [        U R                  5      S-   S  =(       d    S$ )N   z<module>)r   lenr   rT   s    rD   _relative_pathBreakage._relative_path   s+    ##C(9(9$:Q$>$@AOZOrC   c                $   U R                   [        R                  L a  U R                  U R                  :w  a  gU R
                  R                  (       a  U R
                  R                  =(       d    S$ U R
                  R                  =(       d    S$ )Nr   )	rH   r   OBJECT_REMOVEDrp   r~   rJ   ri   alias_linenolinenorT   s    rD   _linenoBreakage._lineno   sb    
 993338O8OSWSaSa8a8888((-A-xx#!#rC   Tcolorsc                   U(       a  [         R                  OSnU(       a  [         R                  OSnU U R                   U SU R                   3$ )N :)r   r>   rA   r~   r   )rN   r   brightresets       rD   _format_locationBreakage._format_location   s>    !'R#)r$..)%$,,@@rC   c                   U R                   $ rR   )r   rN   r   s     rD   _format_titleBreakage._format_title   s    """rC   c                   U(       a  [         R                  OSnU(       a  [         R                  OSnU U R                  R                   U 3$ Nr   )r   r   r$   rH   rS   )rN   r   yellowr   s       rD   _format_kindBreakage._format_kind   s8    $*"(b$))//*5'22rC   c               ,    [        U R                  5      $ rR   )strrK   r   s     rD   _format_old_valueBreakage._format_old_value       4>>""rC   c               ,    [        U R                  5      $ rR   )r   rL   r   s     rD   _format_new_valueBreakage._format_new_value   r   rC   c                "   U R                  5        SU R                  5        SU R                  5        3nU R                  5       nU R	                  5       nU(       a  U(       a  U SU 3nOU(       a  UnOU(       a  UnOSnU(       a  U SU 3$ U$ )N:  -> r   )r   r   r   r   r   rN   explanationoldnewchanges        rD   _explain_onelineBreakage._explain_oneline   s    ..01D4F4F4H3IDL]L]L_K`a$$&$$&3uD&FFFF!]"VH--rC   c                "   U R                  5        SU R                  5        S3/nU R                  5       nU R                  5       nU R	                  5       nU(       d  U(       a  UR                  U S35        OUR                  U5        U(       a  UR                  SU 35        U(       a  UR                  SU 35        U R                  (       a  UR                  SU R                   35        UR                  S5        SR                  U5      $ )Nr   r   z  Old: z  New: z  Details: r   
)r   r   r   r   r   appendrM   join)rN   linesrH   r   r   s        rD   _explain_verboseBreakage._explain_verbose   s    ))+,Bt/A/A/C.DAFG  "$$&$$&#LLD6$LLLL73%)LL73%)<<LL;t||n56RyyrC   c                P   SU R                    SU R                  R                   S3nU R                  SS9nU(       a  US:w  a  SU S3nU R	                  SS9nU(       a  US:w  a  SU S3nU(       a  U(       a  U SU 3nOU(       a  UnOU(       a  UnOS	nU(       a  U S
U 3$ U$ )Nz- `z`: **Fr   unset`r   r   r   )r   rH   rS   r   r   r   s        rD   _explain_markdown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--rC   c                   SU R                    SU R                   3nSU R                  SS9 3nSU SU SU R                  R                   3nU R                  SS9nU(       a  US	:w  a  S
U S
3nU R                  SS9nU(       a  US	:w  a  S
U S
3nU(       a  U(       a  U SU 3nOU(       a  UnOU(       a  UnOSnU(       a  U SU 3$ U$ )Nzfile=z,line=ztitle=Fr   z
::warning ,z::r   r   r   r   r   )r~   r   r   rH   rS   r   r   )rN   locationtitler   r   r   r   s          rD   _explain_github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--rC   )rM   rL   rJ   rK   N)r   )
rJ   r   rK   r   rL   r   rM   r   returnNoner   r   )r[   boolr_   r   r   zdict[str, Any])re   r   r   r   )r   r   )r   intr   r   r   r   ) r   r   r   r   __doc____annotations__rO   rU   rY   r`   r   ONE_LINErf   propertyrl   rp   rt   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   rB   r   rC   rD   rF   rF   I   s!   E
/$ ', 
" 1A0I0I 	: ! !
 * *
 2 2
 	' 	' ' '
 $ $
 P P $ $ 26 A
 /3 # .2 3
 37 # 37 #  $(rC   rF   c                     ^  \ rS rSr% Sr\R                  rS\S'   \	SU 4S jj5       r
SS.SU 4S jjjrSS.SS	 jjrSS.SS
 jjrSrU =r$ )ParameterMovedBreakagei  z-Specific breakage class for moved parameters.r   rH   c                L   > [         TU ]   SU R                  R                   S3$ N()superr   rK   rX   rN   	__class__s    rD   r   %ParameterMovedBreakage._relative_path!  '    '()4>>+>+>*?qAArC   Tr   c                  > U(       a  [         R                  OSnU(       a  [         R                  OSn[        TU ]   SU U R
                  R                   U S3$ Nr   r   r   r   r    r$   r   r   rK   rX   rN   r   bluer   r   s       rD   r   $ParameterMovedBreakage._format_title%  I     &u}}B"(b'()4&1D1D0EeWANNrC   c                   gr   r   r   s     rD   r   (ParameterMovedBreakage._format_old_value*      rC   c                   gr   r   r   s     rD   r   (ParameterMovedBreakage._format_new_value-  r   rC   r   r   r   )r   r   r   r   r   r   PARAMETER_MOVEDrH   r   r   r   r   r   r   rB   __classcell__r   s   @rD   r   r     sT    7%55D,5B B /3 O O
 37  37  rC   r   c                     ^  \ rS rSr% Sr\R                  rS\S'   \	SU 4S jj5       r
SS.SU 4S jjjrSS.SS	 jjrSS.SS
 jjrSrU =r$ )ParameterRemovedBreakagei1  z/Specific breakage class for removed parameters.r   rH   c                L   > [         TU ]   SU R                  R                   S3$ r   r   r   s    rD   r   'ParameterRemovedBreakage._relative_path6  r   rC   Tr   c                  > U(       a  [         R                  OSnU(       a  [         R                  OSn[        TU ]   SU U R
                  R                   U S3$ r   r   r   s       rD   r   &ParameterRemovedBreakage._format_title:  r   rC   c                   gr   r   r   s     rD   r   *ParameterRemovedBreakage._format_old_value?  r   rC   c                   gr   r   r   s     rD   r   *ParameterRemovedBreakage._format_new_valueB  r   rC   r   r   r   )r   r   r   r   r   r   PARAMETER_REMOVEDrH   r   r   r   r   r   r   rB   r   r   s   @rD   r   r   1  sT    9%77D,7B B /3 O O
 37  37  rC   r   c                     ^  \ rS rSr% Sr\R                  rS\S'   \	SU 4S jj5       r
SS.SU 4S jjjrSS.SS	 jjrSS.SS
 jjrSrU =r$ )ParameterChangedKindBreakageiF  z:Specific breakage class for parameters whose kind changed.r   rH   c                L   > [         TU ]   SU R                  R                   S3$ r   r   r   s    rD   r   +ParameterChangedKindBreakage._relative_pathK  r   rC   Tr   c                  > U(       a  [         R                  OSnU(       a  [         R                  OSn[        TU ]   SU U R
                  R                   U S3$ r   r   r   s       rD   r   *ParameterChangedKindBreakage._format_titleO  r   rC   c               T    [        U R                  R                  R                  5      $ rR   )r   rK   rH   rS   r   s     rD   r   .ParameterChangedKindBreakage._format_old_valueT      4>>&&,,--rC   c               T    [        U R                  R                  R                  5      $ rR   )r   rL   rH   rS   r   s     rD   r   .ParameterChangedKindBreakage._format_new_valueW  r  rC   r   r   r   )r   r   r   r   r   r   PARAMETER_CHANGED_KINDrH   r   r   r   r   r   r   rB   r   r   s   @rD   r   r   F  sT    D%<<D,<B B /3 O O
 37 . 37 . .rC   r   c                     ^  \ rS rSr% Sr\R                  rS\S'   \	SU 4S jj5       r
SS.SU 4S jjjrSS.SS	 jjrSS.SS
 jjrSrU =r$ )ParameterChangedDefaultBreakagei[  zCSpecific breakage class for parameters whose default value changed.r   rH   c                L   > [         TU ]   SU R                  R                   S3$ r   r   r   s    rD   r   .ParameterChangedDefaultBreakage._relative_path`  r   rC   Tr   c                  > U(       a  [         R                  OSnU(       a  [         R                  OSn[        TU ]   SU U R
                  R                   U S3$ r   r   r   s       rD   r   -ParameterChangedDefaultBreakage._format_titled  r   rC   c               @    [        U R                  R                  5      $ rR   )r   rK   defaultr   s     rD   r   1ParameterChangedDefaultBreakage._format_old_valuei      4>>))**rC   c               @    [        U R                  R                  5      $ rR   )r   rL   r  r   s     rD   r   1ParameterChangedDefaultBreakage._format_new_valuel  r  rC   r   r   r   )r   r   r   r   r   r   PARAMETER_CHANGED_DEFAULTrH   r   r   r   r   r   r   rB   r   r   s   @rD   r  r  [  sT    M%??D,?B B /3 O O
 37 + 37 + +rC   r  c                     ^  \ rS rSr% Sr\R                  rS\S'   \	SU 4S jj5       r
SS.SU 4S jjjrSS.SS	 jjrSS.SS
 jjrSrU =r$ ) ParameterChangedRequiredBreakageip  z=Specific breakage class for parameters which became required.r   rH   c                L   > [         TU ]   SU R                  R                   S3$ r   r   r   s    rD   r   /ParameterChangedRequiredBreakage._relative_pathu  r   rC   Tr   c                  > U(       a  [         R                  OSnU(       a  [         R                  OSn[        TU ]   SU U R
                  R                   U S3$ r   r   r   s       rD   r   .ParameterChangedRequiredBreakage._format_titley  r   rC   c                   gr   r   r   s     rD   r   2ParameterChangedRequiredBreakage._format_old_value~  r   rC   c                   gr   r   r   s     rD   r   2ParameterChangedRequiredBreakage._format_new_value  r   rC   r   r   r   )r   r   r   r   r   r   PARAMETER_CHANGED_REQUIREDrH   r   r   r   r   r   r   rB   r   r   s   @rD   r  r  p  sT    G%@@D,@B B /3 O O
 37  37  rC   r  c                     ^  \ rS rSr% Sr\R                  rS\S'   \	SU 4S jj5       r
SS.SU 4S jjjrSS.SS	 jjrSS.SS
 jjrSrU =r$ )ParameterAddedRequiredBreakagei  z=Specific breakage class for new parameters added as required.r   rH   c                L   > [         TU ]   SU R                  R                   S3$ r   )r   r   rL   rX   r   s    rD   r   -ParameterAddedRequiredBreakage._relative_path  r   rC   Tr   c                  > U(       a  [         R                  OSnU(       a  [         R                  OSn[        TU ]   SU U R
                  R                   U S3$ r   )r   r    r$   r   r   rL   rX   r   s       rD   r   ,ParameterAddedRequiredBreakage._format_title  r   rC   c                   gr   r   r   s     rD   r   0ParameterAddedRequiredBreakage._format_old_value  r   rC   c                   gr   r   r   s     rD   r   0ParameterAddedRequiredBreakage._format_new_value  r   rC   r   r   r   )r   r   r   r   r   r   PARAMETER_ADDED_REQUIREDrH   r   r   r   r   r   r   rB   r   r   s   @rD   r  r    sT    G%>>D,>B B /3 O O
 37  37  rC   r  c                  <    \ rS rSr% Sr\R                  rS\S'   Sr	g)ReturnChangedTypeBreakagei  z=Specific breakage class for return values which changed type.r   rH   r   N)
r   r   r   r   r   r   RETURN_CHANGED_TYPErH   r   rB   r   rC   rD   r*  r*    s    G%99D,9rC   r*  c                  `    \ rS rSr% Sr\R                  rS\S'   SS.SS jjr	SS.SS jjr
S	rg
)ObjectRemovedBreakagei  z,Specific breakage class for removed objects.r   rH   Tr   c                   gr   r   r   s     rD   r   'ObjectRemovedBreakage._format_old_value  r   rC   c                   gr   r   r   s     rD   r   'ObjectRemovedBreakage._format_new_value  r   rC   r   Nr   )r   r   r   r   r   r   r   rH   r   r   r   rB   r   rC   rD   r-  r-    s,    6%44D,426  37  rC   r-  c                  `    \ rS rSr% Sr\R                  rS\S'   SS.SS jjr	SS.SS jjr
S	rg
)ObjectChangedKindBreakagei  z7Specific breakage class for objects whose kind changed.r   rH   Tr   c               .    U R                   R                  $ rR   )rK   rS   r   s     rD   r   +ObjectChangedKindBreakage._format_old_value      ~~###rC   c               .    U R                   R                  $ rR   )rL   rS   r   s     rD   r   +ObjectChangedKindBreakage._format_new_value  r6  rC   r   Nr   )r   r   r   r   r   r   OBJECT_CHANGED_KINDrH   r   r   r   rB   r   rC   rD   r3  r3    s,    A%99D,926 $ 37 $ $rC   r3  c                  <    \ rS rSr% Sr\R                  rS\S'   Sr	g)AttributeChangedTypeBreakagei  z:Specific breakage class for attributes whose type changed.r   rH   r   N)
r   r   r   r   r   r   ATTRIBUTE_CHANGED_TYPErH   r   rB   r   rC   rD   r;  r;    s    D%<<D,<rC   r;  c                  <    \ rS rSr% Sr\R                  rS\S'   Sr	g)AttributeChangedValueBreakagei  z;Specific breakage class for attributes whose value changed.r   rH   r   N)
r   r   r   r   r   r   ATTRIBUTE_CHANGED_VALUErH   r   rB   r   rC   rD   r>  r>    s    E%==D,=rC   r>  c                  `    \ rS rSr% Sr\R                  rS\S'   SS.SS jjr	SS.SS jjr
S	rg
)ClassRemovedBaseBreakagei  z1Specific breakage class for removed base classes.r   rH   Tr   c               R    SSR                  S U R                   5       5      -   S-   $ )N[, c              3  8   #    U  H  oR                   v   M     g 7frR   r   .0bases     rD   	<genexpr>=ClassRemovedBaseBreakage._format_old_value.<locals>.<genexpr>       N~t22~   ])r   rK   r   s     rD   r   *ClassRemovedBaseBreakage._format_old_value  &    TYYNt~~NNNQTTTrC   c               R    SSR                  S U R                   5       5      -   S-   $ )NrC  rD  c              3  8   #    U  H  oR                   v   M     g 7frR   rF  rG  s     rD   rJ  =ClassRemovedBaseBreakage._format_new_value.<locals>.<genexpr>  rL  rM  rN  )r   rL   r   s     rD   r   *ClassRemovedBaseBreakage._format_new_value  rP  rC   r   Nr   )r   r   r   r   r   r   CLASS_REMOVED_BASErH   r   r   r   rB   r   rC   rD   rA  rA    s/    ;%88D,826 U 37 U UrC   rA  c             #    #    S S h  vN   UR                   U R                   :w  aN  [        UR                   5      [        U R                   5      :  a"  [        XR                   UR                   5      v   [        XUS9 S h  vN   g  N N7f)Nr   
seen_paths)basesr   rA  _member_incompatibilities)	old_class	new_classrX  s      rD   _class_incompatibilitiesr]    sg      MM)//)c)//.BSEY.Y&y//9??SS(*UUU  Vs"   BBA9BB
B
Bc           	   #  p	  #    UR                    Vs/ s H  o"R                  PM     nnUR                    Vs1 s H  o"R                  iM     nn[        R                  U;   n[        R
                  U;   n[        U R                   5       GH  u  pxUR                  UR                   ;  a  UR                  [        R                  L =(       a    U=(       dZ    UR                  [        R                  L =(       a    U=(       d.    UR                  [        R                  L =(       a    U=(       a    Un	U	(       d  [        XS 5      v   M  UR                   UR                     n
U
R                  (       a  UR                  (       d  [        XU
5      v   UR                  [        ;   aO  U
R                  [        ;   a;  UR                  UR                  5      nX:w  a  SU SU SX-
  S S3n[        XXS9v   UR                  U
R                  LGai  [!        UR                  [        R                  L =(       a    U
R                  [        R                  L UR                  [        R                  L =(       a    U
R                  [        R                  L UR                  [        R                  L =(       a    U
R                  ["        ;   U
R                  [        R
                  L =(       a*    UR                  [        R                  L=(       a    U(       + U
R                  [        R                  L =(       a*    UR                  [        R                  L=(       a    U(       + 45      nU(       a  [%        XU
5      v   ['        XU
5      nUR                  (       + =(       a    U
R                  (       + nUR                  [(        ;  =(       a    U
R                  [(        ;  nU(       d  GMX  U(       d  GMb   UR*                  U
R*                  :w  a  Uv   GM  GM     UR                    HA  n
U
R                  U R                   ;  d  M  U
R                  (       d  M2  [/        US U
5      v   MC     [1        X5      (       d#  [3        XR4                  UR4                  5      v   g g s  snf s  snf ! [,         a	    Uv    GM*  f = f7f)Nzposition: from z to z (+r   )rM   )
parametersrX   rH   r	   var_positionalvar_keywordrz   keyword_onlypositional_onlypositional_or_keywordr   requiredr  _POSITIONALr|   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_indexrM   incompatible_kindbreakagenon_requirednon_variadics                    rD   _function_incompatibilitiesr~    s    /;/F/FG/Fezz/FOG+7+B+BC+B%::+BKC%44C'33{B ),*A*A B	>>!8!88=#=#==UBU yNNm&C&CCYHYyNNm&I&IIwN_wdw 
 .|MM !++INN;	i&8&82<IVV >>[(Y^^{-J'--inn=I%+I;d9+R	H]^_G``ab,\i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<LL$$	(9(99"N :m !Cz ",,	>>!8!88Y=O=O=O0tYOO - #<>>'6J6JLL`L`aa ?M HCx  sR   R6RR6RNR6 R6+R 	/R6<R6AR6 R3.R62R33R6c              #     #    U R                   UR                   :w  aI  UR                   c  [        XR                   S5      v   g [        XR                   UR                   5      v   g g 7f)Nr   )rS   r>  )old_attributenew_attributes     rD   _attribute_incompatibilitiesr  )  sX     m111&/?R?RT[\\/?R?RTaTgTghh	 2s   A%A'c             #  *  #     U R                   (       a  U R                  OU nUR                   (       a  UR                  OUn[        X4US9 S h  vN   g ! [         a/    [        R                  " SU R
                  UR
                  5         g f = f NA7f)Nz2API check: %s | %s: skip alias with unknown targetrW  )ri   targetr
   r   debugr^   _type_based_yield)old_objnew_objrX  
old_member
new_members        rD   _alias_incompatibilitiesr  2  sx     '.'7'7W^^W
'.'7'7W^^W

 !JOOO	   I7<<Y`YeYef Ps4   B>A BBB6BBBBrW  c             #    #    Uc
  [        5       OUnU R                  R                  5        H~  u  p4UR                  (       d$  [        R
                  " SU R                  U5        M:  [        R
                  " SU R                  U5         UR                  U   n[        XEUS9 S h  vN   M     g  N	! [         aH    UR                  (       d  UR                  (       d  UR                  (       a  [        XDS 5      v    M   M  f = f7f)Nz(API check: %s.%s: skip non-public objectzAPI check: %s.%srW  )setall_membersitems	is_publicr   r  r^   r  KeyErrorri   	is_moduler-  )r  r  rX  rX   r  r  s         rD   rZ  rZ  B  s      %,*J#//557##LLCW\\SWX't<	X ,,T2J
 )JWWW 8 X	  	J''J,@,@ZEYEY+JDII FZ	Js7   BD	B1D%B/&
D1AD<DDDc             #    #    U R                   U;   a  g UR                  U R                   5        U R                  (       d  UR                  (       a  [        U UUS9 S h  vN   g UR                  U R                  :w  a#  [        XR                  UR                  5      v   g U R                  (       a  [        U UUS9 S h  vN   g U R                  (       a  [        U UUS9 S h  vN   g U R                  (       a  [        X5       S h  vN   g U R                  (       a  [        X5       S h  vN   g g  N Nw NT N1 N7f)NrW  )r^   addri   r  rH   r3  r  rZ  is_classr]  is_functionr~  is_attributer  )r  r  rX  s      rD   r  r  W  s     *$NN:??#j11 ,!
 	
 	

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

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

 
		.zFFF		 	 /
GGG 
!+	
	
	
 	GGs[   AED7 A!ED9$E&D;'$ED=$E0D?1E9E;E=E?Ec                    U R                   c  gUR                   c  g[        R                  " [        5         UR                   U R                   :X  a
   S S S 5        g S S S 5        g! , (       d  f       g= f)NTF)rm  
contextlibsuppressAttributeError)rn  ro  s     rD   rl  rl  |  sj     ##			^	,<#7#77 
-	,7 
-
  
-	,
 s   A&&
A4c              #  6   #    [        X5       Sh  vN   g N7f)a   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)rZ  )r  r  s     rD   find_breaking_changesr    s     . ):::s   )r[  r   r\  r   rX  set[str]r   Iterable[Breakage])rn  r   ro  r   r   Iterator[Breakage])r  r   r  r   r   r  )r  Object | Aliasr  r  rX  r  r   r  )r  r  r  r  rX  zset[str] | Noner   r  )r  r  r  r  rX  r  r   r  )rn  r   ro  r   r   r   )r  r  r  r  r   r  )=
__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   	frozensetrd  re  rg  rc  _KEYWORDri  ra  rb  rj  r   rF   r   r   r   r  r  r  r*  r-  r3  r;  r>  rA  r]  r~  r  r  rZ  r  rl  object	_sentinelr  r   rC   rD   <module>r     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	;;; ;rC   