o
     JAf(                     @   s   	 d dl Z d dlZd dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ g dZe dZeG d	d
 d
eZe Ze`ejddZejddZejdddZejddZdS )    N)PolicyCompat32compat32_extend_docstrings)_has_surrogates)HeaderRegistry)raw_data_manager)EmailMessage)r   r   r   EmailPolicydefaultstrictSMTPHTTPz\n|\rc                       sn   e Zd Z	 eZdZdZe Ze	Z
 fddZdd Zdd Zd	d
 Zdd Zdd Zdd ZdddZ  ZS )r
   Flongc                    s.   d|vrt | dt  t jdi | d S )Nheader_factory )object__setattr__r   super__init__)selfkw	__class__r   #/usr/lib/python3.10/email/policy.pyr   ]   s   zEmailPolicy.__init__c                 C   s   	 | j | jS N)r   Z	max_count)r   namer   r   r   header_max_countd   s   zEmailPolicy.header_max_countc                 C   s@   	 |d  dd\}}|dd|dd   }||dfS )Nr   :   z 	 
)splitlstripjoinrstrip)r   Zsourcelinesr   valuer   r   r   header_source_parsev   s   zEmailPolicy.header_source_parsec                 C   sX   	 t |dr|j | kr||fS t|tr$t| dkr$td|| ||fS )Nr   r   zDHeader values may not contain linefeed or carriage return characters)	hasattrr   lower
isinstancestrlen
splitlines
ValueErrorr   r   r   r&   r   r   r   header_store_parse   s   	zEmailPolicy.header_store_parsec                 C   s,   	 t |dr|S dt|}| ||S )Nr   r    )r(   r$   linesep_splitterr"   r   r/   r   r   r   header_fetch_parse   s
   
zEmailPolicy.header_fetch_parsec                 C   s   	 | j ||ddS )NTrefold_binary)_foldr/   r   r   r   fold   s   zEmailPolicy.foldc                 C   s2   	 | j ||| jdkd}| jrdnd}||dS )NZ7bitr3   utf8asciisurrogateescape)r5   Zcte_typer7   encode)r   r   r&   Zfoldedcharsetr   r   r   fold_binary   s   zEmailPolicy.fold_binaryc                    s   t |dr|j| dS | jr| jntj | }| jdkp@| jdko@|r2t|d t| d  kp@t fdd|d	d  D }|sI|rVt	|rV| 
|d
|j| dS |d | j| | j S )Nr   )Zpolicyallr   r      c                 3   s    | ]	}t | kV  qd S r   )r,   ).0xmaxlenr   r   	<genexpr>   s    z$EmailPolicy._fold.<locals>.<genexpr>r   r    z: )r(   r6   max_line_lengthsysmaxsizer-   refold_sourcer,   anyr   r   r$   linesep)r   r   r&   r4   linesZrefoldr   rA   r   r5      s   


 zEmailPolicy._fold)F)__name__
__module____qualname__r	   Zmessage_factoryr7   rG   r   r   r   Zcontent_managerr   r   r'   r0   r2   r6   r<   r5   __classcell__r   r   r   r   r
      s    :r
   T)Zraise_on_defectr!   )rI   )rI   rD   )r7   )rerE   Zemail._policybaser   r   r   r   Zemail.utilsr   Zemail.headerregistryr   Zemail.contentmanagerr   Zemail.messager	   __all__compiler1   r
   r   r   Zcloner   r   r   ZSMTPUTF8r   r   r   r   <module>   s&    
 @