‹“Reå ã@s*ddlmZGdd„deƒZdS)é)ÚBytesIOc@saeZdZdZdd„Zdd„Zdd„Zdd „Zd d d „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. cCs"tƒ|_||_||_dS)N)rÚ_CallbackFileWrapper__bufÚ_CallbackFileWrapper__fpÚ_CallbackFileWrapper__callback)ÚselfÚfpÚcallback©r ú“/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/cachecontrol/filewrapper.pyÚ__init__s  zCallbackFileWrapper.__init__cCs|jdƒ}t||ƒS)Nr)Ú__getattribute__Úgetattr)rÚnamerr r r Ú __getattr__s zCallbackFileWrapper.__getattr__cCsPy|jjdkSWntk r(YnXy|jjSWntk rKYnXdS)NF)rrÚAttributeErrorÚclosed)rr r r Ú__is_fp_closed!s  z"CallbackFileWrapper.__is_fp_closedcCs,|jr|j|jjƒƒd|_dS)N)rrÚgetvalue)rr r r Ú_close2s zCallbackFileWrapper._closeNcCs<|jj|ƒ}|jj|ƒ|jƒr8|jƒ|S)N)rÚreadrÚwriteÚ"_CallbackFileWrapper__is_fp_closedr)rÚamtÚdatar r r r=s   zCallbackFileWrapper.readcCsX|jj|ƒ}|dkr.|dkr.|S|jj|ƒ|jƒrT|jƒ|S)Nés )rÚ _safe_readrrrr)rrrr r r rEs  zCallbackFileWrapper._safe_read) Ú__name__Ú __module__Ú __qualname__Ú__doc__r rrrrrr r r r rs    rN)ÚiorÚobjectrr r r r Ús