
    z%i(                     N   	 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 j                   d      Ze G d	 d
e             Z e       Ze`ej+                  d      Zej+                  d      Zej+                  dd      Zej+                  d      Zy)    N)PolicyCompat32compat32_extend_docstrings)_has_surrogates)HeaderRegistry)raw_data_manager)EmailMessage)r   r   r   EmailPolicydefaultstrictSMTPHTTPz\n|\rc                   j     e Zd Z	 eZdZdZ e       Ze	Z
 fdZd Zd Zd Zd Zd Zd	 Zdd
Z xZS )r   Flongc                 j    d|vrt         j                  | dt                      t        |   di | y )Nheader_factory )object__setattr__r   super__init__)selfkw	__class__s     @/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/email/policy.pyr   zEmailPolicy.__init__]   s3     2%t%5~7GH2    c                 6    	 | j                   |   j                  S N)r   	max_count)r   names     r   header_max_countzEmailPolicy.header_max_countd   s     	
 ""4(222r   c                     	 |d   j                  dd      \  }}|j                  d      dj                  |dd        z   }||j                  d      fS )Nr   :   z 	 
)splitlstripjoinrstrip)r   sourcelinesr!   values       r   header_source_parsezEmailPolicy.header_source_parsev   sY    	 "!n**32eU#bggk!"o&>>ell6*++r   c                    	 t        |d      r/|j                  j                         |j                         k(  r||fS t        |t              r't        |j                               dkD  rt        d      || j                  ||      fS )Nr!   r%   zDHeader values may not contain linefeed or carriage return characters)	hasattrr!   lower
isinstancestrlen
splitlines
ValueErrorr   r   r!   r-   s      r   header_store_parsezEmailPolicy.header_store_parse   s    	 5&!ejj&6&6&8DJJL&H%= eS!c%*:*:*<&=a&?  = > >d))$677r   c                     	 t        |d      r|S dj                  t        j                  |            }| j	                  ||      S )Nr!   r&   )r0   r*   linesep_splitterr(   r   r7   s      r   header_fetch_parsezEmailPolicy.header_fetch_parse   sE    	 5&!L(..u56""4//r   c                 ,    	 | j                  ||d      S )NTrefold_binary)_foldr7   s      r   foldzEmailPolicy.fold   s    	$ zz$Tz::r   c                     	 | j                  ||| j                  dk(        }| j                  rdnd}|j                  |d      S )N7bitr=   utf8asciisurrogateescape)r?   cte_typerC   encode)r   r!   r-   foldedcharsets        r   fold_binaryzEmailPolicy.fold_binary   sE    	 D%t}}f7LM II&7}}W&788r   c                 J   t        |d      r|j                  |       S | j                  r| j                  nt        j                  |j                         }| j                  dk(  xsN | j                  dk(  xr= |xr  t        |d         t        |      z   dz   kD  xs t        fd|dd  D              }|s|r<t        |      r1| j                  |d	j                  |            j                  |       S |d
z   | j                  j                  |      z   | j                  z   S )Nr!   )policyallr   r      c              3   :   K   | ]  }t        |      kD    y wr   )r4   ).0xmaxlens     r   	<genexpr>z$EmailPolicy._fold.<locals>.<genexpr>   s     <QQ&<s   r%   r&   z: )r0   r@   max_line_lengthsysmaxsizer5   refold_sourcer4   anyr   r   r*   linesep)r   r!   r-   r>   linesrefoldrR   s         @r   r?   zEmailPolicy._fold   s
   5&!::T:**)-)=)=%%3;;  "$$- >$$. >As58}SY6q86A =<%)<< 	 ]u'=&&tRWWU^<AAANNd{T\\..u55DDr   )F)__name__
__module____qualname__r
   message_factoryrC   rW   r   r   r	   content_managerr   r"   r.   r8   r;   r@   rJ   r?   __classcell__)r   s   @r   r   r      sP    8t #ODM#%N&O3$,8&0;*9$Er   r   T)raise_on_defectr'   )rY   )rY   rT   )rC   )rerU   email._policybaser   r   r   r   email.utilsr   email.headerregistryr   email.contentmanagerr	   email.messager
   __all__compiler:   r   r   r   cloner   r   r   SMTPUTF8r   r   r   <module>rm      s    
 
 L L ' A 1 &	 2::h' |E& |E |E~ -	t	,}}V}$}}VT}:::4: r   