B 0cO!@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/python37/lib64/python3.7/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 keyencoding)r rprotocolrr r r r__init__TszShelf.__init__ccs&x |jD]}||jVq WdS)N)rrdecoder )r kr r rr^szShelf.__iter__cCs t|jS)N)lenr)r r r rrbsz Shelf.__len__cCs||j|jkS)N)encoder r)r keyr r r __contains__eszShelf.__contains__cCs||j|jkr||S|S)N)r&r r)r r'defaultr r rgethsz Shelf.getcCsZy|j|}WnFtk rTt|j||j}t|}|jrP||j|<YnX|S)N) rKeyErrorrrr&r rloadr)r r'valuefr r rrms zShelf.__getitem__cCsF|jr||j|<t}t||j}||||j||j <dS)N) rrrrrdumpgetvaluerr&r )r r'r-r.pr r rrws    zShelf.__setitem__cCs6|j||j=y |j|=Wntk r0YnXdS)N)rr&r rr+)r r'r r rrs  zShelf.__delitem__cCs|S)Nr )r r r r __enter__szShelf.__enter__cCs |dS)N)close)r typer- tracebackr r r__exit__szShelf.__exit__c Csf|jdkrdSz0|y|jWntk r:YnXWdy t|_Wnd|_YnXXdS)N)rsyncr3AttributeErrorr )r r r rr3s   z Shelf.closecCst|dsdS|dS)Nr)hasattrr3)r r r r__del__s z Shelf.__del__cCsX|jr>|jr>d|_x|jD]\}}|||<qWd|_i|_t|jdrT|jdS)NFTr7)rritemsr9rr7)r r'entryr r rr7s   z Shelf.sync)NFr)N)rrrr"rrr(r*rrrr2r6r3r:r7r r r rrMs   c@s>eZdZdddZddZdd Zd d Zd d ZddZdS)rNFutf-8cCst|||||dS)N)rr")r rr!rr r r rr"szBsdDbShelf.__init__cCs0|j|\}}t|}||jt|fS)N)r set_locationrr#r rr,)r r'r-r.r r rr>szBsdDbShelf.set_locationcCs.t|j\}}t|}||jt|fS)N)nextrrr#r rr,)r r'r-r.r r rr?szBsdDbShelf.nextcCs.|j\}}t|}||jt|fS)N)rpreviousrr#r rr,)r r'r-r.r r rr@szBsdDbShelf.previouscCs.|j\}}t|}||jt|fS)N)rfirstrr#r rr,)r r'r-r.r r rrAszBsdDbShelf.firstcCs.|j\}}t|}||jt|fS)N)rlastrr#r rr,)r r'r-r.r r rrBszBsdDbShelf.last)NFr=) rrrr"r>r?r@rArBr r r rrs  c@seZdZdddZdS)rcNFcCs$ddl}t||||||dS)Nr)dbmrr"r)r filenameflagr!rrDr r rr"szDbfilenameShelf.__init__)rCNF)rrrr"r r r rrsrCFcCst||||S)N)r)rErFr!rr r rrs )rCNF)picklerriorZcollections.abc collections__all__abcMutableMappingr rrrrr r r r;s   b+