3 ­_Vj®<ã@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