o Qa@sTddlmZzddlZWn eyddlZYnwddlmZGdddeZdS))absolute_importN) deunicodisec@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS) HashCachecCs t|_dS)N)dictinodes)selfr ./usr/lib/python3/dist-packages/S3/HashCache.py__init__ s zHashCache.__init__cCsf|dks|dkr dS||jvrt|j|<||j|vr$t|j||<t||d|j|||<dS)Nr)md5size)rr)rdevinodemtimer r r r r adds   z HashCache.addcCsDz|j|||}|d|krWdSW|dSty!YdSw)Nr r )r Exceptionrrrrr dr r r r s  z HashCache.md5cCsVt|jD]#}t|j|D]}t|j||D] }d|j|||d<qqqdS)NTpurgetupler)rricr r r mark_all_for_purge!szHashCache.mark_all_for_purgecCs`z |j|||}Wn tyYdSw|d|kr,d|vr.|j|||d=dSdSdS)Nr r)rKeyErrorrr r r unmark_for_purge's zHashCache.unmark_for_purgecCsft|jD]+}t|j|D]!}t|j||D]}d|j|||vr.|j||=nqqqdS)Nrr)rrrmr r r r/s zHashCache.purgecCsNt|jdd}tt|d}t||WddS1s wYdS)Nr)rversionwb)rropenrpickledump)rfrfpr r r save7s"zHashCache.savecCsdtt|d }t|}Wdn1swY|ddkr.d|vr0|d|_dSdSdS)Nrbrrr)r rr!loadgetr)rr#r$rr r r r'<s  zHashCache.loadN) __name__ __module__ __qualname__r rr rrrr%r'r r r r r s  r) __future__rcPickler! ImportErrorUtilsrobjectrr r r r s