�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%Marker for a closed dict. Access attempts raise a ValueError.cGs tddS)Nz!invalid operation on closed shelf) ValueError)selfargsr /usr/lib64/python3.8/shelve.pyclosedEsz_ClosedDict.closedcCsdS)Nzr r r r r__repr__Isz_ClosedDict.__repr__N) __name__ __module__ __qualname____doc__r__iter____len__ __getitem__ __setitem__ __delitem__keysrr r r rr Bsr c@s|eZdZdZdddZddZd d Zd d Zd d dZddZ ddZ ddZ ddZ ddZ ddZddZddZdS)!rzBase class for shelf implementations. This is initialized with a dictionary-like object. See the module's __doc__ string for an overview of the interface. NFutf-8cCs.||_|dkrd}||_||_i|_||_dS)N)dict _protocol writebackcache keyencodingr rprotocolr r"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"rloadr r r-valuefr r rrms zShelf.__getitem__cCsF|jr||j|<t}t||j}||||j||j <dSr&) r r!rrrdumpgetvaluerr+r")r r-r4r5pr r rrws    zShelf.__setitem__cCs6|j||j=z |j|=Wntk r0YnXdSr&)rr+r"r!r1r,r r rrs  zShelf.__delitem__cCs|Sr&r rr r r __enter__szShelf.__enter__cCs |dSr&)close)r typer4 tracebackr r r__exit__szShelf.__exit__c Csf|jdkrdSz0|z|jWntk r:YnXW5z t|_Wnd|_YnXXdSr&)rr syncr:AttributeErrorrr r rr:s   z Shelf.closecCst|dsdS|dS)Nr )hasattrr:rr r r__del__s z Shelf.__del__cCsT|jr:|jr:d|_|jD]\}}|||<qd|_i|_t|jdrP|jdS)NFTr>)r r!itemsr@rr>)r r-entryr r rr>s   z Shelf.sync)NFr)N)rrrrr%rrr.r0rrrr9r=r:rAr>r r r rrMs    c@sBeZdZdZdddZddZd d Zd d Zd dZddZ dS)raShelf implementation using the "BSD" db interface. This adds methods first(), next(), previous(), last() and set_location() that have no counterpart in [g]dbm databases. The actual database must be opened using one of the "bsddb" modules "open" routines (i.e. bsddb.hashopen, bsddb.btopen or bsddb.rnopen) and passed to the constructor. See the module's __doc__ string for an overview of the interface. NFrcCst|||||dSr&)rr%r#r r rr%szBsdDbShelf.__init__cCs0|j|\}}t|}||jt|fSr&)r set_locationrr'r"rr2r3r r rrDszBsdDbShelf.set_locationcCs.t|j\}}t|}||jt|fSr&)nextrrr'r"rr2r3r r rrEszBsdDbShelf.nextcCs.|j\}}t|}||jt|fSr&)rpreviousrr'r"rr2r3r r rrFszBsdDbShelf.previouscCs.|j\}}t|}||jt|fSr&)rfirstrr'r"rr2r3r r rrGszBsdDbShelf.firstcCs.|j\}}t|}||jt|fSr&)rlastrr'r"rr2r3r r rrHszBsdDbShelf.last)NFr) rrrrr%rDrErFrGrHr r r rrs  c@seZdZdZdddZdS)rzShelf implementation using the "dbm" generic dbm interface. This is initialized with the filename for the dbm database. See the module's __doc__ string for an overview of the interface. cNFcCs$ddl}t||||||dS)Nr)dbmrr%r)r filenameflagr$r rJr r rr%szDbfilenameShelf.__init__)rINF)rrrrr%r r r rrsrIFcCst||||S)aOpen a persistent dictionary for reading and writing. The filename parameter is the base filename for the underlying database. As a side-effect, an extension may be added to the filename and more than one file may be created. The optional flag parameter has the same interpretation as the flag parameter of dbm.open(). The optional protocol parameter specifies the version of the pickle protocol. See the module's __doc__ string for an overview of the interface. )r)rKrLr$r r r rrs )rINF)rpicklerriorZcollections.abc collections__all__abcMutableMappingr rrrrr r r rs:   b+