a
    ze                     @   st   g d 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   "/usr/lib/python3.9/email/parser.py__init__   s    zParser.__init__Fc                 C   s@   t | j| jd}|r|  |d}|s,q8|| q| S )Nr   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   
r   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   H   s    zHeaderParser.parsec                 C   s   t | |dS r    )r   r   r   r   r   r   r   K   s    zHeaderParser.parsestrN)T)T)r   r   r   r   r   r   r   r   r   r   G   s   
r   c                   @   s(   e Zd Zdd Zd	ddZd
ddZdS )r   c                 O   s   t |i || _d S r   )r   parser)r   argskwr   r   r   r   Q   s    zBytesParser.__init__Fc                 C   s6   t |ddd}z| j||W |  S |  0 d S )Nasciisurrogateescape)encodingerrors)r	   r"   r   detachr!   r   r   r   r   c   s    zBytesParser.parsec                 C   s   |j ddd}| j||S )NASCIIr&   )r(   )decoder"   r   r   r   r   r   
parsebytesr   s    zBytesParser.parsebytesN)F)F)r   r   r   r   r   r,   r   r   r   r   r   O   s   
r   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 NTr   )r   r   r!   r   r   r   r      s    zBytesHeaderParser.parsec                 C   s   t j| |ddS 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   
r   N)__all__ior   r	   Zemail.feedparserr   r   Zemail._policybaser
   r   r   r   r   r   r   r   r   <module>   s   7/