
    ch@	                         S r SS/rSSKJrJr  SSKJrJr  SSKJ	r	  SSK
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   " S S\5      rg)zCModule with our own gitdb implementation - it uses the git command.GitCmdObjectDBGitDB    )OInfoOStream)r   LooseObjectDB)	BadObject)
bin_to_hex
hex_to_bin)GitCommandError)TYPE_CHECKING)PathLike)Gitc                   r   ^  \ rS rSrSrS\SSSS4U 4S jjrS	\S\4S
 jr	S	\S\
4S jrS\S\4S jrSrU =r$ )r      zA database representing the default git object store, which includes loose
objects, pack files and an alternates file.

It will create objects only in the loose object database.
	root_pathgitr   returnNc                 0   > [         TU ]  U5        X l        g)z9Initialize this instance with the root and a git command.N)super__init___git)selfr   r   	__class__s      YC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\git/db.pyr   GitCmdObjectDB.__init__"   s    #	    binshac                 z    U R                   R                  [        U5      5      u  p#n[        [	        U5      X45      $ )z+Get a git object header (using git itself).)r   get_object_headerr	   r   r
   )r   r   hexshatypenamesizes        r   infoGitCmdObjectDB.info'   s2    !%!<!<Z=O!P$Z'88r   c                 |    U R                   R                  [        U5      5      u  p#pE[        [	        U5      X4U5      $ )zIGet git object data as a stream supporting ``read()`` (using git itself).)r   stream_object_datar	   r   r
   )r   r   r    r!   r"   streams         r   r'   GitCmdObjectDB.stream,   s5    )-)E)EjQWFX)Y&$z&)86BBr   partial_hexshac                      U R                   R                  U5      u  p#n[        U5      $ ! [        [        4 a  n[        U5      UeSnAff = f)a  
:return:
    Full binary 20 byte sha from the given partial hexsha

:raise gitdb.exc.AmbiguousObjectName:

:raise gitdb.exc.BadObject:

:note:
    Currently we only raise :exc:`~gitdb.exc.BadObject` as git does not
    communicate ambiguous objects separately.
N)r   r   r
   r   
ValueErrorr   )r   r)   r    	_typename_sizees         r   partial_to_complete_sha_hex*GitCmdObjectDB.partial_to_complete_sha_hex3   sM    	3'+yy'B'B>'R$Fuf%%, 	3N+2	3s   (+ AAA)r   )__name__
__module____qualname____firstlineno____doc__r   r   bytesr   r#   r   r'   strr/   __static_attributes____classcell__)r   s   @r   r   r      sc    (  4 
95 9U 9
CU Cw C3# 3% 3 3r   N)r5   __all__
gitdb.baser   r   gitdb.dbr   r   	gitdb.excr   git.utilr	   r
   git.excr   typingr   	git.typesr   git.cmdr   r    r   r   <module>rD      s>    JW
% % )  + # ! 
)3] )3r   