o
     JAf                     @   sv   	 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.10/email/parser.py__init__   s   
zParser.__init__Fc                 C   sD   	 t | j| jd}|r|  	 |d}|s	 | S || q)Nr   Ti    )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.parsestrr   F)__name__
__module____qualname__r
   r   r   r   r   r   r   r   r      s    
r   c                   @       e Zd ZdddZdddZdS )r   Tc                 C      t | |dS NT)r   r   r   r   r   r   r   r   r   H      zHeaderParser.parsec                 C   r"   r#   )r   r   r   r   r   r   r   K   r%   zHeaderParser.parsestrNT)r   r   r    r   r   r   r   r   r   r   G       
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   s4   	 t |ddd}z| j||W |  S |  w )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.parsebytesNr   )r   r   r    r   r   r2   r   r   r   r   r   O   s    
r   c                   @   r!   )r   Tc                 C      t j| |ddS NTr   )r   r   r$   r   r   r   r         zBytesHeaderParser.parsec                 C   r3   r4   )r   r2   r   r   r   r   r2      r5   zBytesHeaderParser.parsebytesNr&   )r   r   r    r   r2   r   r   r   r   r   ~   r'   r   N)__all__ior   r	   Zemail.feedparserr   r   Zemail._policybaser
   r   r   r   r   r   r   r   r   <module>   s   7/