
    =Og)                     ~   	 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                    d          Ze                    d          Ze                    dd          Ze                    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                   p     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                     d|vr(t                               | dt                                  t                      j        di | d S )Nheader_factory )object__setattr__r   super__init__)selfkw	__class__s     %/usr/lib64/python3.11/email/policy.pyr   zEmailPolicy.__init__]   sR     2%%t%5~7G7GHHH2    c                 (    	 | j         |         j        S N)r   	max_count)r   names     r   header_max_countzEmailPolicy.header_max_countd   s    	
 "4(22r   c                     	 |d                              dd          \  }}|                    d          d                    |dd                    z   }||                    d          fS )Nr   :   z 	 
)splitlstripjoinrstrip)r   sourcelinesr!   values       r   header_source_parsezEmailPolicy.header_source_parsev   sg    	 "!n**322eU##bggk!""o&>&>>ell6**++r   c                 L   	 t          |d          r3|j                                        |                                k    r||fS t          |t                    r4t          |                                          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-   s      r   header_store_parsezEmailPolicy.header_store_parse   s    	 5&!! 	!ej&6&6&8&8DJJLL&H&H%= eS!! 	>c%*:*:*<*<&=&=a&?&?  = > > >d))$6677r   c                     	 t          |d          r|S d                    t                              |                    }|                     ||          S )Nr!   r&   )r0   r*   linesep_splitterr(   r   r7   s      r   header_fetch_parsezEmailPolicy.header_fetch_parse   sV    	 5&!! 	L(..u5566""4///r   c                 4    	 |                      ||d          S )NTrefold_binary)_foldr7   s      r   foldzEmailPolicy.fold   s!    	$ zz$Tz:::r   c                     	 |                      ||| j        dk              }| j        rdnd}|                    |d          S )N7bitr=   utf8asciisurrogateescape)r?   cte_typerC   encode)r   r!   r-   foldedcharsets        r   fold_binaryzEmailPolicy.fold_binary   sL    	 D%t}f7LMM I2&&7}}W&7888r   c                    t          |d          r|                    |           S | j        r| j        nt          j        |                                }| j        dk    p[| j        dk    oP|r,t          |d                   t          |          z   dz   k    p"t          fd|dd          D                       }|s.| j	        s|
                                 }n|rt          |          }|r=|                     |d	                    |                                        |           S |d
z   | j                            |          z   | j        z   S )Nr!   )policyallr   r      c              3   >   K   | ]}t          |          k    V  d S r   )r4   ).0xmaxlens     r   	<genexpr>z$EmailPolicy._fold.<locals>.<genexpr>   s-      <<QQ&<<<<<<r   r%   r&   z: )r0   r@   max_line_lengthsysmaxsizer5   refold_sourcer4   anyrC   isasciir   r   r*   linesep)r   r!   r-   r>   linesrefoldrR   s         @r   r?   zEmailPolicy._fold   se   5&!! 	+::T:***)-)=N%%3;  ""$- >$. >As58}}SYY6q86A =<<<<%)<<<<< 	
  	09 0"]]__, 0(// 	O&&tRWWU^^<<AAANNNd{T\..u5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      s        8t #ODM#^%%N&O    3 3 3$, , ,8 8 8&0 0 0; ; ;*9 9 9$E E E E E E E Er   r   T)raise_on_defectr'   )rZ   )rZ   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>rn      sZ   
			 



 L L L L L L L L L L L L ' ' ' ' ' ' A A A A A A 1 1 1 1 1 1 & & & & & &	 	 	 2:h'' CE CE CE CE CE& CE CE CEL +--	t	,	,}}V}$$}}VT}::::4:  r   