3 �L�j�<�@s�ddlZddlmZddlmZddlmZdddgZGdd �d �Zd d �Z d d �Z Gdd�deej d�Z e Gdd�de ��Z e �ZdS)�N)�header)�charset)�_has_surrogates�Policy�Compat32�compat32cs<eZdZ�fdd�Zdd�Zdd�Zdd�Zd d �Z�ZS) � _PolicyBasec sLxF|j�D]:\}}t||�r0tt|�j||�q tdj||jj���q WdS)Nz*{!r} is an invalid keyword argument for {}) �items�hasattr�superr� __setattr__� TypeError�format� __class__�__name__)�self�kw�name�value)r��)/usr/lib64/python3.6/email/_policybase.py�__init__)s  z_PolicyBase.__init__cCs*dd�|jj�D�}dj|jjdj|��S)NcSsg|]\}}dj||��qS)z{}={!r})r)�.0rrrrr� 8sz(_PolicyBase.__repr__..z{}({})z, )�__dict__r rrr�join)r�argsrrr�__repr__7sz_PolicyBase.__repr__cKsz|jj|j�}x$|jj�D]\}}tj|||�qWx@|j�D]4\}}t||�sdtdj||jj ���tj|||�q>W|S)Nz*{!r} is an invalid keyword argument for {}) r�__new__rr �objectr r r rr)rrZ newpolicy�attrrrrr�clone<s z_PolicyBase.clonecCs,t||�rd}nd}t|j|jj|���dS)Nz'{!r} object attribute {!r} is read-onlyz!{!r} object has no attribute {!r})r �AttributeErrorrrr)rrr�msgrrrr Ns z_PolicyBase.__setattr__cCs|jf|j�S)N)r!r)r�otherrrr�__add__Usz_PolicyBase.__add__) r� __module__� __qualname__rrr!r r%� __classcell__rr)rrrs  rcCs,|jdd�d}|jdd�d}|d|S)N� �r)�rsplit�split)�docZ added_docrrr� _append_doc^sr.cCs�|jr(|jjd�r(t|jdj|j�|_xf|jj�D]X\}}|jr4|jjd�r4xhsz%_extend_docstrings..�__doc__)r4� startswithr.� __bases__rr �getattr)�clsrr r2r-rrr�_extend_docstringscs r9c@s�eZdZdZdZdZdZdZdZdZ dd�Z d d �Z d d �Z e jd d��Ze jdd��Ze jdd��Ze jdd��Ze jdd��ZdS)rFr)Z8bit�NNTcCs|jr |�|j||�dS)N)�raise_on_defect�register_defect)r�obj�defectrrr� handle_defect�szPolicy.handle_defectcCs|jj|�dS)N)Zdefects�append)rr=r>rrrr<�s zPolicy.register_defectcCsdS)Nr)rrrrr�header_max_count�szPolicy.header_max_countcCst�dS)N)�NotImplementedError)r� sourcelinesrrr�header_source_parse�szPolicy.header_source_parsecCst�dS)N)rB)rrrrrr�header_store_parse�szPolicy.header_store_parsecCst�dS)N)rB)rrrrrr�header_fetch_parse�s zPolicy.header_fetch_parsecCst�dS)N)rB)rrrrrr�folds z Policy.foldcCst�dS)N)rB)rrrrrr� fold_binary szPolicy.fold_binary)rr&r'r;�linesep�cte_type�max_line_length� mangle_from_Zmessage_factoryZverify_generated_headersr?r<rA�abc�abstractmethodrDrErFrGrHrrrrrps9    )� metaclassc@sHeZdZdZdd�Zdd�Zdd�Zdd �Zd d �Zd d �Z dd�Z dS)rTcCs0t|t�s|St|�r(tj|tj|d�S|SdS)N)r� header_name)� isinstance�strrr�Header�_charset� UNKNOWN8BIT)rrrrrr�_sanitize_header!s   zCompat32._sanitize_headercCs>|djdd�\}}|jd�dj|dd��}||jd�fS)Nr�:r*z �z )r,�lstripr�rstrip)rrCrrrrrrD-szCompat32.header_source_parsecCs||fS)Nr)rrrrrrrE9szCompat32.header_store_parsecCs |j||�S)N)rV)rrrrrrrF?szCompat32.header_fetch_parsecCs|j||dd�S)NT)�sanitize)�_fold)rrrrrrrGFsz Compat32.foldcCs"|j|||jdkd�}|jdd�S)NZ7bit)r[�ascii�surrogateescape)r\rJ�encode)rrrZfoldedrrrrHPs zCompat32.fold_binarycCs�g}|jd|�t|t�r\t|�rL|rs   L ( f