AlkantarClanX12
Current Path : /lib64/python3.6/__pycache__/ |
Current File : //lib64/python3.6/__pycache__/quopri.cpython-36.pyc |
3 \^ � @ s� d Z ddddgZdZdZdZdZyd d lmZmZ W n e k rP dZdZY nX dd � Z dd� Zddd�Zddd�Z ddd�Zddd�Zdd� Zdd� Zdd� Zedkr�e� dS ) zHConversions to/from quoted-printable transport encoding as per RFC 1521.�encode�decode�encodestring�decodestring� =�L s 0123456789ABCDEF� � )�a2b_qp�b2a_qpNc C sH t | t�st�| dkr|S | dkr&|S | tkpFd| ko@dkn S )z�Decide whether a particular byte ordinal needs to be quoted. The 'quotetabs' flag indicates whether embedded tabs and spaces should be quoted. Note that line-ending tabs and spaces are always encoded, as per RFC 1521. s � _� � ~)� isinstance�bytes�AssertionError�ESCAPE)�c� quotetabs�header� r �/usr/lib64/python3.6/quopri.py�needsquoting s r c C sB t | t�rt| �dkst�t| �} ttt| d t| d f� S )zQuote a single character.� � )r r �lenr �ordr �HEX)r r r r �quote$ s r Fc C s< t dk r,| j� }t |||d�}|j|� dS |dfdd�}d}x�| j� }|sNP g } d} |dd� dkrv|dd � }d} xL|D ]D}t|f�}t|||�r�t|�}|r�|dkr�| jd � q|| j|� q|W |dk r�||� tj | �}x:t |�tk�r||dtd � d d� |td d� }q�W |}q@W |dk �r8||| d� dS )av Read 'input', apply quoted-printable encoding, and write to 'output'. 'input' and 'output' are binary file objects. The 'quotetabs' flag indicates whether embedded tabs and spaces should be quoted. Note that line-ending tabs and spaces are always encoded, as per RFC 1521. The 'header' flag indicates whether we are encoding spaces as _ as per RFC 1522.N)r r � c S sj | r<| dd � dkr<|j | d d� t| dd � � | � n*| dkrX|j t| �| � n|j | | � d S )Nr s � .���r r )�writer )�s�output�lineEndr r r r! ; s (zencode.<locals>.writer r r r s = )r$ r r )r �readr! �readliner r r �append�EMPTYSTRING�joinr �MAXLINESIZE) �inputr# r r �data�odatar! Zprevline�lineZoutline�strippedr Zthisliner r r r , s@ c C sF t d k rt | ||d�S ddlm} || �}|� }t||||� |j� S )N)r r r )�BytesIO)r �ior0 r �getvalue)r"