ó
    Ë5žjâp  ã                   óP  • % / S Qr SSKrSSKrSSKrSSKJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJrJr  SSKJrJrJrJrJrJrJrJrJrJrJr  SS	KJrJr  \(       a  SS
KJ r   SSK!J"r"  SSK#J$r$  SSK%J&r&  SSK'J(r(  \S   r)\RT                   " S S\RV                  5      5       r,\,RZ                  r-\\,RZ                     \.S'    Sr/ \,R`                  r0\\,R`                     \.S'    S\1S\14S jr2S"S\1S\3S\\1   4S jjr4 " S S5      r5\" SSS9r6 " S S \\6   5      r7 " S! S5      r8g)#)ÚDiffConstantsÚ	NULL_TREEÚNULL_TREE_SHAÚINDEXÚDiffableÚ	DiffIndexÚDiffé    N)ÚGitÚhandle_process_output)Údefenc)ÚBlob)Úmode_str_to_int)Úfinalize_processÚ
hex_to_bin)ÚAnyÚIteratorÚListÚMatchÚOptionalÚSequenceÚTupleÚTYPE_CHECKINGÚTypeVarÚUnionÚcast)ÚPathLikeÚLiteral)ÚPopen)ÚIndexObject)ÚCommit)ÚTree)ÚRepo)ÚAÚDÚCÚMÚRÚTÚUc                   ó^   • \ rS rSrSr\R                  " 5       r \R                  " 5       rSr	g)r   é0   a]  Special objects for :meth:`Diffable.diff`.

See the :meth:`Diffable.diff` method's ``other`` parameter, which accepts various
values including these.

:note:
    These constants are also available as attributes of the :mod:`git.diff` module,
    the :class:`Diffable` class and its subclasses and instances, and the top-level
    :mod:`git` module.
© N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚenumÚautor   r   Ú__static_attributes__r,   ó    Ú–C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\git/diff.pyr   r   0   s+   † ñ	ð —	’	“€Iðð �IŠI‹K€Eòr5   r   r   Ú(4b825dc642cb6eb9a060e54bf8d69288fbee4904r   ÚpathÚreturnc                 óô  • [        5       n[        S5      S[        S5      S[        S5      S[        S5      S[        S	5      S
[        S5      S[        S5      S0nSnU[        U 5      :  Ga  X   [        S5      :w  d  US-   [        U 5      :X  a  UR                  X   5        US-  nMM  XS-      S;   a[  US-   [        U 5      :  aI  [	        S XS-   US-     5       5      (       a*  UR                  [        XS-   US-    S5      5        US-  nM³  XS-      nXB;   d  US;   a!  UR                  UR                  XD5      5        OUR                  XUS-    5        US-  nU[        U 5      :  a  GM  [        U5      $ )NÚaé   Úbé   Úfé   Úné
   Úré   Úté	   Úvé   r	   Ú\é   s   0123é   c              3   ó*   #   • U  H	  oS ;   v •  M     g7f)s   01234567Nr,   )Ú.0Úcs     r6   Ú	<genexpr>Ú _unquote_path.<locals>.<genexpr>t   s   é € Ð?nÒZmÐUVÀ[Ö@PÒZmùs   ‚é   é   s   \")	Ú	bytearrayÚordÚlenÚappendÚallÚintÚgetÚextendÚbytes)r8   ÚresultÚescapesÚiÚescapeds        r6   Ú_unquote_pathr`   c   sg  € Ü‹[€FäˆC‹�!ÜˆC‹�!ÜˆC‹�"ÜˆC‹�"ÜˆC‹�"ÜˆC‹�!ÜˆC‹�"ð€Gð 	
€AØ
Œc�$‹iŒ-Ø‰7”c˜$“iÓ 1 q¡5¬C°«IÓ#5Ø�M‰M˜$™'Ô"Ø�‰FˆAÙØ�A‘‰;˜'Ó! a¨!¡e¬c°$«iÓ&7¼CÑ?nÐZ^ÐcdÑ_dÐghÐklÑglÑZmÓ?n×<nÑ<nØ�M‰Mœ#˜d q¡5¨1¨q©5Ð1°1Ó5Ô6Ø�‰FˆAÙØ˜1‘u‘+ˆØÓ ¨FÓ!2Ø�M‰M˜'Ÿ+™+ gÓ7Õ8à�M‰M˜$ 1 q¡5˜/Ô*Ø	ˆQ‰ˆð Œc�$‹iŽ-ô �‹=Ðr5   Úhas_ab_prefixc                 óü   • U S:X  a  g U R                  S5      (       a$  U R                  S5      (       a  [        U SS 5      n U(       a3  U R                  S5      (       d  U R                  S5      (       d   eU SS  n U $ )Ns	   /dev/nulló   "rJ   éÿÿÿÿs   a/s   b/rQ   )Ú
startswithÚendswithr`   )r8   ra   s     r6   Údecode_pathrg   �   sp   € Øˆ|ÓØà‡��t×Ñ §¡¨t×!4Ñ!4Ü˜T ! B˜ZÓ(ˆæØ�‰˜u×%Ñ%¨¯©¸×)?Ñ)?Ð?Ð?Ø�A�Bˆxˆà€Kr5   c                   óÊ   • \ rS rSr% SrSrS\S'    \r \r \r	 S\
\\S 4      S\
\\S 4      4S jr\S	S
S
4S\\SS\S	4   S\\\
\   \\S4   S	4   S\S\S\SS4S jjrSrg	)r   é�   a/  Common interface for all objects that can be diffed against another object of
compatible type.

:note:
    Subclasses require a :attr:`repo` member, as it is the case for
    :class:`~git.objects.base.Object` instances. For practical reasons we do not
    derive from :class:`~git.objects.base.Object`.
r,   r"   ÚrepoÚargsr9   c                 ó   • U$ )zÁ
:return:
    Possibly altered version of the given args list.
    This method is called right before git command execution.
    Subclasses can use it to alter the behaviour of the superclass.
r,   )Úselfrk   s     r6   Ú_process_diff_argsÚDiffable._process_diff_argsÂ   s	   € ð ˆr5   NFÚotherr!   r    Úpaths.Úcreate_patchÚallow_unsafe_optionsÚkwargsúDiffIndex[Diff]c                 óX  ^• U(       d@  [         R                  " [         R                  " U/T5      U R                  R                  SS9  / nUR                  S5        UR                  S5        [        U4S jS 5       5      (       d  UR                  S5        U(       a#  UR                  S5        UR                  S	5        O"UR                  S
5        UR                  S5        UR                  S5        Ub  [        U[        [        45      (       d  U/nU R                  R                  R                  nU[        L a  UR                  SS5        O•U[        L aE  UR                  SS5        UR                  SS5        U R                  R                  R                  nOGUbD  UR                  SS5        UR                  SU5        U R                  R                  R                  nUR                  SU 5        U(       a"  UR                  S5        UR!                  U5        STS'   U R#                  U5      nU(       a  U R                  R                  SS9  U" U0 TD6nU(       a  [$        R&                  O[$        R(                  n	U	" U R                  U5      n
UR+                  5         U
$ )a  Create diffs between two items being trees, trees and index or an index and
the working tree. Detects renames automatically.

:param other:
    This the item to compare us with.

    * If ``None``, we will be compared to the working tree.

    * If a :class:`~git.types.Tree_ish` or string, it will be compared against
      the respective tree.

    * If :const:`INDEX`, it will be compared against the index.

    * If :const:`NULL_TREE`, it will compare against the empty tree.

    This parameter defaults to :const:`INDEX` (rather than ``None``) so that the
    method will not by default fail on bare repositories.

:param paths:
    This a list of paths or a single path to limit the diff to. It will only
    include at least one of the given path or paths.

:param create_patch:
    If ``True``, the returned :class:`Diff` contains a detailed patch that if
    applied makes the self to other. Patches are somewhat costly as blobs have
    to be read and diffed.

:param allow_unsafe_options:
    If ``True``, allow options such as ``--output``, ``--no-index``, and ``-O``
    that can write to or read from arbitrary filesystem paths.

:param kwargs:
    Additional arguments passed to :manpage:`git-diff(1)`, such as ``R=True`` to
    swap both sides of the diff.

:return:
    A :class:`DiffIndex` representing the computed diff.

:note:
    On a bare repository, `other` needs to be provided as :const:`INDEX`, or as
    an instance of :class:`~git.objects.tree.Tree` or
    :class:`~git.objects.commit.Commit`, or a git command error will occur.
Ú46abceflmnpqrstuvwzBCDMNRW)ÚoptionsÚunsafe_optionsÚclusterable_short_optionsz--abbrev=40z--full-indexc              3   ó,   >#   • U  H	  oT;   v •  M     g 7f©Nr,   )rM   Úxrt   s     €r6   rO   Ú Diffable.diff.<locals>.<genexpr>  s   øé € ÐLÒ(K 1˜–;Ò(Kùs   ƒ)Úfind_renamesÚ
no_renamesr&   z-Mz-pz--no-ext-diffz--rawz-zz
--no-colorr	   z--cachedz-rz--rootz--TÚ
as_processzdiff.mnemonicPrefix=false)rN   )r
   Úcheck_unsafe_optionsÚ_option_candidatesrj   Úunsafe_git_diff_optionsrV   ÚanyÚ
isinstanceÚtupleÚlistÚgitÚdiffr   Úinsertr   Ú	diff_treerZ   rn   r   Ú_index_from_patch_formatÚ_index_from_raw_formatÚwait)rm   rp   rq   rr   rs   rt   rk   Údiff_cmdÚprocÚdiff_methodÚindexs        `     r6   rŠ   ÚDiffable.diffÎ   s	  ø€ öf $Ü×$Ò$Ü×.Ò.°¨w¸Ó?Ø#Ÿy™y×@Ñ@Ø*Fòð 13ˆØ�‰�MÔ"Ø�‰�NÔ#ô ÔLÑ(KÓL×LÑLØ�K‰K˜ÔæØ�K‰K˜ÔØ�K‰K˜Õ(à�K‰K˜Ô Ø�K‰K˜Ôð 	�‰�LÔ!àÑ¤Z°¼¼t°}×%EÑ%EØ�GˆEà—9‘9—=‘=×%Ñ%ˆØ”EŠ>Ø�K‰K˜˜:Õ&Ø”iÒØ�K‰K˜˜4Ô Ø�K‰K˜˜8Ô$Ø—y‘y—}‘}×.Ñ.‰HØÑØ�K‰K˜˜4Ô Ø�K‰K˜˜5Ô!Ø—y‘y—}‘}×.Ñ.ˆHà�‰�A�tÔö Ø�K‰K˜ÔØ�K‰K˜Ôð  $ˆˆ|ÑØ×&Ñ& tÓ,ˆÞØ�I‰I�M‰MÐ7ˆMÑ8Ù˜Ð( Ñ(ˆæ7C”d×3Ò3Ì×IdÑIdˆÙ˜DŸI™I tÓ,ˆà�	‰	ŒØˆr5   )r-   r.   r/   r0   r1   Ú	__slots__Ú__annotations__r   r   ÚIndexr   r   r   rn   r   Ústrr   Úboolr   rŠ   r4   r,   r5   r6   r   r   �   sô   ‡ ñð €Ià
ƒLØRà€Iðð €Eðð €Eðð
à�5˜ :Ð-Ñ.Ñ/ð
ð 
ˆe�H˜jÐ(Ñ)Ñ	*ô
ð DIØMQØ"Ø%*ñnà�] F¨H°c¸4Ð?Ñ@ðnð �X˜t H™~¨u°X¸s°]Ñ/CÀTÐIÑJðnð ð	nð
 #ðnð ðnð 
÷nð nr5   r   ÚT_Diffr   )Úboundc                   óN   • \ rS rSr% SrSr\\S      \S'    S\	S\
\   4S jrSrg)	r   iB  z�An index for diffs, allowing a list of :class:`Diff`\s to be queried by the diff
properties.

The class improves the diff handling convenience.
)r#   r%   r$   r'   r&   r(   Úchange_typer9   c              #   ó  #   • XR                   ;  a  [        SU-  5      eU  HÛ  nUR                   U:X  a  Uv •  M  US:X  a  UR                  (       a  Uv •  M6  US:X  a  UR                  (       a  Uv •  MS  US:X  a  UR                  (       a  Uv •  Mp  US:X  a  UR
                  (       a  Uv •  M�  US:X  d  M•  UR                  (       d  M¨  UR                  (       d  M»  UR                  UR                  :w  d  M×  Uv •  MÝ     g7f)aG  
:return:
    Iterator yielding :class:`Diff` instances that match the given `change_type`

:param change_type:
    Member of :attr:`DiffIndex.change_type`, namely:

    * 'A' for added paths
    * 'D' for deleted paths
    * 'R' for renamed paths
    * 'M' for paths with modified data
    * 'T' for changed in the type paths
zInvalid change type: %sr#   r$   r%   r'   r&   N)r�   Ú
ValueErrorÚnew_fileÚdeleted_fileÚcopied_fileÚrenamed_fileÚa_blobÚb_blob)rm   r�   Údiffidxs      r6   Úiter_change_typeÚDiffIndex.iter_change_typeS  sÄ   é € ð ×.Ñ.Ó.ÜÐ6¸ÑDÓEÐEãˆGØ×"Ñ" kÓ1Ø”Ø Ó#¨×(8×(8Ø”Ø Ó#¨×(<×(<Ø”Ø Ó#¨×(;×(;Ø”Ø Ó#¨×(<×(<Ø”Ø Õ#¨¯¯©¸7¿>¿>¹>ÈgÏnÉnÐ`g×`nÑ`nÕNnØ”ò ùs   ‚B1DÂ7DÃ
DÃDÃ9	Dr,   N)r-   r.   r/   r0   r1   r�   r   r   r–   ÚLit_change_typer   rš   r§   r4   r,   r5   r6   r   r   B  s=   ‡ ñð Db€K�˜'Ð">Ñ?Ñ@Óaðð¨Oð ÀÈÑ@P÷ r5   r   c                    óž  • \ rS rSrSr\R                  " S\R                  \R                  -  5      r	Sr
SrSrSSS	\\   S
\\   S\\\S4   S\\\S4   S\\\S4   S\\\S4   S\S\S\S\\   S\\   S\\\S4   S\\   S\\   SS4 S jrS\S\4S jrS\S\4S jrS\4S jrS\4S jr\S\\   4S j5       r\S\\   4S  j5       r\S\\   4S! j5       r\S\\   4S" j5       r\S\4S# j5       r\S\4S$ j5       r \!S%\S&\S'\S\\   4S( j5       r"\!SSS)\S*   S\#S    4S+ j5       r$\%S,\SSS-\#S    SS4S. j5       r&\!S1S/ j5       r'S0r(g)2r   it  al  A Diff contains diff information between two Trees.

It contains two sides a and b of the diff. Members are prefixed with "a" and "b"
respectively to indicate that.

Diffs keep information about the changed blob objects, the file mode, renames,
deletions and new files.

There are a few cases where ``None`` has to be expected as member variable value:

New File::

    a_mode is None
    a_blob is None
    a_path is None

Deleted File::

    b_mode is None
    b_blob is None
    b_path is None

Working Tree Blobs:

    When comparing to working trees, the working tree blob will have a null hexsha
    as a corresponding object does not yet exist. The mode will be null as well. The
    path will be available, though.

    If it is listed in a diff, the working tree version of the file must differ from
    the version in the index or tree, and hence has been modified.
s  
                                ^diff[ ]--git
                                    [ ](?P<a_path_fallback>"?[ab]/.+?"?)[ ](?P<b_path_fallback>"?[ab]/.+?"?)\n
                                (?:^old[ ]mode[ ](?P<old_mode>\d+)\n
                                   ^new[ ]mode[ ](?P<new_mode>\d+)(?:\n|$))?
                                (?:^similarity[ ]index[ ]\d+%\n
                                   ^rename[ ]from[ ](?P<rename_from>.*)\n
                                   ^rename[ ]to[ ](?P<rename_to>.*)(?:\n|$))?
                                (?:^new[ ]file[ ]mode[ ](?P<new_file_mode>.+)(?:\n|$))?
                                (?:^deleted[ ]file[ ]mode[ ](?P<deleted_file_mode>.+)(?:\n|$))?
                                (?:^similarity[ ]index[ ]\d+%\n
                                   ^copy[ ]from[ ].*\n
                                   ^copy[ ]to[ ](?P<copied_file_name>.*)(?:\n|$))?
                                (?:^index[ ](?P<a_blob_id>[0-9A-Fa-f]+)
                                    \.\.(?P<b_blob_id>[0-9A-Fa-f]+)[ ]?(?P<b_mode>.+)?(?:\n|$))?
                                (?:^---[ ](?P<a_path>[^\t\n\r\f\v]*)[\t\r\f\v]*(?:\n|$))?
                                (?:^\+\+\+[ ](?P<b_path>[^\t\n\r\f\v]*)[\t\r\f\v]*(?:\n|$))?
                            Ú(0000000000000000000000000000000000000000s                       )r¤   r¥   Úa_modeÚb_modeÚ	a_rawpathÚ	b_rawpathr    r¡   r¢   Úraw_rename_fromÚraw_rename_torŠ   r�   Úscorerj   r"   r®   r¯   Ú	a_blob_idNÚ	b_blob_idr¬   r­   r    r¡   r¢   r°   r±   rŠ   r�   r²   r9   c                 óØ  • Ub  [        U[        5      (       d   eUb  [        U[        5      (       d   eX l        X0l        U(       a  [	        U5      OS U l        U(       a  [	        U5      OS U l        U(       ae  U(       a^  UR                   HN  nUR                  UR                  [        S5      :X  d  M)  UR                  5       (       a  UR                  5       n  O   U   Ub  X@R                  :X  a  S U l        O.[        U[!        U5      U R
                  U R"                  S9U l        U   Ub  XPR                  :X  a  S U l        O.[        U[!        U5      U R                  U R&                  S9U l        X€l        X�l        X l        Ub  [        U[        5      (       d   eUb  [        U[        5      (       d   eU=(       d    S U l        U=(       d    S U l        XÐl        Xàl        Xðl        g )NÚreplace)Úmoder8   )r†   r[   r®   r¯   r   r¬   r­   Ú
submodulesr8   Údecoder   Úmodule_existsÚmoduleÚNULL_HEX_SHAr¤   r   r   Úa_pathr¥   Úb_pathr    r¡   r¢   r°   r±   rŠ   r�   r²   )rm   rj   r®   r¯   r³   r´   r¬   r­   r    r¡   r¢   r°   r±   rŠ   r�   r²   Ú	submodules                    r6   Ú__init__ÚDiff.__init__Á  s•  € ð$ Ñ ¤J¨y¼%×$@Ñ$@Ð@Ð@ØÑ ¤J¨y¼%×$@Ñ$@Ð@Ð@Ø"ŒØ"Œæ17”o fÔ-¸TˆŒÞ17”o fÔ-¸TˆŒö –IØ!Ÿ_œ_�	Ø—>‘> Y×%5Ñ%5´f¸iÓ%HÕHØ ×.Ñ.×0Ñ0Ø(×/Ñ/Ó1˜Ùñ	 -ñ 	ØÑ 	×->Ñ->Ó >ØˆD�Kä˜t¤Z°	Ó%:ÀÇÁÐSW×S^ÑS^Ñ_ˆDŒKáØÑ 	×->Ñ->Ó >ØˆD�Kä˜t¤Z°	Ó%:ÀÇÁÐSW×S^ÑS^Ñ_ˆDŒKà&ŒØ".ÔØ!,Ôð Ñ&¬*°_Äe×*LÑ*LÐLÐLØÑ$¬
°=Ä%×(HÑ(HÐHÐHØ.×6°$ˆÔØ*×2¨dˆÔàŒ	Ø9DÔØ�
r5   rp   c                 ó^   • U R                    H  n[        X5      [        X5      :w  d  M    g   g)NFT)r•   Úgetattr)rm   rp   Únames      r6   Ú__eq__ÚDiff.__eq__þ  s*   € Ø—N”NˆDÜ�tÓ"¤g¨eÓ&:Õ:Ùñ #ð r5   c                 ó   • X:X  + $ r|   r,   )rm   rp   s     r6   Ú__ne__ÚDiff.__ne__  s   € ØÒ"Ð"r5   c                 óT   ^ • [        [        U 4S jT R                   5       5      5      $ )Nc              3   ó<   >#   • U  H  n[        TU5      v •  M     g 7fr|   )rÃ   )rM   rA   rm   s     €r6   rO   Ú Diff.__hash__.<locals>.<genexpr>	  s   øé € ÐC²N¨qœ' $¨×*Ð*²Nùs   ƒ)Úhashr‡   r•   ©rm   s   `r6   Ú__hash__ÚDiff.__hash__  s   ø€ Ü”EÔC°D·N²NÓCÓCÓDÐDr5   c                 óò  • SnU R                   (       a  XR                   R                  -  nO)U R                  (       a  XR                  R                  -  nSnS nSn[        U R                   U R                  4S5       HF  u  pVU(       a  SXeR                  UR
                  4-  nOSU-  n[        [        U5      U5      nX#-  nMH     USSU-  -   -  nU R                  (       a  US	-  nU R                  (       a  US
-  nU R                  (       a!  USU R                  < SU R                  < 3-  nU R                  (       a  USU R                  -  -  nU R                  (       a  USU R                  -  -  nU R                  (       aX  US-  n U[!        U R                  ["        5      (       a  U R                  R%                  [&        5      OU R                  -  nUS-  nX-   $ ! [(         a    US-  n Nf = f)Nz%sÚ r	   )ÚlhsÚrhsz
%s: %o | %sz	
%s: NoneÚ
Ú=z
file deleted in rhsz
file added in rhsz
file z copied from z
file renamed from %rz
file renamed to %rz
---zOMITTED BINARY DATA)r¤   r8   r¥   Úzipr·   ÚhexshaÚmaxrU   r¡   r    r¢   r¾   r½   Úrename_fromÚ	rename_torŠ   r†   r[   r¹   r   ÚUnicodeDecodeError)rm   ÚhÚmsgÚlineÚline_lengthr=   rA   s          r6   Ú__str__ÚDiff.__str__  s±  € ØˆØ�;�;Ø—‘×!Ñ!Ñ!‰AØ�[�[Ø—‘×!Ñ!Ñ!ˆAàˆØˆØˆÜ˜Ÿ™ d§k¡kÐ2°NÖC‰DˆAÞØ&¨!¯V©V°Q·X±XÐ)>Ñ>‘à# aÑ'�äœc $›i¨Ó5ˆKØ‰KŠCñ Dð 	
ˆT�C˜+Ñ%Ñ%Ñ%ˆà××ØÐ*Ñ*ˆCØ�=�=ØÐ(Ñ(ˆCØ××Ù°·´¸d¿k»kÐJÑJˆCØ××ØÐ+¨d×.>Ñ.>Ñ>Ñ>ˆCØ�>�>ØÐ)¨D¯N©NÑ:Ñ:ˆCØ�9�9Ø�7‰NˆCð-Ø´:¸d¿i¹iÌ×3OÑ3O�t—y‘y×'Ñ'¬Ô/ÐUY×U^ÑU^Ñ^�ð �7‰NˆCð ‰wˆøô &ó -ØÐ,Ñ,’ð-ús   ÆAG$ Ç$G6Ç5G6c                 óh   • U R                   (       a   U R                   R                  [        S5      $ S $ ©Nr¶   )r®   r¹   r   rÎ   s    r6   r½   ÚDiff.a_path8  ó$   € à;?¿>¿>ˆt�~‰~×$Ñ$¤V¨YÓ7ÐSÈtÐSr5   c                 óh   • U R                   (       a   U R                   R                  [        S5      $ S $ rä   )r¯   r¹   r   rÎ   s    r6   r¾   ÚDiff.b_path<  ræ   r5   c                 óh   • U R                   (       a   U R                   R                  [        S5      $ S $ rä   )r°   r¹   r   rÎ   s    r6   rÚ   ÚDiff.rename_from@  s)   € àAE×AU×AUˆt×#Ñ#×*Ñ*¬6°9Ó=Ð_Ð[_Ð_r5   c                 óh   • U R                   (       a   U R                   R                  [        S5      $ S $ rä   )r±   r¹   r   rÎ   s    r6   rÛ   ÚDiff.rename_toD  s)   € à?C×?Q×?Qˆt×!Ñ!×(Ñ(¬°Ó;Ð[ÐW[Ð[r5   c                 óN   • [         R                  " S[        SS9  U R                  $ )zÑDeprecated, use :attr:`renamed_file` instead.

:return:
    ``True`` if the blob of our diff has been renamed

:note:
    This property is deprecated.
    Please use the :attr:`renamed_file` property instead.
z9Diff.renamed is deprecated, use Diff.renamed_file insteadrQ   )Ú
stacklevel)ÚwarningsÚwarnÚDeprecationWarningr£   rÎ   s    r6   ÚrenamedÚDiff.renamedH  s'   € ô 	�ŠØGÜØò	
ð
 × Ñ Ð r5   c                 ó4   • U R                   U R                  :g  $ )z::return: ``True`` if the blob of our diff has been renamed)rÚ   rÛ   rÎ   s    r6   r£   ÚDiff.renamed_fileZ  s   € ð ×Ñ 4§>¡>Ñ1Ð1r5   Ú
path_matchÚrename_matchÚpath_fallback_matchc                 ón   • U(       a  [        U5      $ U(       a
  [        USS9$ U(       a  [        U5      $ g )NF)ra   )rg   )Úclsrö   r÷   rø   s       r6   Ú_pick_best_pathÚDiff._pick_best_path_  s2   € æÜ˜zÓ*Ð*æÜ˜|¸5ÑAÐAæÜÐ2Ó3Ð3àr5   r‘   ©r   zGit.AutoInterruptc                 ó`  ^• / n/ mS[         S   SS4U4S jjn[        X#R                  TR                  USS9  SR                  U5      n[	        5       nSnSnS	u  pšS	u  p¼U R
                  R                  U5       GH†  nUR                  5       u  nnnnnnnnnnnnn	n
[        U5      [        U5      [        U5      nnnU R                  U	UU5      n	U R                  U
UU5      n
Ub(  XWR                  5       UR                  5        US
   l        U=(       d&    U=(       d    U	=(       a    U=(       d    U=(       d    UnU=(       d    U=(       d    U=(       d    U
=(       a    UnUR                  [        UU	U
U=(       a    UR                  [        5      U=(       a    UR                  [        5      U=(       a    UR                  [        5      U=(       a    UR                  [        5      UUUUUSSS5      5        UnUnGM‰     U(       a!  U(       a  XXR                  5       S US
   l        U$ )aA  Create a new :class:`DiffIndex` from the given process output which must be
in patch format.

:param repo:
    The repository we are operating on.

:param proc:
    :manpage:`git-diff(1)` process to read from
    (supports :class:`Git.AutoInterrupt <git.cmd.Git.AutoInterrupt>` wrapper).

:return:
    :class:`DiffIndex`
r‘   rý   r9   Nc                 ó8   >• [        U SR                  T5      S9  g ©Nr5   )Ústderr©r   Újoin©r‘   Ústderr_lists    €r6   Úfinalize_process_with_stderrÚCDiff._index_from_patch_format.<locals>.finalize_process_with_stderr€  ó   ø€ Ü˜T¨#¯(©(°;Ó*?Ó@r5   F©Údecode_streamsr5   )NNrd   )r   r   rV   r  r   Ú	re_headerÚfinditerÚgroupsr™   rû   ÚendÚstartrŠ   r   r¹   r   )rú   rj   r‘   Ú	text_listr  Útextr“   Úprevious_headerÚheaderr½   r¾   r¬   r­   Ú_headerÚa_path_fallbackÚb_path_fallbackÚold_modeÚnew_moderÚ   rÛ   Únew_file_modeÚdeleted_file_modeÚcopied_file_namer³   r´   r    r¡   r¢   r  s                               @r6   r�   ÚDiff._index_from_patch_formatl  s0  ø€ ð" "$ˆ	Ø#%ˆð	A¬uÐ5QÑ/Rð 	AÐW[÷ 	Aô 	Ø×"Ñ" K×$6Ñ$6Ð8TÐejò	
ð
 �x‰x˜	Ó"ˆÜ&›[ˆØ59ˆØ,0ˆØ#‰ˆØ#‰ˆØ—}‘}×-Ñ-¨d×3ˆGð  —‘Ó ñØØØØØØØØ!Ø ØØØØØô �]Ó#ÜÐ&Ó'ÜÐ%Ó&ð %0�lˆHð ×(Ñ(¨°¸oÓNˆFØ×(Ñ(¨°¸OÓLˆFð Ñ*Ø!%×&9Ñ&9Ó&;¸g¿m¹m»oÐ!N��b‘	”ð
 ×hÐ!2×h°v×7gÀ6×CfÈX×CfÐYfˆFØ×O˜x×O¨=×O¸V×=NÈˆFØ�L‰LÜØØØØ×: )×"2Ñ"2´6Ó":Ø×: )×"2Ñ"2´6Ó":Ø×4˜vŸ}™}¬VÓ4Ø×4˜vŸ}™}¬VÓ4ØØ ØØØØØØóôð( &ˆOØ‹Fñu 4öx –VØ!§*¡*£, .Ð1ˆE�"‰IŒNð ˆr5   Úlines_bytesr“   c                 óà  • U R                  [        5      nUR                  S5      u    pCUR                  S5       GH¯  nU(       d  M  UR                  S5      u  pdnUR	                  S5      nUR                  S S5      u  p‰p«n[        [        US   5      nSR                  USS  5      nUR                  5       (       a  [        U5      OS nUR                  S5      nUR                  [        5      nUR                  [        5      nS	nS	nS	nS nS nUS
:X  a  S nSnO¤US:X  a  S n
SnO™US:X  aB  SnUR                  SS5      u  nnUR                  [        5      nUR                  [        5      nOQUS:X  aD  UR                  SS5      u  nnUR                  [        5      nUR                  [        5      nUUnnOUS:X  a   [        UUUU
UUU	UUUUUSUU5      nUR                  U5        GM²     g )NÚ:z :Ú rR   r	   rÒ   rJ   rÕ   Fr$   Tr#   r%   r'   r(   )r¹   r   Ú	partitionÚsplitÚrstripr   r©   r  ÚisdigitrX   ÚstripÚencoder   rV   )r  rj   r“   ÚlinesÚ_rß   Úmetar8   r  r  r³   r´   Ú_change_typer�   Ú	score_strr²   r½   r¾   r¡   r    r¢   rÚ   rÛ   Ú
a_path_strÚ
b_path_strrŠ   s                             r6   Ú_handle_diff_lineÚDiff._handle_diff_lineÐ  s  € à×"Ñ"¤6Ó*ˆð —o‘o cÓ*‰ˆˆ1à—K‘K ×(ˆDÞáØ ŸN™N¨6Ó2‰MˆD�TØ—;‘;˜vÓ&ˆDð FJÇZÁZÐPTÐVWÓEXÑBˆH 	°lô ,0´ÀÈaÁÓ+QˆKØŸ™ ¨Q¨RÐ 0Ó1ˆIØ&/×&7Ñ&7×&9Ñ&9”C˜	”N¸tˆEØ—:‘:˜dÓ#ˆDØ—[‘[¤Ó(ˆFØ—[‘[¤Ó(ˆFØ ˆLØˆHØˆKØˆKØˆIð ˜cÓ!Ø �	Ø#‘Ø Ó#Ø �	Ø‘Ø Ó#Ø"�Ø)-¯©°F¸AÓ)>Ñ&�
˜JØ#×*Ñ*¬6Ó2�Ø#×*Ñ*¬6Ó2‘Ø Ó#Ø)-¯©°F¸AÓ)>Ñ&�
˜JØ#×*Ñ*¬6Ó2�Ø#×*Ñ*¬6Ó2�Ø)/°˜Y�˜YØ Ó#àô ØØØØØØØØØØØØØØØóˆDð" �L‰L˜×òA )r5   c                 ó†   ^ ^^^• [        5       m/ mS[        S   SS4U4S jjn[        UU UU4S jTR                  USS9  T$ )	záCreate a new :class:`DiffIndex` from the given process output which must be
in raw format.

:param repo:
    The repository we are operating on.

:param proc:
    Process to read output from.

:return:
    :class:`DiffIndex`
r‘   rý   r9   Nc                 ó8   >• [        U SR                  T5      S9  g r   r  r  s    €r6   r  ÚADiff._index_from_raw_format.<locals>.finalize_process_with_stderr-  r  r5   c                 ó*   >• TR                  U TT5      $ r|   )r.  )Úbytrú   r“   rj   s    €€€r6   Ú<lambda>Ú-Diff._index_from_raw_format.<locals>.<lambda>2  s   ø€ ˜×-Ñ-¨c°4¸Ô?r5   Fr	  )r   r   r   rV   )rú   rj   r‘   r  r“   r  s   ``  @@r6   rŽ   ÚDiff._index_from_raw_format  sT   û€ ô" '›[ˆØ#%ˆð	A¬uÐ5QÑ/Rð 	AÐW[÷ 	Aô 	ØÞ?Ø×ÑØ(Ø ò	
ð ˆr5   )r¤   r¬   r®   r¥   r­   r¯   r�   r¢   r¡   rŠ   r    r°   r±   r²   )rj   r"   r‘   r   r9   ru   ))r-   r.   r/   r0   r1   ÚreÚcompileÚVERBOSEÚ	MULTILINEr  r¼   ÚNULL_BIN_SHAr•   r   r[   r   r˜   r™   r©   rX   rÀ   ÚobjectrÅ   rÈ   rÏ   rá   Úpropertyr½   r¾   rÚ   rÛ   rò   r£   Úclassmethodrû   r   r�   Ústaticmethodr.  rŽ   r4   r,   r5   r6   r   r   t  sÿ  † ñðB —
’
ð	 ð$ 	�
‰
�R—\‘\Ñ!ó'€Ið. €LØ€Lð€Ið";àð;ð ˜E‘?ð;ð ˜E‘?ð	;ð
 ˜˜e TÐ)Ñ*ð;ð ˜˜e TÐ)Ñ*ð;ð �e˜S $Ð&Ñ'ð;ð �e˜S $Ð&Ñ'ð;ð ð;ð ð;ð ð;ð " %™ð;ð   ‘ð;ð �C˜ Ð$Ñ%ð;ð ˜oÑ.ð;ð  ˜‰}ð!;ð" 
ô#;ðz˜Fð  tô ð#˜Fð # tô #ðE˜#ô Eð+˜ô +ðZ ðT˜ ™ó Tó ðTð ðT˜ ™ó Tó ðTð ð`˜X c™]ó `ó ð`ð ð\˜8 C™=ó \ó ð\ð ð!˜ó !ó ð!ð" ð2˜dó 2ó ð2ð ð
¨ð 
¸eð 
ÐZ_ð 
ÐdlÐmrÑdsó 
ó ð
ð ða¨Fð a¸%Ð@\Ñ:]ð aÐbkÐlrÑbsó aó ðaðF ðF uð F°Fð FÀ9ÈVÑCTð FÐY]ó Fó ðFðP óó ór5   )T)9Ú__all__r2   r8  rï   Úgit.cmdr
   r   Ú
git.compatr   Úgit.objects.blobr   Úgit.objects.utilr   Úgit.utilr   r   Útypingr   r   r   r   r   r   r   r   r   r   r   Ú	git.typesr   r   Ú
subprocessr   Úgit.objects.baser   Úgit.objects.commitr    Úgit.objects.treer!   Úgit.repo.baser"   r©   ÚuniqueÚEnumr   r   r–   r   r   r[   r`   r™   rg   r   rš   r   r   r,   r5   r6   Ú<module>rP     s6  ðð dÒ
c€ã Û 	Û ç .Ý Ý !Ý ,ß 1÷÷ ÷ ñ ÷ (æÝ å,Ý)Ý%Ý"àÐ;Ñ<€ð
 ‡�ô�D—I‘Ió ó ðð8 /<×.EÑ.E€	ˆ7�=×*Ñ*Ñ+Ó Eðð ;€Ø /à&3×&9Ñ&9€€wˆ}×"Ñ"Ñ#Ó 9ðð˜ð  %ô ñ<�eð ¨Dð ¸HÀU¹Oõ ÷mñ mñ` 
� Ñ	(€ô.��V‘ô .÷dDò Dr5   