3 »nNj+, ã @ sØ d dl mZ yd dlmZmZ W n$ ek rD d dlmZmZ Y nX yd dlmZ W n" ek rx G dd„ dƒZY nX d dlm Z ddl mZ dd lm Z mZmZ d dgZeƒ ZG dd „ d eƒZG d d„ deƒZdS )é )Úabsolute_import)ÚMappingÚMutableMapping)ÚRLockc @ s e Zd Zdd„ Zdd„ ZdS )r c C s d S )N© )Úselfr r ú"/usr/lib/python3.6/_collections.pyÚ __enter__ s zRLock.__enter__c C s d S )Nr )r Úexc_typeÚ exc_valueÚ tracebackr r r Ú__exit__ s zRLock.__exit__N)Ú__name__Ú __module__Ú__qualname__r r r r r r r s r )ÚOrderedDicté )Ú InvalidHeader)ÚiterkeysÚ itervaluesÚPY3ÚRecentlyUsedContainerÚHTTPHeaderDictc @ sV e Zd ZdZeZddd„Zdd„ Zdd „ Zd d„ Z dd „ Z dd„ Zdd„ Zdd„ Z dS )r a‘ Provides a thread-safe dict-like container which maintains up to ``maxsize`` keys while throwing away the least-recently-used keys beyond ``maxsize``. :param maxsize: Maximum number of recent elements to retain. :param dispose_func: Every time an item is evicted from the container, ``dispose_func(value)`` is called. Callback which will get called é Nc C s" || _ || _| jƒ | _tƒ | _d S )N)Ú_maxsizeÚdispose_funcÚContainerClsÚ _containerr Úlock)r Úmaxsizer r r r Ú__init__, s zRecentlyUsedContainer.__init__c C s, | j � | jj|ƒ}|| j|<