
    z%i:                         	 d dl Z d dlmZ d dlmZ d dlmZ g dZ G d d      Zd Z	d	 Z
 G d
 dee j                        Ze
 G d de             Z e       Zy)    N)header)charset)_has_surrogates)PolicyCompat32compat32c                   8     e Zd Z	  fdZd Zd Zd Zd Z xZS )_PolicyBasec                     	 |j                         D ]T  \  }}t        | |      rt        t        |   ||       't        dj                  || j                  j                               y Nz*{!r} is an invalid keyword argument for {})	itemshasattrsuperr
   __setattr__	TypeErrorformat	__class____name__)selfkwnamevaluer   s       E/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/email/_policybase.py__init__z_PolicyBase.__init__)   sh    	
 88: 	8KD%tT"k$3D%@@GGdnn5578 8		8    c                     | j                   j                         D cg c]  \  }}dj                  ||       }}}dj                  | j                  j                  dj                  |            S c c}}w )Nz{}={!r}z{}({})z, )__dict__r   r   r   r   join)r   r   r   argss       r   __repr__z_PolicyBase.__repr__7   se    $(MM$7$7$9< T5 !!$. < <t~~66		$HH<s   A2c                    	 | j                   j                  | j                         }| j                  j                         D ]  \  }}t        j                  |||        |j                         D ]W  \  }}t        | |      s/t        dj                  || j                   j                              t        j                  |||       Y |S r   )
r   __new__r   r   objectr   r   r   r   r   )r   r   	newpolicyattrr   s        r   clonez_PolicyBase.clone<   s    	 NN**4>>:	==..0 	7KD%y$6	788: 	7KD%4&@GGdnn5578 8 y$6	7 r   c                     t        | |      rd}nd}t        |j                  | j                  j                  |            )Nz'{!r} object attribute {!r} is read-onlyz!{!r} object has no attribute {!r})r   AttributeErrorr   r   r   )r   r   r   msgs       r   r   z_PolicyBase.__setattr__N   s6    4;C5CSZZ(?(?FGGr   c                 <    	  | j                   di |j                  S )N )r&   r   )r   others     r   __add__z_PolicyBase.__add__U   s!    	
 tzz+ENN++r   )	r   
__module____qualname__r   r    r&   r   r-   __classcell__)r   s   @r   r
   r
      s#    *8I
$H,r   r
   c                 f    | j                  dd      d   } |j                  dd      d   }| dz   |z   S )N
   r   )rsplitsplit)doc	added_docs     r   _append_docr8   ^   s;    
**T1
a
 Ca(+I:	!!r   c                    | j                   rM| j                   j                  d      r2t        | j                  d   j                   | j                         | _         | j                  j                         D ]{  \  }}|j                   s|j                   j                  d      s/d | j                  D        D ]7  }t        t        ||      d      }|st        ||j                         |_          { } | S )N+r   c              3   J   K   | ]  }|j                         D ]  }|   y wN)mro).0basecs      r   	<genexpr>z%_extend_docstrings.<locals>.<genexpr>h   s"     FD488:FaaFaFs   !#__doc__)rB   
startswithr8   	__bases__r   r   getattr)clsr   r%   r@   r6   s        r   _extend_docstringsrG   c   s    
{{s{{--c2!#--"2":":CKKHll((* 
d<<DLL33C8FCMMF ga.	:#.sDLL#ADL	 Jr   c                       e Zd Z	 dZdZdZdZdZdZd Z	d Z
d Zej                  d	        Zej                  d
        Zej                  d        Zej                  d        Zej                  d        Zy)r   Fr2   8bitN   Nc                 F    	 | j                   r|| j                  ||       y r<   )raise_on_defectregister_defectr   objdefects      r   handle_defectzPolicy.handle_defect   s'    	 LS&)r   c                 <    	 |j                   j                  |       y r<   )defectsappendrN   s      r   rM   zPolicy.register_defect   s    		 	6"r   c                      	 y r<   r+   )r   r   s     r   header_max_countzPolicy.header_max_count   s    	  r   c                     	 t         r<   NotImplementedError)r   sourceliness     r   header_source_parsezPolicy.header_source_parse       	 "!r   c                     	 t         r<   rX   r   r   r   s      r   header_store_parsezPolicy.header_store_parse   s    	 "!r   c                     	 t         r<   rX   r^   s      r   header_fetch_parsezPolicy.header_fetch_parse   s    	 "!r   c                     	 t         r<   rX   r^   s      r   foldzPolicy.fold   s    	 "!r   c                     	 t         r<   rX   r^   s      r   fold_binaryzPolicy.fold_binary  r\   r   )r   r.   r/   rL   linesepcte_typemax_line_lengthmangle_from_message_factoryrQ   rM   rV   abcabstractmethodr[   r_   ra   rc   re   r+   r   r   r   r   p   s    .` OGHOLO*&#& 	" " 	" " 	" " 		" 	" 	" "r   r   )	metaclassc                   <    e Zd Z	 dZd Zd Zd Zd Zd Zd Z	d Z
y	)
r   Tc                     t        |t              s|S t        |      r&t        j                  |t
        j                  |      S |S )Nr   header_name)
isinstancestrr   r   Header_charsetUNKNOWN8BITr^   s      r   _sanitize_headerzCompat32._sanitize_header  s@     %%L5!==0D0D-13 3 Lr   c                     	 |d   j                  dd      \  }}|j                  d      dj                  |dd        z   }||j                  d      fS )Nr   :r3   z 	 z
)r5   lstripr   rstrip)r   rZ   r   r   s       r   r[   zCompat32.header_source_parse%  sY    	 "!n**32eU#bggk!"o&>>ell6*++r   c                     	 ||fS r<   r+   r^   s      r   r_   zCompat32.header_store_parse1  s    	 e}r   c                 (    	 | j                  ||      S r<   )rw   r^   s      r   ra   zCompat32.header_fetch_parse7  s    	 $$T511r   c                 ,    	 | j                  ||d      S )NTsanitize)_foldr^   s      r   rc   zCompat32.fold>  s    	 zz$z55r   c                 j    	 | j                  ||| j                  dk(        }|j                  dd      S )N7bitr   asciisurrogateescape)r   rg   encode)r   r   r   foldeds       r   re   zCompat32.fold_binaryH  s8    	 D%$--2GH}}W&788r   c                    g }|j                  d|z         t        |t              r`t        |      r=|r't	        j
                  |t        j                  |      }n.|j                  |       d }nt	        j
                  ||      }n|}|Fd}| j                  | j                  }|j                  |j                  | j                  |             |j                  | j                         dj                  |      S )Nz%s: rp   )rq   r   )rf   
maxlinelenrz   )rT   rr   rs   r   r   rt   ru   rv   rh   r   rf   r   )r   r   r   r   partshr   s          r   r   zCompat32._foldT  s    Vd]#eS!u%e.6.B.B268A LL'AMM%T: A= J##/!11
LL$,,:NOT\\"wwu~r   N)r   r.   r/   ri   rw   r[   r_   ra   rc   re   r   r+   r   r   r   r     s1    
 L

,26
9r   r   )rk   emailr   r   ru   email.utilsr   __all__r
   r8   rG   ABCMetar   r   r   r+   r   r   <module>r      ss   
   % 'I, I,X"

\"[CKK \"~ cv c cL :r   