§ |<ˆj“ãóò—ddlmZmZmZddlmZmZddlmZm Z m Z m Z ddl m Z mZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZm Z m!Z!m"Z"ddl#m$Z$ddl%Z%ddl&Z&ddl'Z'd Z(Gd „d eee¦«Z)dS) é)Ú FileDBBaseÚ ObjectDBRÚ ObjectDBW)Ú BadObjectÚAmbiguousObjectName)ÚDecompressMemMapReaderÚFDCompressedSha1WriterÚFDStreamÚ Sha1Writer)ÚOStreamÚOInfo)Úfile_contents_ro_filepathÚENOENTÚ hex_to_binÚ bin_to_hexÚexistsÚchmodÚisdirÚisfileÚremoveÚmkdirÚrenameÚdirnameÚbasenameÚjoin)Ú chunk_sizeÚloose_object_header_infoÚ write_objectÚ stream_copy)Ú force_bytesN)Ú LooseObjectDBc󲇗eZdZdZeZedd¦«Zej dkr edd¦«Zˆfd„Z d„Z d„Z d „Z d „Zˆfd „Zd „Zd „Zd„Zd„Zd„Zd„ZˆxZS)r!z/A database which operates on loose object filesÚ444éÚntÚ644c󦕗t¦« |¦«t¦«|_t t dd¦«|_dS)NÚ O_NOATIMEr)ÚsuperÚ__init__ÚdictÚ_hexsha_to_fileÚgetattrÚosÚ_fd_open_flags)ÚselfÚ root_pathÚ __class__s €ú`/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/gitdb/db/loose.pyr*zLooseObjectDB.__init__MsCø€Ý ‰Œ×Ò˜Ñ#Ô#Ð#Ý#™vœvˆÔõ&¥b¨+°qÑ9Ô9ˆÔÐÐócóB—t|dd…|dd…¦«S)z{ :return: path at which the object with the given hexsha would be stored, relative to the database rootNé)r)r0Úhexshas r3Ú object_pathzLooseObjectDB.object_pathVs$€õ�F˜2˜A˜2”J  q r r¤ Ñ+Ô+Ð+r4cóâ— |j|S#t$rYnwxYw| | |¦«¦«}t |¦«r ||j|<|St |¦«‚)z… :return: readable object path to the object identified by hexsha :raise BadObject: If the object file does not exist)r,ÚKeyErrorÚdb_pathr8rr)r0r7Úpaths r3Úreadable_db_object_pathz%LooseObjectDB.readable_db_object_path\s„€ð ØÔ'¨Ô/Ð /øÝð ð ð Ø ˆDð øøøð �|Š|˜D×,Ò,¨VÑ4Ô4Ñ5Ô5ˆÝ �$‰<Œ<ð Ø+/ˆDÔ  Ñ (؈Kå˜ÑÔÐs ‚ � ›cóÞ—d}| ¦«D]D}t|¦« t|¦«¦«r|�t |¦«‚|}ŒE|€t |¦«‚|S)zÎ:return: 20 byte binary sha1 string which matches the given name uniquely :param name: hexadecimal partial name (bytes or ascii string) :raise AmbiguousObjectName: :raise BadObject: N)Úsha_iterrÚ startswithr rr)r0Úpartial_hexshaÚ candidateÚbinshas r3Úpartial_to_complete_sha_hexz)LooseObjectDB.partial_to_complete_sha_hexnsz€ð ˆ Ø—m’m‘o”oð #ð #ˆFݘ&Ñ!Ô!×,Ò,­[¸Ñ-HÔ-HÑIÔIð #àÐ(Ý-¨nÑ=Ô=Ð=Ø"� øà РݘNÑ+Ô+Ð +ØÐr4cól—| | t|¦«¦«¦«} t||j¬¦«S#t $r\}|jtkr7 t|¦«cYd}~S#t $r}t|¦«|‚d}~wwxYwt|¦«|‚d}~wwxYw)z~ :return: memory map of that file to allow random read access :raise BadObject: if object could not be located)ÚflagsN) r;r8rrr/ÚOSErrorÚerrnorr)r0Úshar;ÚeÚnew_es r3Ú_map_loose_objectzLooseObjectDB._map_loose_object�sÏ€ð—,’,˜t×/Ò/µ ¸3±´Ñ@Ô@ÑAÔAˆð ,Ý,¨W¸DÔå#Ô+°5¸d¼oÐNÑNÔN‰LˆB�àŒ~Ð%Ý/°Ñ3Ô3��å! "™œ�ð ð #Ø”>Ð-õ  ¤ ¨f¬l½C¼KÈÔI_Ñ`Ô`Ð`Ð`õ! ¤¨w¬|¸W¼\È6Ì<Ø,0Ô,BðDñDôDðDðð#Ø—L’L‘N”N�Nøøðð#Ø—L’L‘N”N�N�Nð#øøøøøð Øð $Ý” ˜(Ñ#Ô#Ð#Ø øøøðˆØ Œ>ð -Ø”^ˆFˆFà—Z’Z t�ZÑ,Ô,ˆFð ð 3Ø—|’| D×$4Ò$4°VÑ$<Ô$<Ñ=Ô=ˆHݘhÑ'Ô'ˆGݘ‘>”>ð Ý�g‘”�õ�hÑÔð +Ý�xÑ Ô Ð Ð å�x Ñ*Ô*Ð*õ �(˜DÔ1Ñ 2Ô 2Ð 2õ$ FÑ+Ô+ˆŒØˆsÁA CÂ?C3ÃC/Ã/C3Ã3D c#óK—tj| ¦«¦«D]V\}}}t|¦«}t |¦«dkrŒ)|D]*}t |¦«dkrŒt ||z¦«V—Œ+ŒWdS)Nr6é&)r.Úwalkr1rÚlenr)r0ÚrootÚdirsÚfilesÚ root_baseÚfs r3r?zLooseObjectDB.sha_iterósšèè€å!#¤¨¯ªÑ)9Ô)9Ñ!:Ô!:ð 0ð 0Ñ ˆD�$˜Ý  ™œˆIÝ�9‰~Œ~ Ò"Ð"Øàð 0ð 0�Ý�q‘6”6˜R’<�<ØÝ  ¨Q¡Ñ/Ô/Ð/Ð/Ð/Ð/ð 0ð  0ð 0r4có^—tt| ¦«¦«¦«S)N)ryÚtupler?)r0s r3rXzLooseObjectDB.sizes €Ý•5˜Ÿš™œÑ)Ô)Ñ*Ô*Ð*r4)rPÚ __module__Ú __qualname__Ú__doc__rrmÚintrnr.Únamer*r8r=rDrLrQrYrRr_rur?rXÚ __classcell__)r2s@r3r!r!?s#ø€€€€€à9Ð9ð#Ðð�s˜5 !‘}”}ÐØ „w�$‚€Ø˜3˜u a™=œ=Ðð:ð:ð:ð:ð:ð,ð,ð,ð  ð ð ð$ððð&,ð,ð,ð*+ð+ð+ð+ð+ð ððð0ð0ð0ð ððð>ð>ð>ð@ 0ð 0ð 0ð+ð+ð+ð+ð+ð+ð+r4r!)*Ú gitdb.db.baserrrÚ gitdb.excrrÚ gitdb.streamrr r r Ú gitdb.baser r Ú gitdb.utilrrrrrrrrrrrrrrÚ gitdb.funrrrrÚgitdb.utils.encodingr rfr.rkÚ__all__r!©r4r3úr�sðð ðððððððððððððððððð ðððððððððððððððððððð ðððððððððððððððððððððððððððððððð"ðððððððððððð-Ð,Ð,Ð,Ð,Ð,à€€€Ø € € € Ø € € € ð €ðC+ðC+ðC+ðC+ðC+�J  ¨9ñC+ôC+ðC+ðC+ðC+r4