a
ˆljå ã @ s d dl mZ G dd„ deƒZdS )é )ÚBytesIOc @ sB e Zd ZdZdd„ Zdd„ Zdd„ Zdd „ Zddd„Zd
d„ Z d
S )ÚCallbackFileWrapperav
Small wrapper around a fp object which will tee everything read into a
buffer, and when that file is closed it will execute a callback with the
contents of that buffer.
All attributes are proxied to the underlying file object.
This class uses members with a double underscore (__) leading prefix so as
not to accidentally shadow an attribute.
c C s t ƒ | _|| _|| _d S ©N)r Ú_CallbackFileWrapper__bufÚ_CallbackFileWrapper__fpÚ_CallbackFileWrapper__callback)ÚselfÚfpÚcallback© r úH/usr/lib/python3.9/site-packages/pip/_vendor/cachecontrol/filewrapper.pyÚ__init__ s zCallbackFileWrapper.__init__c C s | d¡}t||ƒS )Nr )Ú__getattribute__Úgetattr)r Únamer r r r Ú__getattr__ s
zCallbackFileWrapper.__getattr__c C sD z| j jd u W S ty Y n0 z
| j jW S ty> Y n0 dS )NF)r r ÚAttributeErrorÚclosed©r r r r Z__is_fp_closed! s
z"CallbackFileWrapper.__is_fp_closedc C s | j r| | j ¡ ¡ d | _ d S r )r r Úgetvaluer r r r Ú_close2 s zCallbackFileWrapper._closeNc C s, | j |¡}| j |¡ | ¡ r(| ¡ |S r )r Úreadr ÚwriteÚ"_CallbackFileWrapper__is_fp_closedr ©r ZamtÚdatar r r r = s
zCallbackFileWrapper.readc C s@ | j |¡}|dkr |dkr |S | j |¡ | ¡ r<| ¡ |S )Né s
)r Ú
_safe_readr r r r r r r r r E s zCallbackFileWrapper._safe_read)N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
r r r r r r r r r r s
r N)Úior Úobjectr r r r r Ú