Ë
    pPêj¶	  ã                  óL   — d Z ddlmZ ddlZddlZd	d„Zd
d„Zdd„Zdd„Zd	d„Z	y)zGit utilities.é    )ÚannotationsNc                ó|   — t         j                  j                  t         j                  j                  | d«      «      S )z3Is the given directory version-controlled with git?ú.git)ÚosÚpathÚexistsÚjoin©Údirs    úM/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/git.pyÚis_git_repor   
   s$   € ä�7‰7�>‰>œ"Ÿ'™'Ÿ,™, s¨FÓ3Ó4Ð4ó    c                 óz   — 	 t        j                  ddg«       y# t         j                  $ r Y yt        $ r Y yw xY w)zCan we run the git executable?Úgitz--helpTF)Ú
subprocessÚcheck_outputÚCalledProcessErrorÚOSError© r   r   Úhave_gitr      s@   € ðÜ×Ñ ¨Ð 1Ô2ØøÜ×(Ñ(ò ÙÜò Ùðús   ‚ š:¯:¹:c                óP   — t        j                  g d¢| ¬«      j                  «       S )z.Get the SHA-1 of the HEAD of a git repository.)r   z	rev-parseÚHEAD©Úcwd©r   r   Ústripr
   s    r   Úgit_revisionr      s   € ä×"Ñ"Ò#?ÀSÔI×OÑOÓQÐQr   c                ó  — 	 t         j                  j                  | dd«      }t        |d«      5 }|j	                  «       j                  «       }ddd«       j                  d«      �rB|dd }t         j                  j                  | dt        j                  |«      «      }t         j                  j                  |«      r4t        |d«      5 }|j	                  «       j                  «       cddd«       S t         j                  j                  | dd«      }t         j                  j                  |«      rut        |d«      5 }|D ]Y  }|j                  d«      rŒ|j                  «       j                  «       }t        |«      d	k\  sŒB|d
   |k(  sŒK|d   c cddd«       S  	 ddd«       yyt        |«      dk(  rt        d„ |D «       «      r|S y# 1 sw Y   �Œ�xY w# 1 sw Y   ŒïxY w# 1 sw Y   yxY w# t        $ r Y yw xY w)zêGet the SHA-1 of HEAD by reading git files directly, without a subprocess.

    Returns None if the revision cannot be determined this way (e.g. unusual
    git state), in which case the caller should fall back to git_revision().
    r   r   ÚrbNs   ref: é   zpacked-refsó   #é   é   r   é(   c              3  ó6   K  — | ]  }t        |«      d v –— Œ y­w)Ú0123456789abcdefN)Úchr)Ú.0Úcs     r   ú	<genexpr>z-git_revision_no_subprocess.<locals>.<genexpr>;   s   è ø€ Ò"NÀA¤3 q£6Ð-?Ô#?Ñ"Nùs   ‚)r   r   r	   ÚopenÚreadr   Ú
startswithÚfsdecoder   ÚsplitÚlenÚallr   )	r   Ú	head_pathÚfÚheadÚrefÚref_pathÚpacked_refs_pathÚlineÚpartss	            r   Úgit_revision_no_subprocessr:      sª  € ðÜ—G‘G—L‘L  f¨fÓ5ˆ	Ü�)˜TÓ"ð 	$ aØ—6‘6“8—>‘>Ó#ˆD÷	$à�?‰?˜8Õ$Ø�q�r�(ˆCÜ—w‘w—|‘| C¨´·±¸SÓ1AÓBˆHÜ�w‰w�~‰~˜hÔ'Ü˜( DÓ)ð ,¨QØŸ6™6›8Ÿ>™>Ó+÷,ñ ,ô  "Ÿw™wŸ|™|¨C°¸ÓGÐÜ�w‰w�~‰~Ð.Ô/ÜÐ*¨DÓ1ð ,°QØ !ò ,˜ØŸ?™?¨4Ô0Ø$Ø $§
¡
£× 2Ñ 2Ó 4˜Ü˜u›:¨›?¨u°Q©x¸3«Ø#(¨¡8™O÷,ñ ,ñ,÷,ñ äˆt‹9˜Š?œsÑ"NÈÔ"NÔNØˆKØ÷-	$ñ 	$ú÷,ð ,ú÷
,ð ûô
 ò Ùðús…   ‚-G2 ¯GÁA>G2 ÃGÃ*	G2 Ã4AG2 Å AG&ÆG&ÆG&Æ	G2 ÆG&Æ G2 Æ*!G2 ÇGÇG2 ÇG#ÇG2 Ç&G/Ç+G2 Ç/G2 Ç2	G>Ç=G>c                óZ   — t        j                  g d¢| ¬«      }|j                  «       dk7  S )z7Check whether a git repository has uncommitted changes.)r   Ústatusz-unoz--porcelainr   r   r   )r   Úoutputs     r   Úis_dirtyr>   B   s'   € ä×$Ñ$Ò%MÐSVÔW€FØ�<‰<‹>˜SÑ Ð r   )r   ÚstrÚreturnÚbool)r@   rA   )r   r?   r@   Úbytes)r   r?   r@   zbytes | None)
Ú__doc__Ú
__future__r   r   r   r   r   r   r:   r>   r   r   r   ú<module>rE      s.   ðÙ õ #ã 	Û ó5ó
óRó
 ôF!r   