3 \…(ã@sÂddlZddlmZmZmZmZddlmZddlm Z ddl m Z ddl m Z ddd d d d d dgZejdƒZeGdd „d eƒƒZeƒZe`ejdd�Zejdd�Zejddd�Zejdd�ZdS)éN)ÚPolicyÚCompat32Úcompat32Ú_extend_docstrings)Ú_has_surrogates)ÚHeaderRegistry)Úraw_data_manager)Ú EmailMessagerrrÚ EmailPolicyÚdefaultÚstrictÚSMTPÚHTTPz\n|\rcsleZdZeZdZdZeƒZe Z ‡fdd„Z dd„Z dd„Z d d „Zd d „Zd d„Zdd„Zddd„Z‡ZS)r FÚlongc s*d|krtj|dtƒƒtƒjf|ŽdS)NÚheader_factory)ÚobjectÚ __setattr__rÚsuperÚ__init__)ÚselfÚkw)Ú __class__©ú$/usr/lib64/python3.6/email/policy.pyr\szEmailPolicy.__init__cCs |j|jS)N)rZ max_count)rÚnamerrrÚheader_max_countcszEmailPolicy.header_max_countcCs>|djddƒ\}}|jdƒdj|dd…ƒ}||jdƒfS)Nrú:éz Úz )ÚsplitÚlstripÚjoinÚrstrip)rZ sourcelinesrÚvaluerrrÚheader_source_parseus zEmailPolicy.header_source_parsecCsVt|dƒr$|jjƒ|jƒkr$||fSt|tƒrFt|jƒƒdkrFtdƒ‚||j||ƒfS)NrrzDHeader values may not contain linefeed or carriage return characters) ÚhasattrrÚlowerÚ isinstanceÚstrÚlenÚ splitlinesÚ ValueErrorr)rrr#rrrÚheader_store_parse‚s zEmailPolicy.header_store_parsecCs*t|dƒr|Sdjtj|ƒƒ}|j||ƒS)Nrr)r%r!Úlinesep_splitterrr)rrr#rrrÚheader_fetch_parse•s zEmailPolicy.header_fetch_parsecCs|j||dd�S)NT)Ú refold_binary)Ú_fold)rrr#rrrÚfold¤szEmailPolicy.foldcCs0|j|||jdkd�}|jr dnd}|j|dƒS)NZ7bit)r/Úutf8ÚasciiÚsurrogateescape)r0Zcte_typer2Úencode)rrr#ZfoldedÚcharsetrrrÚ fold_binary¹szEmailPolicy.fold_binarycsÈt|dƒr|j|d�S|jr"|jntdƒ‰|jƒ}|jdkp‚|jdko‚|rft|dƒt|ƒdˆkp‚t‡fdd „|d d…Dƒƒ}|s”|r®t|ƒr®|j |d j |ƒƒj|d�S|d |j j |ƒ|j S) Nr)ZpolicyÚinfÚallrréc3s|]}t|ƒˆkVqdS)N)r))Ú.0Úx)Úmaxlenrrú Ósz$EmailPolicy._fold..rrz: ) r%r1Úmax_line_lengthÚfloatr*Ú refold_sourcer)Úanyrrr!Úlinesep)rrr#r/ÚlinesZrefoldr)r=rr0Ës     zEmailPolicy._fold)F)Ú__name__Ú __module__Ú __qualname__r Zmessage_factoryr2rArrrZcontent_managerrrr$r,r.r1r7r0Ú __classcell__rr)rrr s=  T)Zraise_on_defectz )rC)rCr?)r2)ÚreZemail._policybaserrrrZ email.utilsrZemail.headerregistryrZemail.contentmanagerrZ email.messager Ú__all__Úcompiler-r r rZcloner r rZSMTPUTF8rrrrÚs.      @