й¼]P!ã@s»ddlmZmZddlmZddlZddddgZGdd „d ejƒZGd d„dejƒZ Gd d„de ƒZ Gd d„de ƒZ d dddd„Z dS)é)ÚPicklerÚ Unpickler)ÚBytesIONÚShelfÚ BsdDbShelfÚDbfilenameShelfÚopenc@sBeZdZdd„ZeZZZZZZ dd„Z dS)Ú _ClosedDictcGstdƒ‚dS)Nz!invalid operation on closed shelf)Ú ValueError)ÚselfÚargs©r ú+/opt/alt/python35/lib64/python3.5/shelve.pyÚclosedEsz_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 Bs  r c@s¸eZdZddddd„Zdd„Zdd „Zd d „Zdd d „Zdd„Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„ZdS)rNFzutf-8cCsC||_|dkrd}||_||_i|_||_dS)Né)ÚdictÚ _protocolÚ writebackÚcacheÚ keyencoding)r rÚprotocolrrr r rÚ__init__Ts     zShelf.__init__ccs/x(|jjƒD]}|j|jƒVqWdS)N)rrÚdecoder)r Úkr r rr^szShelf.__iter__cCs t|jƒS)N)Úlenr)r r r rrbsz Shelf.__len__cCs|j|jƒ|jkS)N)Úencoderr)r Úkeyr r rÚ __contains__eszShelf.__contains__cCs'|j|jƒ|jkr#||S|S)N)r%rr)r r&Údefaultr r rÚgethsz Shelf.getc Csqy|j|}WnYtk rlt|j|j|jƒƒ}t|ƒjƒ}|jrh||j|Ês zBsdDbShelf.previouscCsC|jjƒ\}}t|ƒ}|j|jƒt|ƒjƒfS)N)rÚfirstrr"rrr+)r r&r,r-r r rr?Ïs zBsdDbShelf.firstcCsC|jjƒ\}}t|ƒ}|j|jƒt|ƒjƒfS)N)rÚlastrr"rrr+)r r&r,r-r r rr@Ôs zBsdDbShelf.last) rrrr!r<r=r>r?r@r r r rr¯s     c@s%eZdZddddd„ZdS)rÚcNFcCs2ddl}tj||j||ƒ||ƒdS)Nr)Údbmrr!r)r ÚfilenameÚflagr rrBr r rr!ás zDbfilenameShelf.__init__)rrrr!r r r rrÚs rAFcCst||||ƒS)N)r)rCrDr rr r rræs ) ÚpicklerrÚiorÚ collectionsÚ__all__ÚMutableMappingr rrrrr r r rÚ;s  b+