__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
3
�Pf� � @ 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
�!/usr/lib/python3.6/filewrapper.py�__init__ s zCallbackFileWrapper.__init__c C s | j d�}t||�S )Nr )�__getattribute__�getattr)r �namer r
r
r �__getattr__ s
zCallbackFileWrapper.__getattr__c C sD y| j jd kS tk
r Y nX y| j jS tk
r> Y nX 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 | jj� � d | _ d S )N)r r �getvalue)r r
r
r �_close0 s zCallbackFileWrapper._closeNc C s, | j j|�}| jj|� | j� r(| j� |S )N)r �readr �write�"_CallbackFileWrapper__is_fp_closedr )r �amt�datar
r
r r ; s
zCallbackFileWrapper.readc C s@ | j j|�}|dkr |dkr |S | jj|� | j� r<| j� |S )N� s
)r �
_safe_readr r r r )r r r r
r
r r C 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 �<module> s | Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __init__.cpython-36.opt-1.pyc | File | 466 B | 0644 |
|
| __init__.cpython-36.pyc | File | 466 B | 0644 |
|
| _cmd.cpython-36.opt-1.pyc | File | 1.44 KB | 0644 |
|
| _cmd.cpython-36.pyc | File | 1.44 KB | 0644 |
|
| adapter.cpython-36.opt-1.pyc | File | 2.74 KB | 0644 |
|
| adapter.cpython-36.pyc | File | 2.74 KB | 0644 |
|
| cache.cpython-36.opt-1.pyc | File | 1.64 KB | 0644 |
|
| cache.cpython-36.pyc | File | 1.64 KB | 0644 |
|
| compat.cpython-36.opt-1.pyc | File | 497 B | 0644 |
|
| compat.cpython-36.pyc | File | 497 B | 0644 |
|
| controller.cpython-36.opt-1.pyc | File | 7.5 KB | 0644 |
|
| controller.cpython-36.pyc | File | 7.5 KB | 0644 |
|
| filewrapper.cpython-36.opt-1.pyc | File | 2.02 KB | 0644 |
|
| filewrapper.cpython-36.pyc | File | 2.02 KB | 0644 |
|
| heuristics.cpython-36.opt-1.pyc | File | 4.5 KB | 0644 |
|
| heuristics.cpython-36.pyc | File | 4.5 KB | 0644 |
|
| serialize.cpython-36.opt-1.pyc | File | 4.29 KB | 0644 |
|
| serialize.cpython-36.pyc | File | 4.29 KB | 0644 |
|
| wrapper.cpython-36.opt-1.pyc | File | 485 B | 0644 |
|
| wrapper.cpython-36.pyc | File | 485 B | 0644 |
|