B
    0*\7                 @   s|   d dddddgZ ddlmZmZ ddlmZmZ dd	lmZ G d
d  d Z	G dd de	Z
G dd dZG dd deZdS )ParserHeaderParserBytesParserBytesHeaderParser
FeedParserBytesFeedParser    )StringIOTextIOWrapper)r   r   )compat32c               @   s0   e Zd Zd
edddZdddZddd	ZdS )r   N)policyc            C   s   || _ || _d S )N)_classr   )selfr   r    r   7C:\ALexclude\prg\programme\Python37\Lib\email\parser.py__init__   s    zParser.__init__Fc             C   sD   t | j| jd}|r|  x|d}|s.P || qW | S )N)r   i    )r   r   r   Z_set_headersonlyreadZfeedclose)r   fpheadersonlyZ
feedparserdatar   r   r   parse*   s    
zParser.parsec             C   s   | j t||dS )N)r   )r   r   )r   textr   r   r   r   parsestr<   s    zParser.parsestr)N)F)F)__name__
__module____qualname__r
   r   r   r   r   r   r   r   r      s   
c               @   s    e Zd ZdddZdddZdS )	r   Tc             C   s   t | |dS )NT)r   r   )r   r   r   r   r   r   r   I   s    zHeaderParser.parsec             C   s   t | |dS )NT)r   r   )r   r   r   r   r   r   r   L   s    zHeaderParser.parsestrN)T)T)r   r   r   r   r   r   r   r   r   r   H   s   
c               @   s(   e Zd Zdd Zd	ddZd
ddZdS )r   c             O   s   t ||| _d S )N)r   parser)r   argskwr   r   r   r   R   s    zBytesParser.__init__Fc             C   s,   t |ddd}z| j||S |  X d S )Nasciisurrogateescape)encodingerrors)r	   r   r   detach)r   r   r   r   r   r   r   d   s    zBytesParser.parsec             C   s   |j ddd}| j||S )NASCIIr    )r"   )decoder   r   )r   r   r   r   r   r   
parsebytess   s    zBytesParser.parsebytesN)F)F)r   r   r   r   r   r&   r   r   r   r   r   P   s   
c               @   s    e Zd ZdddZdddZdS )	r   Tc             C   s   t j| |ddS )NT)r   )r   r   )r   r   r   r   r   r   r      s    zBytesHeaderParser.parsec             C   s   t j| |ddS )NT)r   )r   r&   )r   r   r   r   r   r   r&      s    zBytesHeaderParser.parsebytesN)T)T)r   r   r   r   r&   r   r   r   r   r      s   
N)__all__ior   r	   Zemail.feedparserr   r   Zemail._policybaser
   r   r   r   r   r   r   r   r   <module>   s   7/