Ë
    ómxij
  ã                   ón   — d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlZdZ G d„ d	eee«      Zy)
é    )Ú
CompoundDBÚ	ObjectDBWÚ
FileDBBase)ÚLooseObjectDB)ÚPackedDB)ÚReferenceDB)ÚInvalidDBRootN)ÚGitDBc                   óŠ   ‡ — e Zd ZdZeZeZeZ	dZ
dZej                  j                  dd«      Zˆ fd„Zˆ fd„Zd„ Zd	„ Zd
„ Zˆ xZS )r
   a  A git-style object database, which contains all objects in the 'objects'
    subdirectory

    ``IMPORTANT``: The usage of this implementation is highly discouraged as it fails to release file-handles.
    This can be a problem with long-running processes and/or big repositories.
    ÚpackÚ ÚinfoÚ
alternatesc                 ó$   •— t         ‰| �  |«       y)z/Initialize ourselves on a git objects directoryN)ÚsuperÚ__init__)ÚselfÚ	root_pathÚ	__class__s     €úC/home/htdocs/ttos/venv/lib/python3.12/site-packages/gitdb/db/git.pyr   zGitDB.__init__(   s   ø€ ä‰Ñ˜Õ#ó    c                 ó^  •— |dk(  s|dk(  �rt        «       | _        d }| j                  | j                  f| j                  | j
                  f| j                  | j                  ffD ]u  \  }}| j                  |«      }t        j                  j                  |«      sŒ7| j                  j                   ||«      «       || j
                  u sŒg| j                  d   }Œw | j                  st        | j                  «       «      ‚|�t        |d«      sJ d«       ‚|| _        y t"        ‰| �I  |«       y )NÚ_dbsÚ	_loose_dbéÿÿÿÿÚstorez(First database needs store functionality)Úlistr   Ú	packs_dirÚ	PackDBClsÚ	loose_dirÚ
LooseDBClsÚalternates_dirÚReferenceDBClsÚdb_pathÚosÚpathÚexistsÚappendr	   r   Úhasattrr   r   Ú_set_cache_)r   ÚattrÚloose_dbÚsubpathÚdbclsr&   r   s         €r   r*   zGitDB._set_cache_,   s  ø€ Ø�6Š>˜T [Ó0Ü›ˆDŒIØˆHØ$(§N¡N°D·N±NÐ#CØ$(§N¡N°D·O±OÐ#DØ$(×$7Ñ$7¸×9LÑ9LÐ#Mð#Oò 1‘�˜ð —|‘| GÓ,�Ü—7‘7—>‘> $Õ'Ø—I‘I×$Ñ$¡U¨4£[Ô1Ø §¡Ò/Ø#'§9¡9¨R¡=™ð1ð —9’9Ü# D§N¡NÓ$4Ó5Ð5ð Ð'¬G°H¸gÔ,FÐrÐHrÓrÐFð &ˆD�Nä‰GÑ Õ%r   c                 ó8   — | j                   j                  |«      S ©N)r   r   )r   Úistreams     r   r   zGitDB.storeL   s   € Ø�~‰~×#Ñ# GÓ,Ð,r   c                 ó6   — | j                   j                  «       S r0   )r   Úostream)r   s    r   r3   zGitDB.ostreamO   s   € Ø�~‰~×%Ñ%Ó'Ð'r   c                 ó8   — | j                   j                  |«      S r0   )r   Úset_ostream)r   r3   s     r   r5   zGitDB.set_ostreamR   s   € Ø�~‰~×)Ñ)¨'Ó2Ð2r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r!   r   r#   r   r    r%   r&   Újoinr"   r   r*   r   r3   r5   Ú__classcell__)r   s   @r   r
   r
      sS   ø„ ñð €IØ€JØ €Nð €IØ€IØ—W‘W—\‘\ &¨,Ó7€Nô$ô&ò@-ò(ö3r   r
   )Úgitdb.db.baser   r   r   Úgitdb.db.looser   Úgitdb.db.packr   Úgitdb.db.refr   Ú	gitdb.excr	   r%   Ú__all__r
   © r   r   ú<module>rC      s5   ð÷
ñ õ )Ý "Ý $å #ã 	à
€ô=3ˆJ˜	 :õ =3r   