§ Z¶<½d’oãó„—dZddlmZddlmZmZddlmZmZddl m Z m Z ddl m Z mZddlmZdZGd „d ee¦«Zd S) z*Contains the MemoryDatabase implementationé)Ú LooseObjectDB)Ú ObjectDBRÚ ObjectDBW)ÚOStreamÚIStream)Ú BadObjectÚUnsupportedOperation)ÚZippedStoreShaWriterÚDecompressMemMapReader)ÚBytesIO)ÚMemoryDBcóR‡—eZdZdZˆfd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z ˆxZ S) r a/A memory database stores everything to memory, providing fast IO and object retrieval. It should be used to buffer results and obtain SHAs before writing it to the actual physical storage, as it allows to query whether object already exists in the target storage before introducing actual IOcó–•—t¦« ¦«td¦«|_t ¦«|_dS)Nzpath/doesnt/matter)ÚsuperÚ__init__rÚ_dbÚdictÚ_cache)ÚselfÚ __class__s €ú‹/srv/buildsys-work-dir/castor/build_node/builder-2/WGSG1/unpkd_srcs/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/gitdb/db/mem.pyrzMemoryDB.__init__'s:ø€Ý ‰Œ×ÒÑÔÐÝ Ð!5Ñ6Ô6ˆŒõ‘f”fˆŒ ˆ ˆ ócó —td¦«‚)Nz$MemoryDB's always stream into memory)r )rÚstreams rÚ set_ostreamzMemoryDB.set_ostream.s€Ý"Ð#IÑJÔJÐJrcó~—t¦«}|j |¦«|j |¦«}| ¦«| d¦«t | ¦«d¬¦«}t|j |j |j |¦«|j |j <|S)NrF)Úclose_on_deletion) r rrÚstoreÚcloseÚseekr ÚgetvaluerÚbinshaÚtypeÚsizer)rÚistreamÚzstreamÚ decomp_streams rrzMemoryDB.store1s›€Ý&Ñ(Ô(ˆØ Œ×Ò˜WÑ%Ô%Ð%à”(—.’. Ñ)Ô)ˆØ Š ‰ŒˆØ Š Q‰Œˆõ/¨w×/?Ò/?Ñ/AÔ/AÐUZÐ[Ñ[Ô[ˆ Ý&-¨g¬n¸g¼lÈGÌLÐZgÑ&hÔ&hˆŒ G”NÑ#àˆrcó—||jvS©N)r©rÚshas rÚ has_objectzMemoryDB.has_object@s€Ød”kÐ!Ð!rcó,—| |¦«Sr))rr*s rÚinfoz MemoryDB.infoCs€à{Š{˜3ÑÔÐrcóš— |j|}|j d¦«|S#t$r}t |¦«|‚d}~wwxYw)Nr)rrr ÚKeyErrorr)rr+ÚostreamÚes rrzMemoryDB.streamGs[€ð (Ø”k #Ô&ˆGà ŒN× Ò  Ñ "Ô "Ð "؈NøÝð (ð (ð (ݘC‘.”. aÐ 'øøøøð (øøøs‚(+« A µAÁA có*—t|j¦«Sr))Úlenr©rs rr$z MemoryDB.sizeQs€Ý4”;ÑÔÐrcó4—|j ¦«Sr))rÚkeysr5s rÚsha_iterzMemoryDB.sha_iterTs€ØŒ{×ÒÑ!Ô!Ð!rcó"—d}|D]‰}| |¦«rŒ| |¦«}t|j ¦«¦«}t |j|j||¦«}| |¦«|dz }ŒŠ|S)arCopy the streams as identified by sha's yielded by sha_iter into the given odb The streams will be copied directly **Note:** the object will only be written if it did not exist in the target db :return: amount of streams actually copied into odb. If smaller than the amount of input shas, one or more objects did already exist in odbré)r,rr Údatarr#r$r)rr8ÚodbÚcountr+r1Úsior%s rÚ stream_copyzMemoryDB.stream_copyXs–€ðˆØð ð ˆCØ~Š~˜cÑ"Ô"ð Øð—k’k #Ñ&Ô&ˆGå˜'œ.×-Ò-Ñ/Ô/Ñ0Ô0ˆCݘgœl¨G¬L¸#¸sÑCÔCˆGà IŠIgÑ Ô Ð Ø Q‰JˆEˆEàˆ r)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr,r.rr$r8r?Ú __classcell__)rs@rr r s¿ø€€€€€ðAðAð ðððððKðKðKð ð ð ð"ð"ð"ð ð ð ð(ð(ð(ð ð ð ð"ð"ð"ðððððððrr N)rCÚgitdb.db.looserÚ gitdb.db.baserrÚ gitdb.baserrÚ gitdb.excrr Ú gitdb.streamr r Úior Ú__all__r ©rrúrMsðð 1Ð0Ø(Ð(Ð(Ð(Ð(Ð(ððððððððð ðððððððð ðððððððð ðððððððð ÐÐÐÐÐà €ðMðMðMðMðMˆy˜)ñMôMðMðMðMr