U ,aO!@sddlmZmZddlmZddlZddddgZGdd d ejj Z Gd ddejj Z Gd dde Z Gd dde Z dddZdS))Pickler Unpickler)BytesIONShelf BsdDbShelfDbfilenameShelfopenc@s4eZdZddZeZZZZZZ ddZ dS) _ClosedDictcGs tddS)Nz!invalid operation on closed shelf) ValueError)selfargsr +/opt/alt/python38/lib64/python3.8/shelve.pyclosedEsz_ClosedDict.closedcCsdS)Nzr r r r r__repr__Isz_ClosedDict.__repr__N) __name__ __module__ __qualname__r__iter____len__ __getitem__ __setitem__ __delitem__keysrr r r rr Bsr c@sxeZdZdddZddZdd Zd d Zdd d ZddZddZ ddZ ddZ ddZ ddZ ddZddZdS) rNFutf-8cCs.||_|dkrd}||_||_i|_||_dS)N)dict _protocol writebackcache keyencodingr rprotocolrr!r r r__init__TszShelf.__init__ccs"|jD]}||jVq dSN)rrdecoder!)r kr r rr^szShelf.__iter__cCs t|jSr%)lenrrr r rrbsz Shelf.__len__cCs||j|jkSr%encoder!rr keyr r r __contains__eszShelf.__contains__cCs||j|jkr||S|Sr%r))r r,defaultr r rgethsz Shelf.getcCsZz|j|}WnFtk rTt|j||j}t|}|jrP||j|<YnX|Sr%) r KeyErrorrrr*r!rloadrr r,valuefr r rrms zShelf.__getitem__cCsF|jr||j|<t}t||j}||||j||j <dSr%) rr rrrdumpgetvaluerr*r!)r r,r3r4pr r rrws    zShelf.__setitem__cCs6|j||j=z |j|=Wntk r0YnXdSr%)rr*r!r r0r+r r rrs  zShelf.__delitem__cCs|Sr%r rr r r __enter__szShelf.__enter__cCs |dSr%)close)r typer3 tracebackr r r__exit__szShelf.__exit__c Csf|jdkrdSz0|z|jWntk r:YnXW5z t|_Wnd|_YnXXdSr%)rr syncr9AttributeErrorrr r rr9s   z Shelf.closecCst|dsdS|dS)Nr)hasattrr9rr r r__del__s z Shelf.__del__cCsT|jr:|jr:d|_|jD]\}}|||<qd|_i|_t|jdrP|jdS)NFTr=)rr itemsr?rr=)r r,entryr r rr=s   z Shelf.sync)NFr)N)rrrr$rrr-r/rrrr8r<r9r@r=r r r rrMs   c@s>eZdZdddZddZdd Zd d Zd d ZddZdS)rNFrcCst|||||dSr%)rr$r"r r rr$szBsdDbShelf.__init__cCs0|j|\}}t|}||jt|fSr%)r set_locationrr&r!rr1r2r r rrCszBsdDbShelf.set_locationcCs.t|j\}}t|}||jt|fSr%)nextrrr&r!rr1r2r r rrDszBsdDbShelf.nextcCs.|j\}}t|}||jt|fSr%)rpreviousrr&r!rr1r2r r rrEszBsdDbShelf.previouscCs.|j\}}t|}||jt|fSr%)rfirstrr&r!rr1r2r r rrFszBsdDbShelf.firstcCs.|j\}}t|}||jt|fSr%)rlastrr&r!rr1r2r r rrGszBsdDbShelf.last)NFr) rrrr$rCrDrErFrGr r r rrs  c@seZdZdddZdS)rcNFcCs$ddl}t||||||dS)Nr)dbmrr$r)r filenameflagr#rrIr r rr$szDbfilenameShelf.__init__)rHNF)rrrr$r r r rrsrHFcCst||||Sr%)r)rJrKr#rr r rrs )rHNF)picklerriorZcollections.abc collections__all__abcMutableMappingr rrrrr r r r;s   b+